Files
CoolProp/dev/incompressible_liquids/CPIncomp/MelinderFluids.py

834 lines
36 KiB
Python

from __future__ import division, print_function
import numpy as np
from CPIncomp.DataObjects import PureData,CoefficientData
from CPIncomp.BaseObjects import IncompressibleFitter
class DEBLiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "DEB"
self.description = "Diethylbenzene mixture - Dowtherm J"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1076.5,-0.731182]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([999.729,2.87576]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([3.5503,-0.0566396,7.03331e-05]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.189132,-2.06364e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class HCMLiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "HCM"
self.description = "Hydrocarbon mixture - Gilotherm D12"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([971.725,-0.718788]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([844.023,4.31212]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([18.3237,-0.14706,0.000209096]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.153716,-1.51212e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class HFELiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "HFE"
self.description = "Hydrofluoroether - HFE-7100 3M Novec"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1822.37,-0.918485]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([871.834,0.858788]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([-4.22878,-0.0114765,7.39823e-06]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([9.92958e-01,-8.33333e-05]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class PMS1LiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "PMS1"
self.description = "Polydimethylsiloxan 1 - Baysilone KT3"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1172.35,-0.9025]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([1223.69,1.48417]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([6.36183,-0.0636352,7.51428e-05]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.207526,-2.84167e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class PMS2LiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "PMS2"
self.description = "Polydimethylsiloxan 2 - Syltherm XLT"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1155.94,-1.02576]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([1153.55,2.10788]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([5.66926,-0.065582,8.09988e-05]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.172305,-2.11212e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class SABLiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "SAB"
self.description = "Synthetic alkyl benzene - Marlotherm X"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1102.34,-0.801667]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([1360.94,1.51667]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([5.21288,-0.0665792,8.5066e-05]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.208374,-2.61667e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class HCBLiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "HCB"
self.description = "Hydrocarbon blend - Dynalene MV"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1071.78,-0.772024]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([761.393,3.52976]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([7.16819,-0.0863212,0.000130604]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.203186,-2.3869e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class TCOLiquidClass(CoefficientData,PureData):
"""
Pure fluid according to Melinder's book
"""
def __init__(self):
CoefficientData.__init__(self)
PureData.__init__(self)
self.name = "TCO"
self.description = "Citrus oil terpene - d-Limonene"
self.reference = "Melinder2010"
self.Tmin = -80.0 + 273.15
self.Tmax = 100.0 + 273.15
self.TminPsat = self.Tmax
self.Tbase = 0.0
self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.density.coeffs = IncompressibleFitter.shapeArray(np.array([1071.02,-0.778166]))
self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.specific_heat.coeffs = IncompressibleFitter.shapeArray(np.array([223.775,5.2159]))
self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL
_,_,self.viscosity.coeffs = IncompressibleFitter.shapeArray(np.array([-3.47971,-0.0107031,1.14086e-06]))
self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL
_,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0000.174156,-1.85052e-04]))
self.density.source = self.density.SOURCE_COEFFS
self.specific_heat.source = self.specific_heat.SOURCE_COEFFS
self.conductivity.source = self.conductivity.SOURCE_COEFFS
self.viscosity.source = self.viscosity.SOURCE_COEFFS
class EGSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MEG"
self.description = "Ethylene Glycol - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 100 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.6
self.xid = self.ifrac_mass
self.Tbase = 31.728 + 273.15
self.xbase = 30.8462 / 100.0
coeffs = np.array([
[-15.25,1034,3737,0.472,0.4705],
[-0.000001566,-0.4781,2.93,0.0008903,-0.0255],
[-0.0000002278,-0.002692,-0.004675,-0.000001058,0.0001782],
[0.000000002169,0.000004725,-0.00001389,-0.000000002789,-0.0000007669],
[-0.808,1.311,-17.99,-0.004286,0.02471],
[-0.000001339,-0.006876,0.1046,-0.00001473,-0.0001171],
[0.00000002047,0.00004805,-0.0004147,0.0000001059,0.000001052],
[-0.00000000002717,0.0000000169,0.0000001847,-0.0000000001142,-0.00000001634],
[-0.01334,0.0000749,-0.09933,0.00001747,0.000003328],
[0.00000006322,0.00007855,0.0003516,0.00000006814,0.000001086],
[0.0000000002373,-0.0000003995,0.000005109,-0.000000003612,0.00000001051],
[-0.000000000002183,0.000000004982,-0.00000007138,0.000000000002365,-0.0000000006475],
[-0.00007293,-0.0001062,0.00261,0.00000003017,0.000001659],
[0.000000001764,0.000001229,-0.000001189,-0.000000002412,0.000000003157],
[-0.00000000002442,-0.00000001153,-0.0000001643,0.00000000004004,0.0000000004063],
[0.000001006,-0.0000009623,0.00001537,-0.000000001322,0.00000003089],
[-0.00000000007662,-0.00000007211,-0.0000004272,0.00000000002555,0.0000000001831],
[0.00000000114,0.00000004891,-0.000001618,0.00000000002678,-0.000000001865]
])
self.setMelinderMatrix(coeffs)
class PGSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MPG"
self.description = "Propylene Glycol - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 100 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.6
self.xid = self.ifrac_mass
self.Tbase = 32.7083 + 273.15
self.xbase = 30.7031 / 100.0
coeffs = np.array([
[-13.25,1018,3882,0.4513,0.6837],
[-0.0000382,-0.5406,2.699,0.0007955,-0.03045],
[0.0000007865,-0.002666,-0.001659,0.00000003482,0.0002525],
[-0.000000001733,0.00001347,-0.00001032,-0.000000005966,-0.000001399],
[-0.6631,0.7604,-13.04,-0.004795,0.03328],
[0.000006774,-0.00945,0.0507,-0.00001678,-0.0003984],
[-0.00000006242,0.00005541,-0.00004752,0.00000008941,0.000004332],
[-0.0000000007819,-0.0000001343,0.000001522,0.0000000001493,-0.0000000186],
[-0.01094,-0.002498,-0.1598,0.00002076,0.00005453],
[0.00000005332,0.000027,0.00009534,0.0000001563,-0.000000086],
[-0.000000004169,-0.0000004018,0.00001167,-0.000000004615,-0.00000001593],
[0.00000000003288,0.000000003376,-0.0000000487,0.000000000009897,-0.00000000004465],
[-0.0002283,-0.000155,0.0003539,-0.00000009083,-0.0000039],
[-0.00000001131,0.000002829,0.00003102,-0.000000002518,0.0000001054],
[0.0000000001918,-0.000000007175,-0.000000295,0.00000000006543,-0.000000001589],
[-0.000003409,-0.000001131,0.00005,-0.0000000005952,-0.00000001587],
[0.00000000008035,-0.00000002221,-0.0000007135,-0.00000000003605,0.0000000004475],
[0.00000001465,0.00000002342,-0.0000004959,0.00000000002104,0.000000003564]
])
self.setMelinderMatrix(coeffs)
class EASolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MEA"
self.description = "Ethyl Alcohol (Ethanol) - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 40 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.6
self.xid = self.ifrac_mass
self.Tbase = 8.1578 + 273.15
self.xbase = 29.2361 / 100.0
coeffs = np.array([
[-19.41,961.9,4204,0.4067,1.474],
[-0.0003668,-0.5222,2.319,0.0006775,-0.04745],
[-0.00004005,-0.003281,-0.03042,0.0000003105,0.0004314],
[0.000001524,0.00001569,0.000686,-0.00000002,-0.000003023],
[-0.954,-1.433,-21.02,-0.005008,0.01565],
[-0.00001209,-0.01989,0.4927,-0.00002377,-0.00004106],
[0.000002877,0.000187,-0.003072,-0.00000003216,-0.000005135],
[-0.00000004394,-0.0000009154,-0.0000569,0.00000000008362,0.00000007004],
[-0.002648,-0.0226,-0.3714,0.00002801,-0.0008435],
[-0.0000003173,0.0002281,-0.002335,0.0000002669,0.0000164],
[0.000000008652,-0.00000008581,-0.0000196,-0.000000003606,-0.0000001091],
[-0.0000000003717,0.000000004056,0.0000007461,0.00000000001552,-0.000000001967],
[0.0003851,-0.000169,0.01743,-0.00000002009,0.000007552],
[0.0000000134,0.000008594,-0.0002969,-0.000000006813,-0.0000001118],
[-0.000000002091,-0.00000009607,0.000001901,0.0000000001429,0.000000001899],
[-0.0000002858,0.00001291,-0.00006292,-0.000000001506,0.0000001529],
[0.0000000009312,-0.000000159,0.000005353,0.0000000001167,-0.0000000009481],
[-0.000000167,-0.00000008318,-0.00000829,-0.00000000001653,-0.00000000413]
])
self.setMelinderMatrix(coeffs)
class MASolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MMA"
self.description = "Methyl Alcohol (Methanol) - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 40 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.6
self.xid = self.ifrac_mass
self.Tbase = 3.5359 + 273.15
self.xbase = 30.5128 / 100.0
coeffs = np.array([
[-26.29,958.1,3887,0.4175,1.153],
[-0.000002575,-0.4151,7.201,0.0007271,-0.03866],
[-0.000006732,-0.002261,-0.08979,0.0000002823,0.0002779],
[0.000000163,0.0000002998,-0.000439,0.000000009718,-0.000001543],
[-1.187,-1.391,-18.5,-0.004421,0.005448],
[-0.00001609,-0.0151,0.2984,-0.00002952,0.0001008],
[0.000000342,0.0001113,-0.001865,0.00000007336,-0.000002809],
[0.0000000005687,-0.0000003264,-0.00001718,0.0000000004328,0.000000009811],
[-0.01218,-0.01105,-0.03769,0.00002044,-0.0005552],
[0.0000003865,0.0001828,-0.01196,0.0000003413,0.000008384],
[0.000000008768,-0.000001641,0.00009801,-0.000000003665,-0.00000003997],
[-0.0000000002095,0.0000000151,0.000000666,-0.00000000002791,-0.0000000003466],
[-0.00006823,-0.0001208,-0.003776,0.0000002943,0.000003038],
[0.00000002137,0.000002992,-0.00005611,-0.0000000009646,-0.00000007435],
[-0.0000000004271,0.000000001455,-0.0000007811,0.00000000003174,0.0000000007442],
[0.0000001297,0.000004927,-0.0001504,-0.0000000008666,0.00000006669],
[-0.0000000005407,-0.0000001325,0.000007373,-0.0000000000004573,-0.0000000009105],
[0.00000002363,-0.00000007727,0.000006433,-0.0000000002033,-0.0000000008472]
])
self.setMelinderMatrix(coeffs)
class GLSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MGL"
self.description = "Glycerol - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 40 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.6
self.xid = self.ifrac_mass
self.Tbase = 8.9110 + 273.15
self.xbase = 36.1905 / 100.0
coeffs = np.array([
[-13,1093,3486,0.4532,1.52],
[-0.0008638,-0.3624,3.766,0.0009782,-0.03729],
[0.000006895,-0.002451,-0.0001222,-0.0000001196,0.0003572],
[0.0000005229,0.00001547,0.00003219,-0.000000008778,-0.000003648],
[-0.5742,2.74,-22.5,-0.003223,0.0445],
[-0.000007991,-0.008373,0.1811,-0.00001951,-0.0002688],
[-0.0000007515,0.00009596,0.0003766,0.0000001178,0.0000008876],
[0.0000000171,-0.0000006999,-0.0000173,0.0000000001048,-0.00000002209],
[-0.009119,0.004081,-0.03258,0.000005539,0.0003633],
[0.000002973,0.00001808,0.0007249,-0.00000006878,-0.000004088],
[0.000000002379,-0.0000008516,-0.00002133,-0.000000002587,0.00000006219],
[-0.000000001237,0.00000001441,0.0000004907,0.00000000002262,0.0000000006331],
[-0.0001641,-0.00004744,0.002922,-0.0000002073,0.000001069],
[-0.000000005313,0.000001833,-0.00005346,-0.0000000002235,-0.0000001248],
[0.0000000004546,-0.00000003077,0.00000023,-0.00000000001421,0.000000003019],
[-0.000002408,-0.000001415,0.00002238,0.000000003,0.00000005729],
[-0.000000001682,0.00000001863,-0.0000005383,0.0000000001604,-0.00000000178],
[-0.000000007734,-0.000000006097,-0.0000005944,0.0000000002221,0.000000002116]
])
self.setMelinderMatrix(coeffs)
class AMSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MAM"
self.description = "Ammonia (NH3) - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 30 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.3
self.xid = self.ifrac_mass
self.Tbase = -4.6490 + 273.15
self.xbase = 16.0784 / 100.0
coeffs = np.array([
[-25.76,944.5,4233,0.4551,0.9255],
[-0.0001817,-0.2743,-1.618,0.001673,-0.03439],
[0.00001204,-0.003113,0.0161,-0.000002214,0.0003217],
[0.0000005567,0.000003349,0.00001662,0.0000001228,-0.000004544],
[-2.385,-2.914,1.145,-0.005216,0.01327],
[0.00002315,-0.02307,0.02715,0.000003544,0.0001856],
[0.0000001415,0.0001341,0.001072,0.000001057,-0.00001646],
[-0.00000004244,-0.0000005151,-0.00005266,-0.00000003474,0.0000003004],
[-0.07636,0.02262,-0.001965,0.00008909,-0.0005979],
[-0.00000229,0.00006645,0.003472,0.000003526,-0.00002184],
[-0.000000262,-0.0000087,-0.00009051,-0.0000001782,0.000001297],
[0.0000000001786,0.00000008999,0.000002106,0.000000001858,-0.00000001141],
[-0.00261,-0.0006685,0.002131,0.000006807,-0.0001097],
[-0.000000376,-0.000001002,0.00004117,-0.0000003394,0.00000167],
[0.0000000136,0.0000003309,0.0000004446,0.000000008315,-0.00000003377],
[-0.000073,0.000001635,0.0002136,-0.0000001898,0.000003065],
[0.00000003524,0.0000004465,-0.00001354,0.000000006304,-0.00000006166],
[-0.000001075,0.0000006298,-0.000008551,-0.00000001361,0.0000003244]
])
self.setMelinderMatrix(coeffs)
class KCSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MKC"
self.description = "Potassium Carbonate (K2CO3) - aq"
self.reference = "Melinder2010"
self.Tmin =-100 + 273.15
self.Tmax = 40 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.4
self.xid = self.ifrac_mass
self.Tbase = 11.2422 + 273.15
self.xbase = 22.0833 / 100.0
coeffs = np.array([
[-10.3,1216,3217,0.5622,0.8063],
[-0.0001575,-0.4114,1.492,0.001656,-0.02362],
[0.000003598,-0.003383,-0.001539,0.000002108,0.0001851],
[0.000000004324,0.0000299,-0.00003546,-0.00000004482,-0.000002372],
[-0.7786,10.64,-37.33,-0.000892,0.03624],
[0.00001112,-0.007614,-0.01775,0.000002031,-0.00001262],
[-0.0000003479,0.00005214,0.0005416,-0.0000002616,-0.0000003022],
[-0.000000001244,-0.0000008087,0.00000659,0.0000000007965,-0.000000007761],
[-0.02766,0.04413,0.2023,-0.0000005233,0.0006659],
[0.000001616,0.00007806,0.004553,-0.0000002962,-0.00001611],
[-0.00000001681,-0.000001173,0.00003587,-0.000000009174,0.000000153],
[0.00000000003847,0.00000005658,-0.0000003707,0.0000000001027,0.000000001061],
[-0.0008226,-0.0001333,0.01971,-0.0000009283,0.00001077],
[-0.00000004913,-0.000002381,0.0001367,-0.00000001814,-0.00000009796],
[0.000000001395,0.0000001696,-0.000003667,0.0000000008767,0.00000000307],
[-0.000002372,-0.00001246,0.0003405,-0.00000001011,-0.0000001097],
[-0.000000002886,0.0000002708,-0.00001676,0.0000000008471,0.000000007825],
[0.0000003251,0.0000002035,-0.00003488,0.000000001311,-0.000000008453]
])
self.setMelinderMatrix(coeffs)
class CASolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MCA"
self.description = "Calcium Chloride (CaCl2) - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.3
self.xid = self.ifrac_mass
self.Tbase = 7.52570 + 273.15
self.xbase = 18.7414 / 100.0
coeffs = np.array([
[-16.21,1171,3133,0.558,0.8939],
[-0.0001344,-0.1463,2.81,0.00146,-0.02647],
[0.000005073,-0.001302,-0.01563,0.0000003861,0.0001718],
[-0.0000000482,-0.0001871,-0.00001233,0.00000001307,-0.0000007918],
[-1.555,9.847,-44.8,-0.00115,0.04389],
[0.00002146,-0.02488,0.03271,-0.00001008,0.0002102],
[-0.0000015,-0.000553,-0.001205,-0.0000000654,-0.0000008688],
[0.00000002219,0.00001665,0.000009346,0.0000000004728,-0.00000004353],
[-0.05496,0.03389,0.9511,-0.00001784,0.0009121],
[0.0000009415,-0.002302,-0.005191,0.0000003496,0.000003993],
[0.00000006185,0.00003526,0.0002282,-0.00000000484,0.0000003785],
[-0.000000001723,0.0000002788,-0.000000929,-0.0000000002011,-0.000000009979],
[-0.002624,0.001062,0.01472,-0.0000004415,0.000001963],
[-0.0000001082,0.00006291,0.0001615,-0.000000003462,-0.0000004892],
[0.000000003036,0.000001806,0.000005073,0.0000000003922,0.00000000001526],
[-0.0001726,0.00002785,-0.001346,0.00000004699,0.0000002997],
[-0.000000004396,0.000006423,-0.000009754,0.0000000006179,-0.00000003631],
[-0.000004494,-0.000001811,-0.00006674,0.000000002929,0.00000003435]
])
self.setMelinderMatrix(coeffs)
class MGSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MMG"
self.description = "MgCl2 - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.3
self.xid = self.ifrac_mass
self.Tbase = 9.3163 + 273.15
self.xbase = 14.1327 / 100.0
coeffs = np.array([
[-15.12,1124,3365,0.5461,0.9573],
[-0.0004843,-0.3072,2.229,0.001784,-0.03065],
[0.00001113,-0.003295,-0.004627,-0.0000008171,0.0001115],
[0.0000001858,0.00001015,0.00009186,-0.00000006594,-0.000002923],
[-1.885,9.071,-52.22,-0.00273,0.04968],
[-0.00005461,-0.006513,0.1162,-0.00001483,0.0001559],
[0.000003579,0.00004664,0.001249,0.000000385,-0.00001796],
[-0.00000003999,0.000002287,0.000002421,-0.000000005556,0.0000003051],
[-0.05455,0.02449,0.6202,0.000008675,-0.002722],
[0.00001887,0.00003574,0.002337,-0.000001489,-0.00001753],
[-0.0000003171,0.000004337,0.0000724,-0.00000003882,0.000002021],
[-0.000000006246,0.0000006044,-0.000003613,0.0000000009282,0.00000002614],
[-0.0007257,0.003402,0.01052,0.0000008651,0.00009351],
[0.0000007588,-0.0001409,-0.000459,0.0000001992,-0.000008353],
[-0.00000004102,0.000001857,-0.00002477,-0.000000001196,0.0000001901],
[-0.0003208,0.0003344,-0.001067,-0.0000004779,0.00007364],
[-0.0000000492,-0.00000683,-0.0001048,0.00000001797,-0.0000004014],
[-0.00001794,0.000007239,-0.0000696,-0.00000002503,0.000003717]
])
self.setMelinderMatrix(coeffs)
class NASolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MNA"
self.description = "Sodium Chloride (NaCl) - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.23
self.xid = self.ifrac_mass
self.Tbase = 12.6179 + 273.15
self.xbase = 13.3897 / 100.0
coeffs = np.array([
[-9.383,1099,3593,0.5736,0.4369],
[-0.00002581,-0.3758,1.669,0.001595,-0.02666],
[0.000001423,-0.002023,-0.02019,-0.0000004003,0.0002035],
[0,0,0,0,0],
[-0.9039,7.723,-32.48,-0.0009383,0.02346],
[0.000002578,-0.01426,-0.03331,-0.00001248,-0.00005368],
[-0.00000003318,0.0001535,-0.001164,0.0000003353,0.000002871],
[0,0,0,0,0],
[-0.02204,0.02567,0.6453,-0.00001057,0.0004276],
[0.0000001192,0.0003994,-0.009314,0.0000004158,-0.000004526],
[-0.000000008993,-0.000007281,0.0002236,-0.00000002032,0.0000001838],
[0,0,0,0,0],
[-0.0004827,0.0001108,-0.01629,-0.0000004853,0.000007386],
[-0.00000001467,0.0000003522,0.0007927,-0.00000001587,0.0000005437],
[0,0,0,0,0],
[0.000002247,-0.00001686,0.0002331,-0.000000004654,0.0000004688],
[0,0,0,0,0],
[0,0,0,0,0]
])
self.setMelinderMatrix(coeffs)
class KASolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MKA"
self.description = "Potassium Acetate (CH3CO2K) - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.45
self.xid = self.ifrac_mass
self.Tbase = 6.7757 + 273.15
self.xbase = 25.6757 / 100.0
coeffs = np.array([
[-17.04,1138,3327,0.4958,1.042],
[-0.0001082,-0.3565,1.806,0.00134,-0.03071],
[0.000006892,-0.00202,-0.001766,0.00000006837,0.0002819],
[-0.0000001397,0.000004205,0.00004357,0.000000002637,-0.00000219],
[-1.228,5.796,-28.95,-0.002931,0.03405],
[0.0000002302,-0.0079,0.04131,-0.00001477,-0.0001511],
[-0.0000008711,0.00002753,0.0004429,0.00000004659,0.000001172],
[0.00000002016,0.0000000514,0.00001125,0.0000000002886,-0.00000002379],
[-0.03862,0.01306,0.04663,0.00001032,0.0005017],
[0.000001565,0.00006845,0.0007775,-0.0000002396,-0.000007779],
[0.000000007565,-0.00000113,0.00003463,-0.000000004352,0.00000009125],
[-0.0000000003063,0.00000002433,-0.0000007261,-0.0000000000223,-0.000000001888],
[-0.0004571,-0.001427,-0.001249,-0.0000002024,0.000005637],
[-0.00000003734,0.0000008304,0.00005115,-0.000000005541,0.00000002534],
[0.000000001268,0.00000001303,-0.000002987,0.00000000008984,0.000000001596],
[0.00002969,0.000009353,0.0001659,-0.000000002371,-0.0000002922],
[-0.000000002817,0.00000002322,-0.000005193,0.0000000005573,0.000000004601],
[0.000000869,0.000002285,-0.0000004612,0.0000000005515,-0.00000000796]
])
self.setMelinderMatrix(coeffs)
class KFSolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MKF"
self.description = "Potassium Formate (CHKO2) - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.48
self.xid = self.ifrac_mass
self.Tbase = 5.89080 + 273.15
self.xbase = 29.1447 / 100.0
coeffs = np.array([
[-20.19,1189,3144,0.5253,0.8088],
[-0.0001703,-0.3515,1.698,0.001241,-0.02556],
[-0.000007478,-0.001918,-0.001303,-0.00000003799,0.0002195],
[0.0000003761,0.00003132,0.00005177,-0.000000002951,-0.000001667],
[-1.106,7.044,-29.94,-0.001972,0.01758],
[-0.000004203,-0.00656,0.0229,-0.000006322,0.00008603],
[-0.0000005737,0.00007018,0.000003898,0.00000002654,0.000002498],
[0.00000001474,-0.000001459,0.000007391,-0.0000000007324,-0.00000003569],
[-0.021,0.01889,0.2944,-0.00002596,-0.00008372],
[-0.0000003802,0.0001034,-0.002482,-0.00000004693,-0.000001601],
[0.00000006504,-0.000003889,0.000033,-0.000000004362,0.000000004815],
[-0.000000001877,0.000000009225,-0.0000004871,0.00000000002899,-0.000000001861],
[-0.0002638,-0.0002262,0.001161,-0.0000005062,-0.000001184],
[0.00000004027,0.0000003692,0.00006758,-0.000000005229,-0.0000001331],
[-0.0000000004789,0.00000006609,-0.000001277,0.0000000001035,-0.000000005489],
[0.0000008327,0.00002368,-0.0001429,0.00000001501,0.000001088],
[0.0000000009507,0.00000008766,0.0000009949,0.0000000005376,-0.000000007003],
[0.00000006345,0.000001061,-0.000003221,0.0000000005562,0.00000003098]
])
self.setMelinderMatrix(coeffs)
class LISolution(CoefficientData):
def __init__(self):
CoefficientData.__init__(self)
self.name = "MLI"
self.description = "Lithium Chloride (LiCl) - aq"
self.reference = "Melinder2010"
self.Tmin =-100.0 + 273.15
self.Tmax = 40.0 + 273.15
self.TminPsat = self.Tmax
self.xmin = 0.0
self.xmax = 0.24
self.xid = self.ifrac_mass
self.Tbase = 1.4895 + 273.15
self.xbase = 14.8000 / 100.0
coeffs = np.array([
[-23.29,1088,3383,0.5362,1.013],
[0.0006555,-0.1772,3.958,0.001454,-0.03062],
[-0.0001208,-0.002619,-0.0003035,-0.0000000326,0.000294],
[0.000002616,0.000006209,-0.000003477,-0.0000000142,-0.000002719],
[-3.051,6.056,-50.36,-0.001855,0.0392],
[-0.0003972,-0.008588,0.4415,-0.00001405,0.00006246],
[0.00003674,0.0001567,-0.0002609,-0.000000005424,-0.000001752],
[-0.0000005569,-0.000001847,0.000003651,0.0000000009821,0.00000008346],
[-0.179,0.02556,0.6298,0.00001017,0.000332],
[0.00001391,0.00007194,-0.004384,0.0000006821,0.000000784],
[-0.000001997,-0.00001053,0.0001039,-0.000000008674,-0.00000031],
[0.00000002931,0.00000009716,-0.000001076,0.0000000001095,0.00000001381],
[-0.002917,0.0009407,0.04544,0.0000007084,0.000002206],
[0.00000149,-0.000007253,-0.0008787,-0.00000007434,-0.0000006011],
[-0.00000006904,0.0000003144,-0.000008457,0.0000000006988,0.000000004023],
[0.0005715,-0.00008105,0.002527,-0.0000001273,0.000001745],
[0.0000001186,0.000001072,-0.0000358,-0.000000003058,-0.00000007094],
[0.00002757,-0.000003974,0.00004058,-0.000000009124,0.00000006699]
])
self.setMelinderMatrix(coeffs)