From 10a817f9b5f6b9bb3564502780e954ed6caa6dcf Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Mon, 22 Sep 2014 18:21:44 +0200 Subject: [PATCH 01/54] Fixed path in C# build instructions --- Web/coolprop/wrappers/Csharp/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/coolprop/wrappers/Csharp/index.rst b/Web/coolprop/wrappers/Csharp/index.rst index 40da6b29..913420ff 100644 --- a/Web/coolprop/wrappers/Csharp/index.rst +++ b/Web/coolprop/wrappers/Csharp/index.rst @@ -67,7 +67,7 @@ Once mono c# is installed, you can run the builder and tests using:: # Move into the folder you just created cd CoolProp # Make a build folder - mkdir -p build/Csharp && cd build + mkdir build && cd build # Build the makefile using CMake cmake .. -DCOOLPROP_CSHARP_MODULE=ON -DBUILD_TESTING=ON # Make the C# files (by default files will be generated in folder install_root/Csharp relative to CMakeLists.txt file) From 2591bdd056f2a7f7f2bd954596ed83435aa8ff9e Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Mon, 22 Sep 2014 19:47:47 +0200 Subject: [PATCH 02/54] Added new incompressibles, cleaned the docs, and improved the log fitting procedures --- Web/fluid_properties/Incompressibles.bib | 217 ++++++++- .../CPIncomp/BaseObjects.py | 25 +- .../CPIncomp/CoefficientFluids.py | 25 +- .../CPIncomp/DigitalFluids.py | 18 +- .../CPIncomp/ExampleObjects.py | 211 +++++---- .../CPIncomp/MelinderFluids.py | 202 ++++----- .../CPIncomp/PureFluids.py | 421 ++++++++++++++---- .../CPIncomp/SecCoolFluids.py | 112 ++--- .../CPIncomp/SolutionFluids.py | 2 +- .../CPIncomp/WriterObjects.py | 33 +- .../all_incompressibles.py | 24 +- dev/incompressible_liquids/json/AEG.json | 2 +- dev/incompressible_liquids/json/AKF.json | 2 +- dev/incompressible_liquids/json/AL.json | 2 +- dev/incompressible_liquids/json/AN.json | 2 +- dev/incompressible_liquids/json/APG.json | 2 +- dev/incompressible_liquids/json/AS10.json | 2 +- dev/incompressible_liquids/json/AS20.json | 2 +- dev/incompressible_liquids/json/AS30.json | 2 +- dev/incompressible_liquids/json/AS40.json | 2 +- dev/incompressible_liquids/json/AS55.json | 2 +- dev/incompressible_liquids/json/DEB.json | 2 +- dev/incompressible_liquids/json/DowJ.json | 2 +- dev/incompressible_liquids/json/DowJ2.json | 2 +- dev/incompressible_liquids/json/DowQ.json | 2 +- dev/incompressible_liquids/json/DowQ2.json | 2 +- .../json/ExampleSolution.json | 2 +- dev/incompressible_liquids/json/FRE.json | 2 +- dev/incompressible_liquids/json/GKN.json | 2 +- dev/incompressible_liquids/json/HC10.json | 2 +- dev/incompressible_liquids/json/HC20.json | 2 +- dev/incompressible_liquids/json/HC30.json | 2 +- dev/incompressible_liquids/json/HC40.json | 2 +- dev/incompressible_liquids/json/HC50.json | 2 +- dev/incompressible_liquids/json/HCB.json | 2 +- dev/incompressible_liquids/json/HCM.json | 2 +- dev/incompressible_liquids/json/HFE.json | 2 +- dev/incompressible_liquids/json/HFE2.json | 2 +- dev/incompressible_liquids/json/HY20.json | 2 +- dev/incompressible_liquids/json/HY30.json | 4 +- dev/incompressible_liquids/json/HY40.json | 4 +- dev/incompressible_liquids/json/HY45.json | 4 +- dev/incompressible_liquids/json/HY50.json | 4 +- dev/incompressible_liquids/json/IceEA.json | 2 +- dev/incompressible_liquids/json/IceNA.json | 2 +- dev/incompressible_liquids/json/IcePG.json | 2 +- dev/incompressible_liquids/json/LiBr.json | 2 +- dev/incompressible_liquids/json/MAM2.json | 12 +- dev/incompressible_liquids/json/MCA2.json | 13 +- dev/incompressible_liquids/json/MEA2.json | 2 +- dev/incompressible_liquids/json/MEG2.json | 2 +- dev/incompressible_liquids/json/MGL2.json | 15 +- dev/incompressible_liquids/json/MKA2.json | 14 +- dev/incompressible_liquids/json/MKC2.json | 15 +- dev/incompressible_liquids/json/MMA2.json | 15 +- dev/incompressible_liquids/json/MMG2.json | 13 +- dev/incompressible_liquids/json/MNA2.json | 2 +- dev/incompressible_liquids/json/MPG2.json | 15 +- dev/incompressible_liquids/json/NBS.json | 2 +- dev/incompressible_liquids/json/NaK.json | 4 +- dev/incompressible_liquids/json/PCL.json | 2 +- dev/incompressible_liquids/json/PCR.json | 96 ++++ dev/incompressible_liquids/json/PGLT.json | 105 +++++ dev/incompressible_liquids/json/PHE.json | 105 +++++ dev/incompressible_liquids/json/PHR.json | 105 +++++ dev/incompressible_liquids/json/PK2.json | 2 +- dev/incompressible_liquids/json/PKL.json | 2 +- dev/incompressible_liquids/json/PLR.json | 105 +++++ dev/incompressible_liquids/json/PMR.json | 105 +++++ dev/incompressible_liquids/json/PMS1.json | 2 +- dev/incompressible_liquids/json/PMS2.json | 2 +- dev/incompressible_liquids/json/PNF.json | 68 ++- dev/incompressible_liquids/json/PNF2.json | 92 ++++ dev/incompressible_liquids/json/SAB.json | 2 +- dev/incompressible_liquids/json/T66.json | 2 +- dev/incompressible_liquids/json/T72.json | 2 +- dev/incompressible_liquids/json/TCO.json | 2 +- dev/incompressible_liquids/json/TD12.json | 2 +- dev/incompressible_liquids/json/TVP1.json | 2 +- dev/incompressible_liquids/json/TVP1869.json | 2 +- dev/incompressible_liquids/json/TX22.json | 19 +- dev/incompressible_liquids/json/TY10.json | 2 +- dev/incompressible_liquids/json/TY15.json | 2 +- dev/incompressible_liquids/json/TY20.json | 2 +- dev/incompressible_liquids/json/TY24.json | 2 +- dev/incompressible_liquids/json/VCA.json | 12 +- dev/incompressible_liquids/json/VKC.json | 14 +- dev/incompressible_liquids/json/VMA.json | 15 +- dev/incompressible_liquids/json/VMG.json | 12 +- dev/incompressible_liquids/json/VNA.json | 2 +- dev/incompressible_liquids/json/XLT.json | 2 +- dev/incompressible_liquids/json/XLT2.json | 2 +- dev/incompressible_liquids/json/ZAC.json | 2 +- dev/incompressible_liquids/json/ZFC.json | 12 +- dev/incompressible_liquids/json/ZLC.json | 12 +- dev/incompressible_liquids/json/ZM.json | 2 +- dev/incompressible_liquids/json/ZMC.json | 12 +- dev/incompressible_liquids/json/ZS10.json | 2 +- dev/incompressible_liquids/json/ZS25.json | 2 +- dev/incompressible_liquids/json/ZS40.json | 2 +- dev/incompressible_liquids/json/ZS45.json | 2 +- dev/incompressible_liquids/json/ZS55.json | 2 +- wrappers/Python/CoolProp/BibtexParser.py | 59 +-- 103 files changed, 1840 insertions(+), 654 deletions(-) create mode 100644 dev/incompressible_liquids/json/PCR.json create mode 100644 dev/incompressible_liquids/json/PGLT.json create mode 100644 dev/incompressible_liquids/json/PHE.json create mode 100644 dev/incompressible_liquids/json/PHR.json create mode 100644 dev/incompressible_liquids/json/PLR.json create mode 100644 dev/incompressible_liquids/json/PMR.json create mode 100644 dev/incompressible_liquids/json/PNF2.json diff --git a/Web/fluid_properties/Incompressibles.bib b/Web/fluid_properties/Incompressibles.bib index 972f6c07..75f75546 100644 --- a/Web/fluid_properties/Incompressibles.bib +++ b/Web/fluid_properties/Incompressibles.bib @@ -3,11 +3,10 @@ @Book{ASHRAE2001, - Title = {2001 ASHRAE Handbook: Fundamentals}, - Author = {American Society of Heating, Refrigerating and Air-Conditioning Engineers}, - Publisher = {ASHRAE}, + Title = {{2001 ASHRAE Handbook: Fundamentals}}, + Author = {{American Society of Heating, Refrigerating and Air-Conditioning Engineers}}, + Publisher = {{ASHRAE}}, Year = {2001}, - Series = {Ashrae Handbook Fundamentals Systems-international Metric System}, Volume = {111}, ISBN = {9781883413880}, @@ -15,22 +14,15 @@ Timestamp = {2014.09.17} } -@Article{Cesar2013, - Title = {An amazing title}, - Author = {Jean C{\'e}sar}, - Journal = {Nice Journal}, - Year = {2013}, +@TechReport{Kauffeld2001, + Title = {{RP-1166---Behavior of Ice Slurries in Thermal Storage Systems}}, + Author = {Michael Kauffeld}, + Institution = {{Danish Technological Institute}}, + Year = {2001}, + Note = {{Sponsored by ASHRAE Technical Committee 6.9 Thermal Storage}}, - Month = jan, - Pages = {12--23}, - Volume = {12}, - - Abstract = {This is an abstract. This line should be long enough to test - multilines...}, - Comments = {A comment}, - Keywords = {keyword1, keyword2}, Owner = {jowr}, - Timestamp = {2014.09.15} + Timestamp = {2014.09.22} } @Book{Melinder2010, @@ -43,10 +35,53 @@ Timestamp = {2014.09.17} } +@Article{Patek2006, + Title = {{A computationally effective formulation of the thermodynamic properties of LiBr-H2O solutions from 273 to 500 K over full composition range}}, + Author = {Jaroslav P\'atek and Jaroslav Klomfar}, + Journal = {International Journal of Refrigeration}, + Year = {2006}, + + Month = {June}, + Number = {4}, + Pages = {566--578}, + Volume = {29}, + + Doi = {10.1016/j.ijrefrig.2005.10.007}, + Owner = {jowr}, + Timestamp = {2013.11.22} +} + +@InBook{Preisegger2010, + Title = {VDI Heat Atlas}, + Author = {Ewald Preisegger and Felix Flohr and Gernot Krakat and Andreas Gl{\"u}ck and Dietmar Hunold}, + Chapter = {D4 Properties of Industrial Heat Transfer Media}, + Editor = {Peter Stephan}, + Pages = {419--512}, + Publisher = {Springer}, + Year = {2010}, + + Address = {Berlin Heidelberg}, + Edition = {2nd}, + + Doi = {10.1007/978-3-540-77877-6_20}, + Owner = {jowr}, + Timestamp = {2013.06.18} +} + +@Book{Schmidt1979, + Title = {Properties of Water and Steam in SI-Units}, + Author = {Ernst Schmidt}, + Publisher = {Springer}, + Year = {1979}, + Edition = {2nd}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + @Manual{Skovrup2013, - Title = {SecCool Properties}, + Title = {{SecCool Properties v1.33}}, Author = {Morten Juel Skovrup}, - Edition = {v1.33}, Organization = {IPU Refrigeration and Energy Technology}, Year = {2013}, @@ -55,9 +90,29 @@ Url = {http://en.ipu.dk/Indhold/refrigeration-and-energy-technology/seccool.aspx} } +@TechReport{Zavoico2001, + Title = {{Solar Power Tower Design Basis Document}}, + Author = {Alexis B. Zavoico}, + Institution = {Sandia National Laboratories}, + Year = {2001}, + Month = {July}, + + Owner = {jowr}, + Timestamp = {2013.10.23}, + Url = {http://prod.sandia.gov/techlib/access-control.cgi/2001/012100.pdf} +} + +@Manual{Dynalene2014, + Title = {{Technical Data Sheet}}, + Organization = {{Dynalene Inc.}}, + Year = {2014}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + @Manual{Therminol2014, - Title = {{Therminol Heat Transfer Reference Disk}}, - Edition = {v5.1}, + Title = {{Therminol Heat Transfer Reference Disk v5.1}}, Organization = {{Eastman Chemical Company}}, Year = {2014}, @@ -66,3 +121,121 @@ Url = {http://www.therminol.com/resources/therminol-reference-disk} } +@Manual{Paratherm2013, + Title = {{Thermal Properties Calculator v6.4}}, + Organization = {{Paratherm Ltd.}}, + Year = {2013}, + + Owner = {jowr}, + Timestamp = {2014.09.22}, + Url = {http://paracalc.paratherm.com} +} + +@Manual{Arteco2010, + Title = {{Technical Information}}, + Organization = {{Arteco NV/SA}}, + Year = {2010}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{3M2007, + Title = {{Technical Information}}, + Organization = {{3M Company}}, + Year = {2007}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{PKS2005, + Title = {{Technical Data Sheet}}, + Organization = {{pro K{\"u}hlsole GmbH}}, + Year = {2005}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Chevron2004, + Title = {{Technical Data Sheet}}, + Organization = {{Chevron Products Company}}, + Year = {2004}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Aspen2001, + Title = {{Technical Data Sheet}}, + Organization = {{Aspen Petroleum AB}}, + Year = {2001}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Clariant2000, + Title = {{Technical Data Sheet}}, + Organization = {{Clariant GmbH}}, + Year = {2000}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Hydro2000, + Title = {{Technical Information}}, + Organization = {{Hydro Chemicals}}, + Year = {2000}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Sulzer1999, + Title = {{Technical Information}}, + Organization = {{Sulzer Chemtech AG}}, + Year = {1999}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Tyfoprop1999, + Title = {{Technical Information}}, + Organization = {{Tyforop Chemie Gmbh}}, + Year = {1999}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Kemira1998, + Title = {{Technical Data Sheet}}, + Organization = {{Kemira Chemicals OY}}, + Year = {1998}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Dow1997, + Title = {{Technical Data Sheet}}, + Organization = {{The Dow Chemical Company}}, + Year = {1997}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + +@Manual{Hoechst1995, + Title = {{Technical Information}}, + Organization = {{Hoechst AG}}, + Year = {1995}, + + Owner = {jowr}, + Timestamp = {2014.09.22} +} + diff --git a/dev/incompressible_liquids/CPIncomp/BaseObjects.py b/dev/incompressible_liquids/CPIncomp/BaseObjects.py index 5875f9e6..7d69686c 100644 --- a/dev/incompressible_liquids/CPIncomp/BaseObjects.py +++ b/dev/incompressible_liquids/CPIncomp/BaseObjects.py @@ -135,14 +135,21 @@ class IncompressibleData(object): eqnType=self.type, \ coeffs=self.coeffs, DEBUG=self.DEBUG) - elif self.type==IncompressibleData.INCOMPRESSIBLE_LOGEXPONENTIAL and self.data.size>10: - if self.DEBUG: print("Poor solution found with log exponential, trying once more with exponential polynomial.") - self.type=IncompressibleData.INCOMPRESSIBLE_EXPPOLYNOMIAL - self.coeffs = np.zeros((4,6)) - res,sErr = IncompressibleFitter.fitter(x=x, y=y, z=self.data, \ - xbase=xbase, ybase=ybase, \ - eqnType=self.type, \ - coeffs=self.coeffs, DEBUG=self.DEBUG) + elif self.type==IncompressibleData.INCOMPRESSIBLE_LOGEXPONENTIAL: + xLen = np.round([len(x)/1.5]) + yLen = np.round([len(y)/1.5]) + xLen = np.min([xLen,4]) + yLen = np.min([yLen,6]) + + if (xLen+yLen) > 2: + if self.DEBUG: print("Poor solution found with log exponential, trying once more with exponential polynomial.") + self.type=IncompressibleData.INCOMPRESSIBLE_EXPPOLYNOMIAL + + self.coeffs = np.zeros((xLen,yLen)) + res,sErr = IncompressibleFitter.fitter(x=x, y=y, z=self.data, \ + xbase=xbase, ybase=ybase, \ + eqnType=self.type, \ + coeffs=self.coeffs, DEBUG=self.DEBUG) # elif self.type==IncompressibleData.INCOMPRESSIBLE_EXPPOLYNOMIAL: # if self.DEBUG: print("Poor solution found with exponential polynomial, trying once more with normal polynomial.") @@ -485,7 +492,7 @@ class IncompressibleFitter(object): expLog = True xData = np.array(x_in.flat) - if expLog: zData = np.log(z_in.flat) + if expLog: zData = np.log(np.clip(z_in.flat,1e-10,IncompressibleData.maxLin)) else: zData = np.array(z_in.flat) # Remove np.nan elements diff --git a/dev/incompressible_liquids/CPIncomp/CoefficientFluids.py b/dev/incompressible_liquids/CPIncomp/CoefficientFluids.py index c830ac95..e8832dda 100644 --- a/dev/incompressible_liquids/CPIncomp/CoefficientFluids.py +++ b/dev/incompressible_liquids/CPIncomp/CoefficientFluids.py @@ -4,29 +4,29 @@ from CPIncomp.DataObjects import CoefficientData,PureData class NitrateSalt(PureData,CoefficientData): - """ + """ Heat transfer fluid based on 60% NaNO3 and 40% KNO3 """ def __init__(self): CoefficientData.__init__(self) - PureData.__init__(self) - self.name = "NaK" - self.description = "NitrateSalt" - self.reference = "Solar Power Tower Design Basis Document, Alexis B. Zavoico, Sandia Labs, USA" - + PureData.__init__(self) + self.name = "NaK" + self.description = "Nitrate salt, heat transfer fluid based on 60% NaNO3 and 40% KNO3" + self.reference = "Zavoico2001" + self.Tmin = 300 + 273.15 self.Tmax = 600 + 273.15 - self.TminPsat = self.Tmax - + self.TminPsat = self.Tmax + self.Tbase = 273.15 - + #self.temperature.data = self.getTrange() #self.concentration.data = np.array([ 0 ]) # mass fraction - + self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL self.density.source = self.density.SOURCE_COEFFS self.density.coeffs = np.array([[2090],[-0.636]]) - + self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.specific_heat.coeffs = np.array([[1443],[+0.172]]) @@ -38,5 +38,4 @@ class NitrateSalt(PureData,CoefficientData): self.viscosity.type = self.viscosity.INCOMPRESSIBLE_POLYNOMIAL self.viscosity.source = self.viscosity.SOURCE_COEFFS self.viscosity.coeffs = np.array([[22.714],[-0.120],[2.281 * 1e-4],[-1.474 * 1e-7]])/1e3 - - \ No newline at end of file + diff --git a/dev/incompressible_liquids/CPIncomp/DigitalFluids.py b/dev/incompressible_liquids/CPIncomp/DigitalFluids.py index 1d4b0bff..09fc797d 100644 --- a/dev/incompressible_liquids/CPIncomp/DigitalFluids.py +++ b/dev/incompressible_liquids/CPIncomp/DigitalFluids.py @@ -20,7 +20,7 @@ class HyCool20(PureData,DigitalData): self.name = "HY20" self.description = "HYCOOL 20, Potassium formate" - self.reference = "Hydro Chemicals" + self.reference = "Hydro2000" self.Tmax = 50 + 273.15 self.Tmin = -20 + 273.15 @@ -61,8 +61,8 @@ class HyCool30(PureData,DigitalData): PureData.__init__(self) self.name = "HY30" - self.description = "HYCOOL 30, Potassium formate" - self.reference = "Hydro Chemicals" + self.description = "HyCool 30, Potassium formate" + self.reference = "Hydro2000" self.Tmax = 50 + 273.15 self.Tmin = -30 + 273.15 @@ -103,8 +103,8 @@ class HyCool40(PureData,DigitalData): PureData.__init__(self) self.name = "HY40" - self.description = "HYCOOL 40, Potassium formate" - self.reference = "Hydro Chemicals" + self.description = "HyCool 40, Potassium formate" + self.reference = "Hydro2000" self.Tmax = 20 + 273.15 self.Tmin = -40 + 273.15 @@ -139,8 +139,8 @@ class HyCool45(PureData,DigitalData): PureData.__init__(self) self.name = "HY45" - self.description = "HYCOOL 45, Potassium formate" - self.reference = "Hydro Chemicals" + self.description = "HyCool 45, Potassium formate" + self.reference = "Hydro2000" self.Tmax = 20 + 273.15 self.Tmin = -45 + 273.15 @@ -175,8 +175,8 @@ class HyCool50(PureData,DigitalData): PureData.__init__(self) self.name = "HY50" - self.description = "HYCOOL 50, Potassium formate" - self.reference = "Hydro Chemicals" + self.description = "HyCool 50, Potassium formate" + self.reference = "Hydro2000" self.Tmax = 20 + 273.15 self.Tmin = -50 + 273.15 diff --git a/dev/incompressible_liquids/CPIncomp/ExampleObjects.py b/dev/incompressible_liquids/CPIncomp/ExampleObjects.py index 249451af..f0901042 100644 --- a/dev/incompressible_liquids/CPIncomp/ExampleObjects.py +++ b/dev/incompressible_liquids/CPIncomp/ExampleObjects.py @@ -5,20 +5,20 @@ from CPIncomp.DataObjects import PureData, SolutionData, DigitalData,\ class PureExample(PureData): def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.name = "ExamplePure" self.description = "Heat transfer fluid TherminolD12 by Solutia" self.reference = "Solutia data sheet" self.Tmax = 150 + 273.15 self.Tmin = 50 + 273.15 self.TminPsat = self.Tmax - + self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA self.viscosity.source = self.viscosity.SOURCE_DATA self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA - + self.temperature.data = np.array([ 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150])+273.15 # Kelvin self.density.data = np.array([ 740, 733, 726, 717, 710, 702, 695, 687, 679, 670, 662]) # kg/m3 self.specific_heat.data = np.array([ 2235, 2280, 2326, 2361, 2406, 2445, 2485, 2528, 2571, 2607, 2645]) # J/kg-K @@ -30,14 +30,14 @@ class PureExample(PureData): class SolutionExample(SolutionData): def __init__(self): - SolutionData.__init__(self) + SolutionData.__init__(self) self.name = "ExampleSolution" self.description = "Ethanol ice slurry" - self.reference = "SecCool software" - + self.reference = "SecCool software,Skovrup2013" + self.temperature.data = np.array([ -45 , -40 , -35 , -30 , -25 , -20 , -15 , -10])+273.15 # Kelvin self.concentration.data = np.array([ 5 , 10 , 15 , 20 , 25 , 30 , 35 ])/100.0 # mass fraction - + self.density.data = np.array([ [1064.0, 1054.6, 1045.3, 1036.3, 1027.4, 1018.6, 1010.0], [1061.3, 1052.1, 1043.1, 1034.3, 1025.6, 1017.0, 1008.6], @@ -47,12 +47,12 @@ class SolutionExample(SolutionData): [1040.7, 1033.2, 1025.7, 1018.4, 1011.2, 1004.0, 997.0], [1032.3, 1025.3, 1018.5, 1011.7, 1005.1, 998.5, 992.0], [1021.5, 1015.3, 1009.2, 1003.1, 997.1, 991.2, 985.4]]) # kg/m3 - + self.specific_heat.data = np.copy(self.density.data) - + self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA - + self.Tmax = np.max(self.temperature.data) self.Tmin = np.min(self.temperature.data) self.xmax = np.max(self.concentration.data) @@ -63,51 +63,51 @@ class SolutionExample(SolutionData): class DigitalExample(DigitalData): def __init__(self): - DigitalData.__init__(self) + DigitalData.__init__(self) self.name = "ExampleDigital" self.description = "some fluid" self.reference = "none" - + self.Tmin = 273.00; self.Tmax = 500.00; self.xmax = 1.0 self.xmin = 0.0 self.xid = self.ifrac_mass self.TminPsat = self.Tmin; - + self.temperature.data = self.getTrange() self.concentration.data = self.getxrange() - + def funcRho(T,x): return T + x*100.0 + T*(x+0.5) self.density.xData,self.density.yData,self.density.data = self.getArray(dataID="D", func=funcRho, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.density.DEBUG) self.density.source = self.density.SOURCE_EQUATION - + def funcCp(T,x): return T + x*50.0 + T*(x+0.6) self.specific_heat.xData,self.specific_heat.yData,self.specific_heat.data = self.getArray(dataID="C", func=funcCp, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.specific_heat.DEBUG) self.specific_heat.source = self.specific_heat.SOURCE_EQUATION - + class DigitalExamplePure(PureData,DigitalData): def __init__(self): - DigitalData.__init__(self) - PureData.__init__(self) + DigitalData.__init__(self) + PureData.__init__(self) self.name = "ExampleDigitalPure" self.description = "water at 100 bar" self.reference = "none" - + self.Tmin = 280.00; self.Tmax = 500.00; self.TminPsat = self.Tmin; - + self.temperature.data = self.getTrange() self.concentration.data = self.getxrange() - + import CoolProp.CoolProp as CP - + def funcD(T,x): return CP.PropsSI('D','T',T,'P',1e7,'water') def funcC(T,x): @@ -118,34 +118,34 @@ class DigitalExamplePure(PureData,DigitalData): return CP.PropsSI('V','T',T,'P',1e7,'water') def funcP(T,x): return CP.PropsSI('P','T',T,'Q',0.0,'water') - + self.density.xData,self.density.yData,self.density.data = self.getArray(dataID="D", func=funcD, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.density.DEBUG) self.density.source = self.density.SOURCE_EQUATION self.specific_heat.xData,self.specific_heat.yData,self.specific_heat.data = self.getArray(dataID="C", func=funcC, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.specific_heat.DEBUG) self.specific_heat.source = self.specific_heat.SOURCE_EQUATION - + self.conductivity.xData,self.conductivity.yData,self.conductivity.data = self.getArray(dataID="L", func=funcL, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.conductivity.DEBUG) self.conductivity.source = self.conductivity.SOURCE_EQUATION - + self.viscosity.xData,self.viscosity.yData,self.viscosity.data = self.getArray(dataID="V", func=funcV, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.viscosity.DEBUG) self.viscosity.source = self.viscosity.SOURCE_EQUATION - + self.saturation_pressure.xData,self.saturation_pressure.yData,self.saturation_pressure.data = self.getArray(dataID="P", func=funcP, x_in=self.temperature.data, y_in=self.concentration.data,DEBUG=self.saturation_pressure.DEBUG) self.saturation_pressure.source = self.saturation_pressure.SOURCE_EQUATION - - - - - + + + + + class SecCoolExample(CoefficientData): - """ + """ Ethanol-Water mixture according to Melinder book Source: SecCool Software - """ + """ def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "ExampleSecCool" self.description = "Methanol solution" #self.reference = "SecCool software" @@ -155,17 +155,17 @@ class SecCoolExample(CoefficientData): self.xmin = 0.0 self.xid = self.ifrac_mass self.TminPsat = 20 + 273.15 - + self.Tbase = -4.48 + 273.15 self.xbase = 31.57 / 100.0 - + self.density.type = self.density.INCOMPRESSIBLE_POLYNOMIAL self.density.coeffs = self.convertSecCoolArray(np.array([ - 960.24665800, - -1.2903839100, - -0.0161042520, - -0.0001969888, - 1.131559E-05, + 960.24665800, + -1.2903839100, + -0.0161042520, + -0.0001969888, + 1.131559E-05, 9.181999E-08, -0.4020348270, -0.0162463989, @@ -176,12 +176,12 @@ class SecCoolExample(CoefficientData): 0.0001101514, -2.320217E-07, 7.794999E-08, - 9.937483E-06, + 9.937483E-06, -1.346886E-06, 4.141999E-08])) - - - + + + self.specific_heat.type = self.specific_heat.INCOMPRESSIBLE_POLYNOMIAL self.specific_heat.coeffs = self.convertSecCoolArray(np.array([ 3822.9712300, @@ -189,97 +189,97 @@ class SecCoolExample(CoefficientData): 0.0678775826, 0.0022413893, -0.0003045332, - -4.758000E-06, - 2.3501449500, - 0.1788839410, - 0.0006828000, - 0.0002101166, - -9.812000E-06, - -0.0004724176, - -0.0003317949, - 0.0001002032, - -5.306000E-06, - 4.242194E-05, - 2.347190E-05, + -4.758000E-06, + 2.3501449500, + 0.1788839410, + 0.0006828000, + 0.0002101166, + -9.812000E-06, + -0.0004724176, + -0.0003317949, + 0.0001002032, + -5.306000E-06, + 4.242194E-05, + 2.347190E-05, -1.894000E-06])) self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL self.conductivity.coeffs = self.convertSecCoolArray(np.array([ - 0.4082066700, - -0.0039816870, - 1.583368E-05, - -3.552049E-07, - -9.884176E-10, - 4.460000E-10, - 0.0006629321, - -2.686475E-05, - 9.039150E-07, - -2.128257E-08, - -5.562000E-10, - 3.685975E-07, - 7.188416E-08, - -1.041773E-08, - 2.278001E-10, - 4.703395E-08, - 7.612361E-11, + 0.4082066700, + -0.0039816870, + 1.583368E-05, + -3.552049E-07, + -9.884176E-10, + 4.460000E-10, + 0.0006629321, + -2.686475E-05, + 9.039150E-07, + -2.128257E-08, + -5.562000E-10, + 3.685975E-07, + 7.188416E-08, + -1.041773E-08, + 2.278001E-10, + 4.703395E-08, + 7.612361E-11, -2.734000E-10])) self.viscosity.type = self.viscosity.INCOMPRESSIBLE_EXPPOLYNOMIAL self.viscosity.coeffs = self.convertSecCoolArray(np.array([ - 1.4725525500, - 0.0022218998, - -0.0004406139, - 6.047984E-06, - -1.954730E-07, - -2.372000E-09, - -0.0411841566, - 0.0001784479, - -3.564413E-06, - 4.064671E-08, - 1.915000E-08, - 0.0002572862, - -9.226343E-07, - -2.178577E-08, - -9.529999E-10, - -1.699844E-06, - -1.023552E-07, + 1.4725525500, + 0.0022218998, + -0.0004406139, + 6.047984E-06, + -1.954730E-07, + -2.372000E-09, + -0.0411841566, + 0.0001784479, + -3.564413E-06, + 4.064671E-08, + 1.915000E-08, + 0.0002572862, + -9.226343E-07, + -2.178577E-08, + -9.529999E-10, + -1.699844E-06, + -1.023552E-07, 4.482000E-09])) self.T_freeze.type = self.T_freeze.INCOMPRESSIBLE_POLYOFFSET self.T_freeze.coeffs = np.array([ 27.755555600/100.0, - -22.973221700+273.15, - -1.1040507200*100.0, - -0.0120762281*100.0*100.0, + -22.973221700+273.15, + -1.1040507200*100.0, + -0.0120762281*100.0*100.0, -9.343458E-05*100.0*100.0*100.0]) - + 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 self.T_freeze.source = self.T_freeze.SOURCE_COEFFS - - + + class MelinderExample(CoefficientData): - """ + """ Methanol-Water mixture according to Melinder book Source: Book - """ + """ def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "ExampleMelinder" self.description = "Methanol solution" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmax = 40 + 273.15 self.Tmin = -50 + 273.15 self.xmax = 0.6 self.xmin = 0.0 self.xid = self.ifrac_mass self.TminPsat = self.Tmax - + 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 ], @@ -300,7 +300,6 @@ class MelinderExample(CoefficientData): [ -0.0000000005407, -0.0000001325 , 0.000007373 , -0.0000000000004573, -0.0000000009105 ], [ 0.00000002363 , -0.00000007727 , 0.000006433 , -0.0000000002033 , -0.0000000008472 ] ]) - + self.setMelinderMatrix(coeffs) - - \ No newline at end of file + diff --git a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py index c5a98d7c..e62de801 100644 --- a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py +++ b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py @@ -5,15 +5,15 @@ 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) + PureData.__init__(self) self.name = "DEB" self.description = "Diethylbenzene mixture - Dowtherm J Dow Chemical Co." - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -30,7 +30,7 @@ class DEBLiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000189132,-2.06364e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -38,15 +38,15 @@ class DEBLiquidClass(CoefficientData,PureData): class HCMLiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "HCM" self.description = "Hydrocarbon mixture (synthetic) - Therminol D12 (Gilotherm D12) Solutia" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -63,7 +63,7 @@ class HCMLiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000153716,-1.51212e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -71,15 +71,15 @@ class HCMLiquidClass(CoefficientData,PureData): class HFELiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "HFE" self.description = "Hydrofluoroether - HFE-7100 3M Novec" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -96,7 +96,7 @@ class HFELiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([9.92958e-05,-8.33333e-08])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -104,15 +104,15 @@ class HFELiquidClass(CoefficientData,PureData): class PMS1LiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "PMS1" self.description = "Polydimethylsiloxan 1. - Baysilone KT3" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -129,7 +129,7 @@ class PMS1LiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000207526,-2.84167e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -137,15 +137,15 @@ class PMS1LiquidClass(CoefficientData,PureData): class PMS2LiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "PMS2" self.description = "Polydimethylsiloxan 2. - Syltherm XLT Dow Corning Co." - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -162,7 +162,7 @@ class PMS2LiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000172305,-2.11212e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -170,15 +170,15 @@ class PMS2LiquidClass(CoefficientData,PureData): class SABLiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "SAB" self.description = "Synthetic alkyl benzene - Marlotherm X" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -195,7 +195,7 @@ class SABLiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000208374,-2.61667e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -203,15 +203,15 @@ class SABLiquidClass(CoefficientData,PureData): class HCBLiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "HCB" self.description = "Hydrocarbon blend - Dynalene MV" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -228,7 +228,7 @@ class HCBLiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000203186,-2.3869e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -236,15 +236,15 @@ class HCBLiquidClass(CoefficientData,PureData): class TCOLiquidClass(CoefficientData,PureData): - """ + """ Pure fluid according to Melinder's book - """ + """ def __init__(self): - CoefficientData.__init__(self) - PureData.__init__(self) + CoefficientData.__init__(self) + PureData.__init__(self) self.name = "TCO" self.description = "Terpene from citrus oils - d-Limonene" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin = -80.0 + 273.15 self.Tmax = 100.0 + 273.15 @@ -261,7 +261,7 @@ class TCOLiquidClass(CoefficientData,PureData): self.conductivity.type = self.conductivity.INCOMPRESSIBLE_POLYNOMIAL _,_,self.conductivity.coeffs = IncompressibleFitter.shapeArray(np.array([0.000174156,-1.85052e-07])) - + self.density.source = self.density.SOURCE_COEFFS self.specific_heat.source = self.specific_heat.SOURCE_COEFFS self.conductivity.source = self.conductivity.SOURCE_COEFFS @@ -275,18 +275,18 @@ class TCOLiquidClass(CoefficientData,PureData): - - + + class EGSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MEG" self.description = "Ethylene Glycol" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 100 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.6 @@ -317,18 +317,18 @@ class EGSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class PGSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MPG" self.description = "Propylene Glycol" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 100 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.6 @@ -359,18 +359,18 @@ class PGSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class EASolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MEA" self.description = "Ethyl Alcohol (Ethanol)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 40 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.6 @@ -401,18 +401,18 @@ class EASolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class MASolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MMA" self.description = "Methyl Alcohol (Methanol)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 40 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.6 @@ -444,18 +444,18 @@ class MASolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class GLSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MGL" self.description = "Glycerol" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 40 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.6 @@ -486,18 +486,18 @@ class GLSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class AMSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MAM" self.description = "Ammonia (NH3)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 30 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.3 @@ -528,18 +528,18 @@ class AMSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class KCSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MKC" self.description = "Potassium Carbonate (K2CO3)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100 + 273.15 self.Tmax = 40 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.4 @@ -570,18 +570,18 @@ class KCSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class CASolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MCA" self.description = "Calcium Chloride (CaCl2)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.3 @@ -612,18 +612,18 @@ class CASolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class MGSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MMG" self.description = "(MgCl2)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.3 @@ -654,18 +654,18 @@ class MGSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class NASolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MNA" self.description = "Sodium Chloride (NaCl)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.23 @@ -696,18 +696,18 @@ class NASolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class KASolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MKA" self.description = "Potassium Acetate (CH3CO2K)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.45 @@ -738,18 +738,18 @@ class KASolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class KFSolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MKF" self.description = "Potassium Formate (CHKO2)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.48 @@ -780,18 +780,18 @@ class KFSolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + class LISolution(CoefficientData): def __init__(self): - CoefficientData.__init__(self) + CoefficientData.__init__(self) self.name = "MLI" self.description = "Lithium Chloride (LiCl)" - self.reference = "Melinder-BOOK-2010" + self.reference = "Melinder2010" self.Tmin =-100.0 + 273.15 self.Tmax = 40.0 + 273.15 - self.TminPsat = self.Tmax + self.TminPsat = self.Tmax self.xmin = 0.0 self.xmax = 0.24 @@ -822,4 +822,4 @@ class LISolution(CoefficientData): ]) self.setMelinderMatrix(coeffs) - + diff --git a/dev/incompressible_liquids/CPIncomp/PureFluids.py b/dev/incompressible_liquids/CPIncomp/PureFluids.py index 97825273..70c72901 100644 --- a/dev/incompressible_liquids/CPIncomp/PureFluids.py +++ b/dev/incompressible_liquids/CPIncomp/PureFluids.py @@ -1,13 +1,13 @@ from __future__ import division, print_function import numpy as np from CPIncomp.DataObjects import PureData - + class TherminolD12(PureData): - """ + """ Heat transfer fluid Therminol D12 by Solutia """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -17,22 +17,22 @@ class TherminolD12(PureData): self.density.data = np.array([+8.35000E+2, +8.32000E+2, +8.28000E+2, +8.25000E+2, +8.22000E+2, +8.18000E+2, +8.15000E+2, +8.11000E+2, +8.08000E+2, +8.05000E+2, +8.01000E+2, +7.98000E+2, +7.94000E+2, +7.91000E+2, +7.87000E+2, +7.84000E+2, +7.80000E+2, +7.77000E+2, +7.73000E+2, +7.70000E+2, +7.66000E+2, +7.62000E+2, +7.59000E+2, +7.55000E+2, +7.52000E+2, +7.48000E+2, +7.44000E+2, +7.41000E+2, +7.37000E+2, +7.33000E+2, +7.29000E+2, +7.26000E+2, +7.22000E+2, +7.18000E+2, +7.14000E+2, +7.10000E+2, +7.06000E+2, +7.03000E+2, +6.99000E+2, +6.95000E+2, +6.91000E+2, +6.87000E+2, +6.82000E+2, +6.78000E+2, +6.74000E+2, +6.70000E+2, +6.66000E+2, +6.61000E+2, +6.57000E+2, +6.53000E+2, +6.48000E+2, +6.44000E+2, +6.39000E+2, +6.35000E+2, +6.30000E+2, +6.25000E+2, +6.20000E+2, +6.16000E+2, +6.11000E+2, +6.06000E+2, +6.00000E+2, +5.95000E+2, +5.90000E+2, +5.84000E+2]) # kg/m3 self.specific_heat.data = np.array([+1.69400E+0, +1.71200E+0, +1.73100E+0, +1.75000E+0, +1.76800E+0, +1.78700E+0, +1.80600E+0, +1.82400E+0, +1.84300E+0, +1.86200E+0, +1.88100E+0, +1.90000E+0, +1.91900E+0, +1.93800E+0, +1.95700E+0, +1.97700E+0, +1.99600E+0, +2.01500E+0, +2.03500E+0, +2.05400E+0, +2.07300E+0, +2.09300E+0, +2.11300E+0, +2.13200E+0, +2.15200E+0, +2.17200E+0, +2.19100E+0, +2.21100E+0, +2.23100E+0, +2.25100E+0, +2.27100E+0, +2.29100E+0, +2.31200E+0, +2.33200E+0, +2.35200E+0, +2.37300E+0, +2.39300E+0, +2.41400E+0, +2.43400E+0, +2.45500E+0, +2.47600E+0, +2.49600E+0, +2.51700E+0, +2.53800E+0, +2.55900E+0, +2.58000E+0, +2.60200E+0, +2.62300E+0, +2.64400E+0, +2.66600E+0, +2.68700E+0, +2.70900E+0, +2.73100E+0, +2.75300E+0, +2.77500E+0, +2.79700E+0, +2.82000E+0, +2.84200E+0, +2.86500E+0, +2.88800E+0, +2.91100E+0, +2.93500E+0, +2.95900E+0, +2.98300E+0])*1000. # J/kg-K self.conductivity.data = np.array([+1.24400E-1, +1.23800E-1, +1.23200E-1, +1.22500E-1, +1.21900E-1, +1.21300E-1, +1.20600E-1, +1.20000E-1, +1.19300E-1, +1.18600E-1, +1.18000E-1, +1.17300E-1, +1.16600E-1, +1.15900E-1, +1.15200E-1, +1.14500E-1, +1.13700E-1, +1.13000E-1, +1.12200E-1, +1.11500E-1, +1.10700E-1, +1.10000E-1, +1.09200E-1, +1.08400E-1, +1.07600E-1, +1.06800E-1, +1.06000E-1, +1.05200E-1, +1.04400E-1, +1.03500E-1, +1.02700E-1, +1.01900E-1, +1.01000E-1, +1.00100E-1, +9.93000E-2, +9.84000E-2, +9.75000E-2, +9.66000E-2, +9.57000E-2, +9.48000E-2, +9.39000E-2, +9.29000E-2, +9.20000E-2, +9.10000E-2, +9.01000E-2, +8.91000E-2, +8.82000E-2, +8.72000E-2, +8.62000E-2, +8.52000E-2, +8.42000E-2, +8.32000E-2, +8.22000E-2, +8.12000E-2, +8.01000E-2, +7.91000E-2, +7.80000E-2, +7.70000E-2, +7.59000E-2, +7.48000E-2, +7.38000E-2, +7.27000E-2, +7.16000E-2, +7.05000E-2]) # W/m-K - self.viscosity.data = np.array([+3.59000E-1, +1.77000E-1, +9.59000E-2, +5.64000E-2, +3.55000E-2, +2.36000E-2, +1.65000E-2, +1.20000E-2, +9.07000E-3, +7.06000E-3, +5.63000E-3, +4.60000E-3, +3.82000E-3, +3.24000E-3, +2.78000E-3, +2.41000E-3, +2.12000E-3, +1.88000E-3, +1.69000E-3, +1.52000E-3, +1.38000E-3, +1.26000E-3, +1.16000E-3, +1.07000E-3, +9.88000E-4, +9.18000E-4, +8.56000E-4, +8.00000E-4, +7.50000E-4, +7.05000E-4, +6.64000E-4, +6.26000E-4, +5.92000E-4, +5.61000E-4, +5.31000E-4, +5.04000E-4, +4.79000E-4, +4.56000E-4, +4.35000E-4, +4.14000E-4, +3.95000E-4, +3.78000E-4, +3.61000E-4, +3.45000E-4, +3.30000E-4, +3.16000E-4, +3.03000E-4, +2.90000E-4, +2.78000E-4, +2.67000E-4, +2.57000E-4, +2.46000E-4, +2.37000E-4, +2.27000E-4, +2.19000E-4, +2.10000E-4, +2.02000E-4, +1.95000E-4, +1.87000E-4, +1.80000E-4, +1.74000E-4, +1.67000E-4, +1.61000E-4, +1.56000E-4]) # Pa-s - self.saturation_pressure.data = np.array([+4.75000E-9, +2.07000E-8, +8.08000E-8, +2.81000E-7, +8.86000E-7, +2.56000E-6, +6.82000E-6, +1.70000E-5, +3.96000E-5, +8.75000E-5, +1.84000E-4, +3.68000E-4, +7.06000E-4, +1.30000E-3, +2.33000E-3, +4.02000E-3, +6.75000E-3, +1.10000E-2, +1.76000E-2, +2.73000E-2, +4.16000E-2, +6.21000E-2, +9.10000E-2, +1.31000E-1, +1.86000E-1, +2.59000E-1, +3.56000E-1, +4.84000E-1, +6.48000E-1, +8.59000E-1, +1.13000E+0, +1.46000E+0, +1.88000E+0, +2.39000E+0, +3.01000E+0, +3.77000E+0, +4.68000E+0, +5.76000E+0, +7.05000E+0, +8.57000E+0, +1.03000E+1, +1.24000E+1, +1.48000E+1, +1.76000E+1, +2.08000E+1, +2.44000E+1, +2.85000E+1, +3.32000E+1, +3.84000E+1, +4.43000E+1, +5.09000E+1, +5.83000E+1, +6.64000E+1, +7.55000E+1, +8.55000E+1, +9.65000E+1, +1.09000E+2, +1.22000E+2, +1.36000E+2, +1.52000E+2, +1.69000E+2, +1.88000E+2, +2.08000E+2, +2.29000E+2])*1000. # Pa + self.viscosity.data = np.array([+3.59000E-1, +1.77000E-1, +9.59000E-2, +5.64000E-2, +3.55000E-2, +2.36000E-2, +1.65000E-2, +1.20000E-2, +9.07000E-3, +7.06000E-3, +5.63000E-3, +4.60000E-3, +3.82000E-3, +3.24000E-3, +2.78000E-3, +2.41000E-3, +2.12000E-3, +1.88000E-3, +1.69000E-3, +1.52000E-3, +1.38000E-3, +1.26000E-3, +1.16000E-3, +1.07000E-3, +9.88000E-4, +9.18000E-4, +8.56000E-4, +8.00000E-4, +7.50000E-4, +7.05000E-4, +6.64000E-4, +6.26000E-4, +5.92000E-4, +5.61000E-4, +5.31000E-4, +5.04000E-4, +4.79000E-4, +4.56000E-4, +4.35000E-4, +4.14000E-4, +3.95000E-4, +3.78000E-4, +3.61000E-4, +3.45000E-4, +3.30000E-4, +3.16000E-4, +3.03000E-4, +2.90000E-4, +2.78000E-4, +2.67000E-4, +2.57000E-4, +2.46000E-4, +2.37000E-4, +2.27000E-4, +2.19000E-4, +2.10000E-4, +2.02000E-4, +1.95000E-4, +1.87000E-4, +1.80000E-4, +1.74000E-4, +1.67000E-4, +1.61000E-4, +1.56000E-4]) # Pa-s + self.saturation_pressure.data = np.array([+4.75000E-9, +2.07000E-8, +8.08000E-8, +2.81000E-7, +8.86000E-7, +2.56000E-6, +6.82000E-6, +1.70000E-5, +3.96000E-5, +8.75000E-5, +1.84000E-4, +3.68000E-4, +7.06000E-4, +1.30000E-3, +2.33000E-3, +4.02000E-3, +6.75000E-3, +1.10000E-2, +1.76000E-2, +2.73000E-2, +4.16000E-2, +6.21000E-2, +9.10000E-2, +1.31000E-1, +1.86000E-1, +2.59000E-1, +3.56000E-1, +4.84000E-1, +6.48000E-1, +8.59000E-1, +1.13000E+0, +1.46000E+0, +1.88000E+0, +2.39000E+0, +3.01000E+0, +3.77000E+0, +4.68000E+0, +5.76000E+0, +7.05000E+0, +8.57000E+0, +1.03000E+1, +1.24000E+1, +1.48000E+1, +1.76000E+1, +2.08000E+1, +2.44000E+1, +2.85000E+1, +3.32000E+1, +3.84000E+1, +4.43000E+1, +5.09000E+1, +5.83000E+1, +6.64000E+1, +7.55000E+1, +8.55000E+1, +9.65000E+1, +1.09000E+2, +1.22000E+2, +1.36000E+2, +1.52000E+2, +1.69000E+2, +1.88000E+2, +2.08000E+2, +2.29000E+2])*1000. # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) self.TminPsat = self.Tmin - self.name = "TD12" + self.name = "TD12" self.description = "TherminolD12" - self.reference = "Therminol Heat Transfer Reference Disk" + self.reference = "Therminol2014" self.reshapeAll() class TherminolVP1(PureData): - """ + """ Heat transfer fluid Therminol VP-1 by Solutia """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -42,23 +42,23 @@ class TherminolVP1(PureData): self.density.data = np.array([+1.07000E+3, +1.07000E+3, +1.06000E+3, +1.06000E+3, +1.05000E+3, +1.05000E+3, +1.05000E+3, +1.04000E+3, +1.04000E+3, +1.03000E+3, +1.03000E+3, +1.03000E+3, +1.02000E+3, +1.02000E+3, +1.01000E+3, +1.01000E+3, +1.01000E+3, +1.00000E+3, +9.97000E+2, +9.93000E+2, +9.88000E+2, +9.84000E+2, +9.80000E+2, +9.76000E+2, +9.72000E+2, +9.67000E+2, +9.63000E+2, +9.59000E+2, +9.55000E+2, +9.50000E+2, +9.46000E+2, +9.42000E+2, +9.37000E+2, +9.33000E+2, +9.29000E+2, +9.24000E+2, +9.20000E+2, +9.15000E+2, +9.11000E+2, +9.06000E+2, +9.02000E+2, +8.98000E+2, +8.93000E+2, +8.89000E+2, +8.84000E+2, +8.79000E+2, +8.75000E+2, +8.70000E+2, +8.65000E+2, +8.60000E+2, +8.56000E+2, +8.51000E+2, +8.46000E+2, +8.41000E+2, +8.36000E+2, +8.31000E+2, +8.25000E+2, +8.20000E+2, +8.15000E+2, +8.10000E+2, +8.04000E+2, +7.99000E+2, +7.93000E+2, +7.88000E+2, +7.82000E+2, +7.76000E+2, +7.70000E+2, +7.65000E+2, +7.59000E+2, +7.52000E+2, +7.46000E+2, +7.40000E+2, +7.33000E+2, +7.27000E+2, +7.20000E+2, +7.13000E+2, +7.06000E+2, +6.99000E+2]) # kg/m3 self.specific_heat.data = np.array([+1.52300E+0, +1.53700E+0, +1.55200E+0, +1.56600E+0, +1.58100E+0, +1.59600E+0, +1.61000E+0, +1.62400E+0, +1.63900E+0, +1.65300E+0, +1.66800E+0, +1.68200E+0, +1.69600E+0, +1.71000E+0, +1.72400E+0, +1.73900E+0, +1.75300E+0, +1.76700E+0, +1.78100E+0, +1.79500E+0, +1.80900E+0, +1.82200E+0, +1.83600E+0, +1.85000E+0, +1.86400E+0, +1.87800E+0, +1.89100E+0, +1.90500E+0, +1.91900E+0, +1.93200E+0, +1.94600E+0, +1.95900E+0, +1.97300E+0, +1.98600E+0, +2.00000E+0, +2.01300E+0, +2.02700E+0, +2.04000E+0, +2.05400E+0, +2.06700E+0, +2.08000E+0, +2.09300E+0, +2.10700E+0, +2.12000E+0, +2.13300E+0, +2.14700E+0, +2.16000E+0, +2.17300E+0, +2.18600E+0, +2.19900E+0, +2.21300E+0, +2.22600E+0, +2.23900E+0, +2.25200E+0, +2.26600E+0, +2.27900E+0, +2.29300E+0, +2.30600E+0, +2.31900E+0, +2.33300E+0, +2.34700E+0, +2.36000E+0, +2.37400E+0, +2.38800E+0, +2.40200E+0, +2.41600E+0, +2.43100E+0, +2.44600E+0, +2.46000E+0, +2.47600E+0, +2.49100E+0, +2.50700E+0, +2.52300E+0, +2.54000E+0, +2.55800E+0, +2.57600E+0, +2.59500E+0, +2.61500E+0])*1000. # J/kg-K self.conductivity.data = np.array([+1.37000E-1, +1.36600E-1, +1.36100E-1, +1.35600E-1, +1.35200E-1, +1.34700E-1, +1.34200E-1, +1.33600E-1, +1.33100E-1, +1.32600E-1, +1.32000E-1, +1.31500E-1, +1.30900E-1, +1.30400E-1, +1.29800E-1, +1.29200E-1, +1.28600E-1, +1.28000E-1, +1.27400E-1, +1.26800E-1, +1.26200E-1, +1.25600E-1, +1.24900E-1, +1.24300E-1, +1.23600E-1, +1.22900E-1, +1.22300E-1, +1.21600E-1, +1.20900E-1, +1.20200E-1, +1.19500E-1, +1.18700E-1, +1.18000E-1, +1.17300E-1, +1.16500E-1, +1.15800E-1, +1.15000E-1, +1.14200E-1, +1.13500E-1, +1.12700E-1, +1.11900E-1, +1.11100E-1, +1.10300E-1, +1.09400E-1, +1.08600E-1, +1.07800E-1, +1.06900E-1, +1.06000E-1, +1.05200E-1, +1.04300E-1, +1.03400E-1, +1.02500E-1, +1.01600E-1, +1.00700E-1, +9.98000E-2, +9.89000E-2, +9.79000E-2, +9.70000E-2, +9.60000E-2, +9.51000E-2, +9.41000E-2, +9.31000E-2, +9.21000E-2, +9.11000E-2, +9.01000E-2, +8.91000E-2, +8.81000E-2, +8.71000E-2, +8.60000E-2, +8.50000E-2, +8.39000E-2, +8.29000E-2, +8.18000E-2, +8.07000E-2, +7.96000E-2, +7.85000E-2, +7.74000E-2, +7.63000E-2]) # W/m-K - self.viscosity.data = np.array([+5.48000E-3, +4.68000E-3, +4.05000E-3, +3.54000E-3, +3.12000E-3, +2.78000E-3, +2.49000E-3, +2.24000E-3, +2.04000E-3, +1.86000E-3, +1.70000E-3, +1.57000E-3, +1.45000E-3, +1.34000E-3, +1.25000E-3, +1.16000E-3, +1.09000E-3, +1.02000E-3, +9.62000E-4, +9.06000E-4, +8.56000E-4, +8.10000E-4, +7.68000E-4, +7.29000E-4, +6.93000E-4, +6.60000E-4, +6.30000E-4, +6.01000E-4, +5.75000E-4, +5.51000E-4, +5.28000E-4, +5.06000E-4, +4.86000E-4, +4.67000E-4, +4.50000E-4, +4.33000E-4, +4.18000E-4, +4.03000E-4, +3.89000E-4, +3.76000E-4, +3.64000E-4, +3.52000E-4, +3.41000E-4, +3.30000E-4, +3.20000E-4, +3.10000E-4, +3.01000E-4, +2.93000E-4, +2.84000E-4, +2.77000E-4, +2.69000E-4, +2.62000E-4, +2.55000E-4, +2.48000E-4, +2.42000E-4, +2.36000E-4, +2.30000E-4, +2.25000E-4, +2.19000E-4, +2.14000E-4, +2.09000E-4, +2.04000E-4, +2.00000E-4, +1.96000E-4, +1.91000E-4, +1.87000E-4, +1.83000E-4, +1.80000E-4, +1.76000E-4, +1.72000E-4, +1.69000E-4, +1.66000E-4, +1.62000E-4, +1.59000E-4, +1.56000E-4, +1.53000E-4, +1.51000E-4, +1.48000E-4]) # Pa-s - self.saturation_pressure.data = np.array([+5.76000E-4, +9.86000E-4, +1.65000E-3, +2.68000E-3, +4.27000E-3, +6.67000E-3, +1.02000E-2, +1.53000E-2, +2.26000E-2, +3.29000E-2, +4.71000E-2, +6.65000E-2, +9.26000E-2, +1.27000E-1, +1.73000E-1, +2.32000E-1, +3.09000E-1, +4.07000E-1, +5.30000E-1, +6.85000E-1, +8.77000E-1, +1.11000E+0, +1.40000E+0, +1.76000E+0, +2.18000E+0, +2.70000E+0, +3.31000E+0, +4.03000E+0, +4.88000E+0, +5.88000E+0, +7.05000E+0, +8.40000E+0, +9.96000E+0, +1.18000E+1, +1.38000E+1, +1.62000E+1, +1.89000E+1, +2.19000E+1, +2.53000E+1, +2.92000E+1, +3.35000E+1, +3.84000E+1, +4.37000E+1, +4.97000E+1, +5.63000E+1, +6.37000E+1, +7.17000E+1, +8.06000E+1, +9.03000E+1, +1.01000E+2, +1.13000E+2, +1.25000E+2, +1.39000E+2, +1.54000E+2, +1.70000E+2, +1.87000E+2, +2.06000E+2, +2.26000E+2, +2.48000E+2, +2.71000E+2, +2.96000E+2, +3.23000E+2, +3.51000E+2, +3.82000E+2, +4.14000E+2, +4.48000E+2, +4.85000E+2, +5.24000E+2, +5.64000E+2, +6.08000E+2, +6.54000E+2, +7.02000E+2, +7.53000E+2, +8.06000E+2, +8.62000E+2, +9.21000E+2, +9.83000E+2, +1.05000E+3])*1000. # Pa + self.viscosity.data = np.array([+5.48000E-3, +4.68000E-3, +4.05000E-3, +3.54000E-3, +3.12000E-3, +2.78000E-3, +2.49000E-3, +2.24000E-3, +2.04000E-3, +1.86000E-3, +1.70000E-3, +1.57000E-3, +1.45000E-3, +1.34000E-3, +1.25000E-3, +1.16000E-3, +1.09000E-3, +1.02000E-3, +9.62000E-4, +9.06000E-4, +8.56000E-4, +8.10000E-4, +7.68000E-4, +7.29000E-4, +6.93000E-4, +6.60000E-4, +6.30000E-4, +6.01000E-4, +5.75000E-4, +5.51000E-4, +5.28000E-4, +5.06000E-4, +4.86000E-4, +4.67000E-4, +4.50000E-4, +4.33000E-4, +4.18000E-4, +4.03000E-4, +3.89000E-4, +3.76000E-4, +3.64000E-4, +3.52000E-4, +3.41000E-4, +3.30000E-4, +3.20000E-4, +3.10000E-4, +3.01000E-4, +2.93000E-4, +2.84000E-4, +2.77000E-4, +2.69000E-4, +2.62000E-4, +2.55000E-4, +2.48000E-4, +2.42000E-4, +2.36000E-4, +2.30000E-4, +2.25000E-4, +2.19000E-4, +2.14000E-4, +2.09000E-4, +2.04000E-4, +2.00000E-4, +1.96000E-4, +1.91000E-4, +1.87000E-4, +1.83000E-4, +1.80000E-4, +1.76000E-4, +1.72000E-4, +1.69000E-4, +1.66000E-4, +1.62000E-4, +1.59000E-4, +1.56000E-4, +1.53000E-4, +1.51000E-4, +1.48000E-4]) # Pa-s + self.saturation_pressure.data = np.array([+5.76000E-4, +9.86000E-4, +1.65000E-3, +2.68000E-3, +4.27000E-3, +6.67000E-3, +1.02000E-2, +1.53000E-2, +2.26000E-2, +3.29000E-2, +4.71000E-2, +6.65000E-2, +9.26000E-2, +1.27000E-1, +1.73000E-1, +2.32000E-1, +3.09000E-1, +4.07000E-1, +5.30000E-1, +6.85000E-1, +8.77000E-1, +1.11000E+0, +1.40000E+0, +1.76000E+0, +2.18000E+0, +2.70000E+0, +3.31000E+0, +4.03000E+0, +4.88000E+0, +5.88000E+0, +7.05000E+0, +8.40000E+0, +9.96000E+0, +1.18000E+1, +1.38000E+1, +1.62000E+1, +1.89000E+1, +2.19000E+1, +2.53000E+1, +2.92000E+1, +3.35000E+1, +3.84000E+1, +4.37000E+1, +4.97000E+1, +5.63000E+1, +6.37000E+1, +7.17000E+1, +8.06000E+1, +9.03000E+1, +1.01000E+2, +1.13000E+2, +1.25000E+2, +1.39000E+2, +1.54000E+2, +1.70000E+2, +1.87000E+2, +2.06000E+2, +2.26000E+2, +2.48000E+2, +2.71000E+2, +2.96000E+2, +3.23000E+2, +3.51000E+2, +3.82000E+2, +4.14000E+2, +4.48000E+2, +4.85000E+2, +5.24000E+2, +5.64000E+2, +6.08000E+2, +6.54000E+2, +7.02000E+2, +7.53000E+2, +8.06000E+2, +8.62000E+2, +9.21000E+2, +9.83000E+2, +1.05000E+3])*1000. # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = self.Tmin - self.name = "TVP1" + self.TminPsat = self.Tmin + self.name = "TVP1" self.description = "TherminolVP1" - self.reference = "Therminol Heat Transfer Reference Disk" + self.reference = "Therminol2014" self.reshapeAll() - - + + class Therminol66(PureData): - """ + """ Heat transfer fluid Therminol 66 by Solutia """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -72,19 +72,19 @@ class Therminol66(PureData): self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, 1.0000E+01, 2.0000E+01, 3.0000E+01, 5.0000E+01, 8.0000E+01, 1.2000E+02, 1.8000E+02, 2.7000E+02, 4.0000E+02, 5.8000E+02, 8.3000E+02, 1.1700E+03, 1.6200E+03, 2.2300E+03, 3.0200E+03, 4.0600E+03, 5.3900E+03, 7.1000E+03, 9.2500E+03, 1.1950E+04, 1.5310E+04, 1.9460E+04, 2.4550E+04, 3.0730E+04, 3.8220E+04, 4.7200E+04, 5.7940E+04, 7.0680E+04, 8.5740E+04, 1.0342E+05, 1.2409E+05, 1.4813E+05]) self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 70+273.15 - self.name = "T66" + self.TminPsat = 70+273.15 + self.name = "T66" self.description = "Therminol66" - self.reference = "Therminol Heat Transfer Reference Disk" - self.reshapeAll() - - + self.reference = "Therminol2014" + self.reshapeAll() + + class Therminol72(PureData): - """ + """ Heat transfer fluid Therminol 72 by Solutia """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -94,24 +94,24 @@ class Therminol72(PureData): self.density.data = np.array([+1.11000E+3, +1.10000E+3, +1.10000E+3, +1.09000E+3, +1.09000E+3, +1.08000E+3, +1.08000E+3, +1.07000E+3, +1.07000E+3, +1.07000E+3, +1.06000E+3, +1.06000E+3, +1.05000E+3, +1.05000E+3, +1.04000E+3, +1.04000E+3, +1.03000E+3, +1.03000E+3, +1.02000E+3, +1.02000E+3, +1.02000E+3, +1.01000E+3, +1.01000E+3, +1.00000E+3, +9.97000E+2, +9.93000E+2, +9.88000E+2, +9.84000E+2, +9.79000E+2, +9.74000E+2, +9.70000E+2, +9.65000E+2, +9.61000E+2, +9.56000E+2, +9.52000E+2, +9.47000E+2, +9.43000E+2, +9.38000E+2, +9.34000E+2, +9.29000E+2, +9.25000E+2, +9.20000E+2, +9.16000E+2, +9.11000E+2, +9.06000E+2, +9.02000E+2, +8.98000E+2, +8.93000E+2, +8.89000E+2, +8.84000E+2, +8.80000E+2, +8.75000E+2, +8.71000E+2, +8.66000E+2, +8.62000E+2, +8.57000E+2, +8.53000E+2, +8.48000E+2, +8.44000E+2, +8.39000E+2, +8.34000E+2, +8.30000E+2, +8.25000E+2, +8.21000E+2, +8.16000E+2, +8.12000E+2, +8.07000E+2, +8.03000E+2, +7.98000E+2, +7.94000E+2, +7.89000E+2, +7.85000E+2, +7.80000E+2, +7.76000E+2, +7.71000E+2, +7.66000E+2, +7.62000E+2, +7.57000E+2, +7.53000E+2]) # kg/m3 self.specific_heat.data = np.array([+1.47100E+0, +1.48400E+0, +1.49800E+0, +1.51200E+0, +1.52500E+0, +1.53900E+0, +1.55200E+0, +1.56600E+0, +1.57900E+0, +1.59300E+0, +1.60600E+0, +1.62000E+0, +1.63400E+0, +1.64700E+0, +1.66100E+0, +1.67400E+0, +1.68800E+0, +1.70100E+0, +1.71500E+0, +1.72800E+0, +1.74200E+0, +1.75500E+0, +1.76900E+0, +1.78300E+0, +1.79600E+0, +1.81000E+0, +1.82300E+0, +1.83700E+0, +1.85000E+0, +1.86400E+0, +1.87700E+0, +1.89100E+0, +1.90500E+0, +1.91800E+0, +1.93200E+0, +1.94500E+0, +1.95900E+0, +1.97200E+0, +1.98600E+0, +1.99900E+0, +2.01300E+0, +2.02600E+0, +2.04000E+0, +2.05400E+0, +2.06700E+0, +2.08100E+0, +2.09400E+0, +2.10800E+0, +2.12100E+0, +2.13500E+0, +2.14800E+0, +2.16200E+0, +2.17600E+0, +2.18900E+0, +2.20300E+0, +2.21600E+0, +2.23000E+0, +2.24300E+0, +2.25700E+0, +2.27000E+0, +2.28400E+0, +2.29700E+0, +2.31100E+0, +2.32500E+0, +2.33800E+0, +2.35200E+0, +2.36500E+0, +2.37900E+0, +2.39200E+0, +2.40600E+0, +2.41900E+0, +2.43300E+0, +2.44600E+0, +2.46000E+0, +2.47400E+0, +2.48700E+0, +2.50100E+0, +2.51400E+0, +2.52800E+0])*1000. # J/kg-K self.conductivity.data = np.array([+1.43200E-1, +1.42600E-1, +1.42000E-1, +1.41400E-1, +1.40800E-1, +1.40200E-1, +1.39600E-1, +1.39000E-1, +1.38400E-1, +1.37800E-1, +1.37100E-1, +1.36500E-1, +1.35900E-1, +1.35300E-1, +1.34700E-1, +1.34100E-1, +1.33500E-1, +1.32900E-1, +1.32300E-1, +1.31700E-1, +1.31100E-1, +1.30500E-1, +1.29900E-1, +1.29300E-1, +1.28700E-1, +1.28000E-1, +1.27400E-1, +1.26800E-1, +1.26200E-1, +1.25600E-1, +1.25000E-1, +1.24400E-1, +1.23800E-1, +1.23200E-1, +1.22600E-1, +1.22000E-1, +1.21400E-1, +1.20800E-1, +1.20200E-1, +1.19600E-1, +1.18900E-1, +1.18300E-1, +1.17700E-1, +1.17100E-1, +1.16500E-1, +1.15900E-1, +1.15300E-1, +1.14700E-1, +1.14100E-1, +1.13500E-1, +1.12900E-1, +1.12300E-1, +1.11700E-1, +1.11100E-1, +1.10500E-1, +1.09800E-1, +1.09200E-1, +1.08600E-1, +1.08000E-1, +1.07400E-1, +1.06800E-1, +1.06200E-1, +1.05600E-1, +1.05000E-1, +1.04400E-1, +1.03800E-1, +1.03200E-1, +1.02600E-1, +1.02000E-1, +1.01400E-1, +1.00700E-1, +1.00100E-1, +9.95000E-2, +9.89000E-2, +9.83000E-2, +9.77000E-2, +9.71000E-2, +9.65000E-2, +9.59000E-2]) # W/m-K - self.viscosity.data = np.array([+3.83000E-1, +1.19000E-1, +5.92000E-2, +3.60000E-2, +2.44000E-2, +1.77000E-2, +1.35000E-2, +1.07000E-2, +8.68000E-3, +7.21000E-3, +6.09000E-3, +5.21000E-3, +4.52000E-3, +3.96000E-3, +3.50000E-3, +3.12000E-3, +2.79000E-3, +2.52000E-3, +2.28000E-3, +2.08000E-3, +1.90000E-3, +1.75000E-3, +1.61000E-3, +1.49000E-3, +1.38000E-3, +1.29000E-3, +1.20000E-3, +1.12000E-3, +1.05000E-3, +9.86000E-4, +9.28000E-4, +8.74000E-4, +8.25000E-4, +7.79000E-4, +7.38000E-4, +6.99000E-4, +6.64000E-4, +6.31000E-4, +6.00000E-4, +5.72000E-4, +5.45000E-4, +5.20000E-4, +4.97000E-4, +4.75000E-4, +4.55000E-4, +4.36000E-4, +4.18000E-4, +4.01000E-4, +3.85000E-4, +3.70000E-4, +3.55000E-4, +3.42000E-4, +3.29000E-4, +3.17000E-4, +3.05000E-4, +2.95000E-4, +2.84000E-4, +2.74000E-4, +2.65000E-4, +2.56000E-4, +2.47000E-4, +2.39000E-4, +2.31000E-4, +2.24000E-4, +2.17000E-4, +2.10000E-4, +2.03000E-4, +1.97000E-4, +1.91000E-4, +1.85000E-4, +1.80000E-4, +1.75000E-4, +1.69000E-4, +1.65000E-4, +1.60000E-4, +1.55000E-4, +1.51000E-4, +1.47000E-4, +1.43000E-4]) # Pa-s - self.saturation_pressure.data = np.array([+9.60000E-1, +1.05000E+0, +1.14000E+0, +1.24000E+0, +1.35000E+0, +1.47000E+0, +1.60000E+0, +1.74000E+0, +1.89000E+0, +2.06000E+0, +2.24000E+0, +2.44000E+0, +2.65000E+0, +2.88000E+0, +3.14000E+0, +3.41000E+0, +3.71000E+0, +4.03000E+0, +4.39000E+0, +4.77000E+0, +5.18000E+0, +5.63000E+0, +6.12000E+0, +6.66000E+0, +7.23000E+0, +7.86000E+0, +8.54000E+0, +9.27000E+0, +1.01000E+1, +1.10000E+1, +1.19000E+1, +1.29000E+1, +1.40000E+1, +1.52000E+1, +1.65000E+1, +1.80000E+1, +1.95000E+1, +2.12000E+1, +2.30000E+1, +2.49000E+1, +2.71000E+1, +2.94000E+1, +3.19000E+1, +3.46000E+1, +3.75000E+1, +4.07000E+1, +4.42000E+1, +4.79000E+1, +5.20000E+1, +5.64000E+1, +6.11000E+1, +6.63000E+1, +7.19000E+1, +7.79000E+1, +8.45000E+1, +9.15000E+1, +9.92000E+1, +1.08000E+2, +1.17000E+2, +1.26000E+2, +1.37000E+2, +1.48000E+2, +1.61000E+2, +1.74000E+2, +1.89000E+2, +2.04000E+2, +2.21000E+2, +2.40000E+2, +2.60000E+2, +2.81000E+2, +3.04000E+2, +3.30000E+2, +3.57000E+2, +3.86000E+2, +4.18000E+2, +4.53000E+2, +4.90000E+2, +5.30000E+2, +5.74000E+2])*1000. # Pa + self.viscosity.data = np.array([+3.83000E-1, +1.19000E-1, +5.92000E-2, +3.60000E-2, +2.44000E-2, +1.77000E-2, +1.35000E-2, +1.07000E-2, +8.68000E-3, +7.21000E-3, +6.09000E-3, +5.21000E-3, +4.52000E-3, +3.96000E-3, +3.50000E-3, +3.12000E-3, +2.79000E-3, +2.52000E-3, +2.28000E-3, +2.08000E-3, +1.90000E-3, +1.75000E-3, +1.61000E-3, +1.49000E-3, +1.38000E-3, +1.29000E-3, +1.20000E-3, +1.12000E-3, +1.05000E-3, +9.86000E-4, +9.28000E-4, +8.74000E-4, +8.25000E-4, +7.79000E-4, +7.38000E-4, +6.99000E-4, +6.64000E-4, +6.31000E-4, +6.00000E-4, +5.72000E-4, +5.45000E-4, +5.20000E-4, +4.97000E-4, +4.75000E-4, +4.55000E-4, +4.36000E-4, +4.18000E-4, +4.01000E-4, +3.85000E-4, +3.70000E-4, +3.55000E-4, +3.42000E-4, +3.29000E-4, +3.17000E-4, +3.05000E-4, +2.95000E-4, +2.84000E-4, +2.74000E-4, +2.65000E-4, +2.56000E-4, +2.47000E-4, +2.39000E-4, +2.31000E-4, +2.24000E-4, +2.17000E-4, +2.10000E-4, +2.03000E-4, +1.97000E-4, +1.91000E-4, +1.85000E-4, +1.80000E-4, +1.75000E-4, +1.69000E-4, +1.65000E-4, +1.60000E-4, +1.55000E-4, +1.51000E-4, +1.47000E-4, +1.43000E-4]) # Pa-s + self.saturation_pressure.data = np.array([+9.60000E-1, +1.05000E+0, +1.14000E+0, +1.24000E+0, +1.35000E+0, +1.47000E+0, +1.60000E+0, +1.74000E+0, +1.89000E+0, +2.06000E+0, +2.24000E+0, +2.44000E+0, +2.65000E+0, +2.88000E+0, +3.14000E+0, +3.41000E+0, +3.71000E+0, +4.03000E+0, +4.39000E+0, +4.77000E+0, +5.18000E+0, +5.63000E+0, +6.12000E+0, +6.66000E+0, +7.23000E+0, +7.86000E+0, +8.54000E+0, +9.27000E+0, +1.01000E+1, +1.10000E+1, +1.19000E+1, +1.29000E+1, +1.40000E+1, +1.52000E+1, +1.65000E+1, +1.80000E+1, +1.95000E+1, +2.12000E+1, +2.30000E+1, +2.49000E+1, +2.71000E+1, +2.94000E+1, +3.19000E+1, +3.46000E+1, +3.75000E+1, +4.07000E+1, +4.42000E+1, +4.79000E+1, +5.20000E+1, +5.64000E+1, +6.11000E+1, +6.63000E+1, +7.19000E+1, +7.79000E+1, +8.45000E+1, +9.15000E+1, +9.92000E+1, +1.08000E+2, +1.17000E+2, +1.26000E+2, +1.37000E+2, +1.48000E+2, +1.61000E+2, +1.74000E+2, +1.89000E+2, +2.04000E+2, +2.21000E+2, +2.40000E+2, +2.60000E+2, +2.81000E+2, +3.04000E+2, +3.30000E+2, +3.57000E+2, +3.86000E+2, +4.18000E+2, +4.53000E+2, +4.90000E+2, +5.30000E+2, +5.74000E+2])*1000. # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = self.Tmin - self.name = "T72" + self.TminPsat = self.Tmin + self.name = "T72" self.description = "Therminol72" - self.reference = "Therminol Heat Transfer Reference Disk" + self.reference = "Therminol2014" self.reshapeAll() - - - + + + class DowthermJ(PureData): - """ + """ Heat transfer fluid Dowtherm J by Dow Chemicals """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -122,17 +122,17 @@ class DowthermJ(PureData): self.specific_heat.data = np.array([+1.58400E+0, +1.59400E+0, +1.61600E+0, +1.63900E+0, +1.66300E+0, +1.68800E+0, +1.71400E+0, +1.74100E+0, +1.76900E+0, +1.79800E+0, +1.82800E+0, +1.85900E+0, +1.89000E+0, +1.92300E+0, +1.95500E+0, +1.98900E+0, +2.02300E+0, +2.05800E+0, +2.09300E+0, +2.12900E+0, +2.16500E+0, +2.20200E+0, +2.23900E+0, +2.27700E+0, +2.31500E+0, +2.35300E+0, +2.39200E+0, +2.39700E+0, +2.43200E+0, +2.47200E+0, +2.51200E+0, +2.55300E+0, +2.59400E+0, +2.63600E+0, +2.68000E+0, +2.72400E+0, +2.76900E+0, +2.81600E+0, +2.86600E+0, +2.91900E+0, +2.97600E+0, +3.04000E+0, +3.11500E+0, +3.20800E+0, +3.26500E+0])*1000. # J/kg-K self.conductivity.data = np.array([+1.48500E-1, +1.47500E-1, +1.45300E-1, +1.43200E-1, +1.41100E-1, +1.39000E-1, +1.36800E-1, +1.34700E-1, +1.32600E-1, +1.30500E-1, +1.28400E-1, +1.26200E-1, +1.24100E-1, +1.22000E-1, +1.19900E-1, +1.17700E-1, +1.15600E-1, +1.13500E-1, +1.11400E-1, +1.09300E-1, +1.07100E-1, +1.05000E-1, +1.02900E-1, +1.00800E-1, +9.87000E-2, +9.65000E-2, +9.44000E-2, +9.41000E-2, +9.23000E-2, +9.02000E-2, +8.80000E-2, +8.59000E-2, +8.38000E-2, +8.17000E-2, +7.96000E-2, +7.74000E-2, +7.53000E-2, +7.32000E-2, +7.11000E-2, +6.90000E-2, +6.68000E-2, +6.47000E-2, +6.26000E-2, +6.05000E-2, +5.94000E-2]) # W/m-K self.viscosity.data = np.array([+8.43000E+0, +7.11000E+0, +5.12000E+0, +3.78000E+0, +2.88000E+0, +2.25000E+0, +1.80000E+0, +1.48000E+0, +1.23000E+0, +1.05000E+0, +9.10000E-1, +7.90000E-1, +7.00000E-1, +6.30000E-1, +5.60000E-1, +5.10000E-1, +4.70000E-1, +4.30000E-1, +4.00000E-1, +3.70000E-1, +3.50000E-1, +3.30000E-1, +3.10000E-1, +2.90000E-1, +2.80000E-1, +2.70000E-1, +2.50000E-1, +2.50000E-1, +2.40000E-1, +2.30000E-1, +2.30000E-1, +2.20000E-1, +2.10000E-1, +2.00000E-1, +2.00000E-1, +1.90000E-1, +1.80000E-1, +1.80000E-1, +1.70000E-1, +1.70000E-1, +1.70000E-1, +1.60000E-1, +1.60000E-1, +1.60000E-1, +1.50000E-1])/1000. # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, +5.00000E-3, +1.00000E-2, +2.00000E-2, +3.00000E-2, +5.00000E-2, +8.00000E-2, +1.10000E-1, +1.60000E-1, +2.30000E-1, +3.20000E-1, +4.30000E-1, +5.80000E-1, +7.60000E-1, +9.80000E-1, +1.01000E+0, +1.25000E+0, +1.58000E+0, +1.97000E+0, +2.43000E+0, +2.96000E+0, +3.59000E+0, +4.30000E+0, +5.13000E+0, +6.06000E+0, +7.12000E+0, +8.31000E+0, +9.64000E+0, +1.11300E+1, +1.27900E+1, +1.46400E+1, +1.66900E+1, +1.78000E+1])*1e5 # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, +5.00000E-3, +1.00000E-2, +2.00000E-2, +3.00000E-2, +5.00000E-2, +8.00000E-2, +1.10000E-1, +1.60000E-1, +2.30000E-1, +3.20000E-1, +4.30000E-1, +5.80000E-1, +7.60000E-1, +9.80000E-1, +1.01000E+0, +1.25000E+0, +1.58000E+0, +1.97000E+0, +2.43000E+0, +2.96000E+0, +3.59000E+0, +4.30000E+0, +5.13000E+0, +6.06000E+0, +7.12000E+0, +8.31000E+0, +9.64000E+0, +1.11300E+1, +1.27900E+1, +1.46400E+1, +1.66900E+1, +1.78000E+1])*1e5 # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 50 + 273.15 - self.name = "DowJ" + self.TminPsat = 50 + 273.15 + self.name = "DowJ" self.description = "DowthermJ" - self.reference = "Dow Chemicals data sheet" + self.reference = "Dow1997" self.reshapeAll() - + class DowthermQ(PureData): - """ + """ Heat transfer fluid Dowtherm Q by Dow Chemicals """ def __init__(self): @@ -141,28 +141,28 @@ class DowthermQ(PureData): self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA self.viscosity.source = self.viscosity.SOURCE_DATA - self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA self.temperature.data = np.array([-3.50000E+1, -3.00000E+1, -2.00000E+1, -1.00000E+1, +0.00000E+0, +1.00000E+1, +2.00000E+1, +3.00000E+1, +4.00000E+1, +5.00000E+1, +6.00000E+1, +7.00000E+1, +8.00000E+1, +9.00000E+1, +1.00000E+2, +1.10000E+2, +1.20000E+2, +1.30000E+2, +1.40000E+2, +1.50000E+2, +1.60000E+2, +1.70000E+2, +1.80000E+2, +1.90000E+2, +2.00000E+2, +2.10000E+2, +2.20000E+2, +2.30000E+2, +2.40000E+2, +2.50000E+2, +2.60000E+2, +2.70000E+2, +2.80000E+2, +2.90000E+2, +3.00000E+2, +3.10000E+2, +3.20000E+2, +3.30000E+2, +3.40000E+2, +3.50000E+2, +3.60000E+2])+273.15 # Kelvin self.density.data = np.array([+1.01140E+3, +1.00320E+3, +9.95600E+2, +9.88000E+2, +9.80500E+2, +9.72900E+2, +9.65400E+2, +9.57800E+2, +9.50200E+2, +9.42700E+2, +9.35100E+2, +9.27600E+2, +9.20000E+2, +9.12400E+2, +9.04900E+2, +8.97300E+2, +8.89800E+2, +8.82200E+2, +8.74600E+2, +8.67100E+2, +8.59500E+2, +8.52000E+2, +8.44400E+2, +8.36800E+2, +8.29300E+2, +8.21700E+2, +8.14200E+2, +8.06600E+2, +7.99000E+2, +7.91500E+2, +7.83900E+2, +7.76400E+2, +7.68800E+2, +7.61200E+2, +7.53700E+2, +7.46100E+2, +7.38600E+2, +7.31000E+2, +7.23400E+2, +7.15900E+2, +7.08300E+2]) # kg/m3 self.specific_heat.data = np.array([+1.47800E+0, +1.49200E+0, +1.52500E+0, +1.55700E+0, +1.58900E+0, +1.62100E+0, +1.65300E+0, +1.68500E+0, +1.71600E+0, +1.74800E+0, +1.77900E+0, +1.81100E+0, +1.84200E+0, +1.87300E+0, +1.90400E+0, +1.93500E+0, +1.96600E+0, +1.99700E+0, +2.02700E+0, +2.05800E+0, +2.08800E+0, +2.11800E+0, +2.14800E+0, +2.17800E+0, +2.20800E+0, +2.23800E+0, +2.26800E+0, +2.29700E+0, +2.32700E+0, +2.35600E+0, +2.38600E+0, +2.41500E+0, +2.44400E+0, +2.47300E+0, +2.50200E+0, +2.53000E+0, +2.55900E+0, +2.58700E+0, +2.61600E+0, +2.64400E+0, +2.67200E+0])*1000. # J/kg-K self.conductivity.data = np.array([+1.28000E-1, +1.27700E-1, +1.26600E-1, +1.25500E-1, +1.24400E-1, +1.23200E-1, +1.22000E-1, +1.20800E-1, +1.19500E-1, +1.18300E-1, +1.17000E-1, +1.15600E-1, +1.14300E-1, +1.12900E-1, +1.11500E-1, +1.10100E-1, +1.08700E-1, +1.07200E-1, +1.05800E-1, +1.04300E-1, +1.02800E-1, +1.01300E-1, +9.98000E-2, +9.82000E-2, +9.67000E-2, +9.52000E-2, +9.36000E-2, +9.21000E-2, +9.05000E-2, +8.89000E-2, +8.74000E-2, +8.58000E-2, +8.43000E-2, +8.27000E-2, +8.11000E-2, +7.96000E-2, +7.80000E-2, +7.65000E-2, +7.49000E-2, +7.34000E-2, +7.19000E-2]) # W/m-K self.viscosity.data = np.array([+4.66000E+1, +2.42000E+1, +1.61000E+1, +1.09000E+1, +7.56000E+0, +5.42000E+0, +4.00000E+0, +3.04000E+0, +2.37000E+0, +1.89000E+0, +1.54000E+0, +1.28000E+0, +1.07000E+0, +9.20000E-1, +8.00000E-1, +7.00000E-1, +6.20000E-1, +5.50000E-1, +5.00000E-1, +4.50000E-1, +4.10000E-1, +3.80000E-1, +3.50000E-1, +3.30000E-1, +3.10000E-1, +2.90000E-1, +2.70000E-1, +2.60000E-1, +2.40000E-1, +2.30000E-1, +2.20000E-1, +2.10000E-1, +2.00000E-1, +1.90000E-1, +1.90000E-1, +1.80000E-1, +1.70000E-1, +1.70000E-1, +1.60000E-1, +1.60000E-1, +1.50000E-1])/1000. # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, +5.00000E-3, +1.00000E-2, +2.00000E-2, +3.00000E-2, +5.00000E-2, +7.00000E-2, +9.00000E-2, +1.30000E-1, +1.70000E-1, +2.30000E-1, +3.10000E-1, +4.00000E-1, +5.10000E-1, +6.40000E-1, +8.10000E-1, +1.00000E+0, +1.24000E+0, +1.51000E+0, +1.82000E+0, +2.19000E+0, +2.61000E+0, +3.09000E+0, +3.64000E+0, +4.25000E+0, +4.95000E+0])*1e5 # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, +5.00000E-3, +1.00000E-2, +2.00000E-2, +3.00000E-2, +5.00000E-2, +7.00000E-2, +9.00000E-2, +1.30000E-1, +1.70000E-1, +2.30000E-1, +3.10000E-1, +4.00000E-1, +5.10000E-1, +6.40000E-1, +8.10000E-1, +1.00000E+0, +1.24000E+0, +1.51000E+0, +1.82000E+0, +2.19000E+0, +2.61000E+0, +3.09000E+0, +3.64000E+0, +4.25000E+0, +4.95000E+0])*1e5 # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 120 + 273.15 - self.name = "DowQ" + self.TminPsat = 120 + 273.15 + self.name = "DowQ" self.description = "DowthermQ" - self.reference = "Dow Chemicals data sheet" + self.reference = "Dow1997" self.reshapeAll() - - + + class Texatherm22(PureData): - """ + """ Heat transfer fluid Texatherm 22 by Texaco """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -173,20 +173,20 @@ class Texatherm22(PureData): self.specific_heat.data = np.array([+1.81000E+0, +1.95000E+0, +1.99000E+0, +2.18000E+0, +2.36000E+0, +2.54000E+0, +2.72000E+0, +2.90000E+0, +3.08000E+0])*1e3 # J/kg-K self.conductivity.data = np.array([+1.35000E-1, +1.32000E-1, +1.32000E-1, +1.28000E-1, +1.25000E-1, +1.21000E-1, +1.17100E-1, +1.13000E-1, +1.10000E-1]) # W/m-K self.viscosity.data = np.array([+4.19760E+2, np.NAN, +2.31688E+1, np.NAN, +2.09601E+0, +1.26072E+0, np.NAN, np.NAN, np.NAN])/1000. # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, +5.3300E-10, +4.00000E-8, +2.67000E-7, +2.27000E-5, +4.67000E-4, +6.67000E-3, +2.13000E-2, +5.33000E-2])*1e5 # Pa + self.saturation_pressure.data = np.array([ np.NAN, +5.3300E-10, +4.00000E-8, +2.67000E-7, +2.27000E-5, +4.67000E-4, +6.67000E-3, +2.13000E-2, +5.33000E-2])*1e5 # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 40 + 273.15 - self.name = "TX22" + self.TminPsat = 40 + 273.15 + self.name = "TX22" self.description = "Texatherm22" - self.reference = "Texaco data sheet" + self.reference = "Chevron2004" self.reshapeAll() - + class SylthermXLT(PureData): - """ + """ Heat transfer fluid Syltherm XLT by Dow Chemicals - """ + """ def __init__(self): PureData.__init__(self) self.density.source = self.density.SOURCE_DATA @@ -200,19 +200,19 @@ class SylthermXLT(PureData): self.viscosity.data = np.array([+7.86100E+1, +5.01300E+1, +3.48600E+1, +2.58300E+1, +2.00400E+1, +1.60800E+1, +1.32200E+1, +1.10500E+1, +9.35600E+0, +7.99400E+0, +6.87900E+0, +5.95600E+0, +5.18400E+0, +4.53500E+0, +3.98600E+0, +3.52100E+0, +3.12600E+0, +2.78800E+0, +2.49900E+0, +2.25000E+0, +2.03500E+0, +1.84900E+0, +1.68700E+0, +1.54500E+0, +1.41900E+0, +1.30900E+0, +1.21000E+0, +1.12200E+0, +1.04300E+0, +9.72000E-1, +9.08000E-1, +8.49000E-1, +7.96000E-1, +7.48000E-1, +7.05000E-1, +6.65000E-1, +6.28000E-1, +5.95000E-1, +5.64000E-1, +5.36000E-1, +5.11000E-1, +4.87000E-1, +4.65000E-1, +4.45000E-1, +4.26000E-1, +4.09000E-1, +3.93000E-1, +3.77000E-1, +3.63000E-1, +3.50000E-1, +3.37000E-1, +3.25000E-1, +3.14000E-1, +3.03000E-1, +2.93000E-1, +2.84000E-1, +2.75000E-1, +2.66000E-1, +2.58000E-1, +2.51000E-1, +2.44000E-1, +2.38000E-1, +2.32000E-1, +2.26000E-1, +2.20000E-1, +2.15000E-1, +2.09000E-1, +2.04000E-1, +1.99000E-1, +1.94000E-1, +1.89000E-1, +1.85000E-1, +1.82000E-1])/1000. # Pa-s self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = self.Tmax - self.name = "XLT" + self.TminPsat = self.Tmax + self.name = "XLT" self.description = "SylthermXLT" - self.reference = "Dow Chemicals data sheet" + self.reference = "Dow1997" self.reshapeAll() - - + + class HC50(PureData): - """ + """ Heat transfer fluid Dynalene HC-50 """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -223,22 +223,22 @@ class HC50(PureData): self.specific_heat.data = np.array([+2.56300E+3,+2.58300E+3,+2.60200E+3,+2.62200E+3,+2.64200E+3,+2.66100E+3,+2.68100E+3,+2.70100E+3,+2.72000E+3,+2.74000E+3,+2.76000E+3,+2.78000E+3,+2.79900E+3,+2.81900E+3,+2.83900E+3,+2.85800E+3,+2.87800E+3,+2.89800E+3,+2.91700E+3,+2.93700E+3,+2.95700E+3,+2.97700E+3,+2.99600E+3,+3.01600E+3,+3.03600E+3,+3.05500E+3,+3.07500E+3]) # J/kg-K self.conductivity.data = np.array([+4.35000E+2,+4.45000E+2,+4.55000E+2,+4.65000E+2,+4.75000E+2,+4.85000E+2,+4.95000E+2,+5.05000E+2,+5.15000E+2,+5.25000E+2,+5.35000E+2,+5.45000E+2,+5.55000E+2,+5.65000E+2,+5.75000E+2,+5.85000E+2,+5.95000E+2,+6.05000E+2,+6.15000E+2,+6.25000E+2,+6.35000E+2,+6.45000E+2,+6.55000E+2,+6.65000E+2,+6.75000E+2,+6.85000E+2,+6.94500E+2])/1e3 # W/m-K self.viscosity.data = np.array([+3.84000E-2,+2.04000E-2,+1.25000E-2,+8.40000E-3,+5.99000E-3,+4.70000E-3,+3.80000E-3,+3.20000E-3,+2.70000E-3,+2.40000E-3,+2.10000E-3,+1.80000E-3,+1.60000E-3,+1.50000E-3,+1.30000E-3,+1.20000E-3,+1.10000E-3,+1.00000E-3,+9.40000E-4,+8.70000E-4,+8.10000E-4,+7.60000E-4,+7.10000E-4,+6.60000E-4,+6.20000E-4,+5.80000E-4,+5.50000E-4]) # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.58579E+3,+1.93053E+3,+3.10264E+3,+5.58475E+3,+9.85950E+3,+1.64785E+4,+2.60622E+4,+3.93691E+4,+5.72954E+4,+8.06687E+4,+1.11695E+5,+1.50995E+5,+2.00637E+5,+2.63380E+5,+3.41290E+5,+4.36438E+5,+5.53649E+5,+6.95681E+5,+8.67360E+5,+1.07282E+6]) # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.58579E+3,+1.93053E+3,+3.10264E+3,+5.58475E+3,+9.85950E+3,+1.64785E+4,+2.60622E+4,+3.93691E+4,+5.72954E+4,+8.06687E+4,+1.11695E+5,+1.50995E+5,+2.00637E+5,+2.63380E+5,+3.41290E+5,+4.36438E+5,+5.53649E+5,+6.95681E+5,+8.67360E+5,+1.07282E+6]) # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 20+273.15 + self.TminPsat = 20+273.15 self.name = "HC50" self.description = "Dynalene "+ self.name - self.reference = "Dynalene data sheet" + self.reference = "Dynalene2014" self.reshapeAll() - + class HC40(PureData): - """ + """ Heat transfer fluid Dynalene HC-40 - """ + """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -249,22 +249,22 @@ class HC40(PureData): self.specific_heat.data = np.array([+2.80000E+3,+2.82000E+3,+2.84000E+3,+2.87000E+3,+2.89000E+3,+2.91000E+3,+2.93000E+3,+2.96000E+3,+2.98000E+3,+3.00000E+3,+3.03000E+3,+3.05000E+3,+3.07000E+3,+3.09000E+3,+3.12000E+3,+3.14000E+3,+3.16000E+3,+3.19000E+3,+3.21000E+3,+3.23000E+3,+3.25000E+3,+3.27000E+3,+3.28000E+3,+3.30000E+3,+3.32000E+3,+3.35000E+3]) # J/kg-K self.conductivity.data = np.array([+4.49000E+2,+4.59000E+2,+4.69000E+2,+4.79000E+2,+4.89000E+2,+4.99000E+2,+5.09000E+2,+5.19000E+2,+5.29000E+2,+5.39000E+2,+5.49000E+2,+5.59000E+2,+5.69000E+2,+5.79000E+2,+5.89000E+2,+5.99000E+2,+6.09000E+2,+6.19000E+2,+6.29000E+2,+6.39000E+2,+6.49000E+2,+6.54000E+2,+6.59000E+2,+6.69000E+2,+6.79000E+2,+6.89000E+2])/1e3 # W/m-K self.viscosity.data = np.array([+1.49000E-2,+9.20000E-3,+6.50000E-3,+4.90000E-3,+3.90000E-3,+3.20000E-3,+2.70000E-3,+2.30000E-3,+1.96000E-3,+1.70000E-3,+1.50000E-3,+1.40000E-3,+1.20000E-3,+1.10000E-3,+9.90000E-4,+9.10000E-4,+8.30000E-4,+7.70000E-4,+7.10000E-4,+6.60000E-4,+6.10000E-4,+5.90000E-4,+5.70000E-4,+5.30000E-4,+5.00000E-4,+4.70000E-4]) # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.51685E+3,+2.20632E+3,+3.79212E+3,+6.68791E+3,+1.15142E+4,+1.87537E+4,+2.92338E+4,+4.37817E+4,+6.35007E+4,+8.96318E+4,+1.23416E+5,+1.66853E+5,+2.22701E+5,+2.92338E+5,+3.79212E+5,+4.85391E+5,+6.16391E+5,+7.74971E+5,+9.65955E+5,+1.19417E+6]) # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.51685E+3,+2.20632E+3,+3.79212E+3,+6.68791E+3,+1.15142E+4,+1.87537E+4,+2.92338E+4,+4.37817E+4,+6.35007E+4,+8.96318E+4,+1.23416E+5,+1.66853E+5,+2.22701E+5,+2.92338E+5,+3.79212E+5,+4.85391E+5,+6.16391E+5,+7.74971E+5,+9.65955E+5,+1.19417E+6]) # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 20+273.15 + self.TminPsat = 20+273.15 self.name = "HC40" self.description = "Dynalene "+ self.name - self.reference = "Dynalene data sheet" + self.reference = "Dynalene2014" self.reshapeAll() - + class HC30(PureData): - """ + """ Heat transfer fluid Dynalene HC-30 - """ + """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -275,22 +275,22 @@ class HC30(PureData): self.specific_heat.data = np.array([+2.96100E+3,+2.98400E+3,+3.00700E+3,+3.03100E+3,+3.05400E+3,+3.07700E+3,+3.10000E+3,+3.12300E+3,+3.14600E+3,+3.16900E+3,+3.19200E+3,+3.21500E+3,+3.23800E+3,+3.26200E+3,+3.28500E+3,+3.30800E+3,+3.33100E+3,+3.35400E+3,+3.37700E+3,+3.40000E+3,+3.42300E+3,+3.44600E+3,+3.46900E+3,+3.49300E+3,+3.51600E+3]) # J/kg-K self.conductivity.data = np.array([+4.69000E+2,+4.79000E+2,+4.89000E+2,+4.99000E+2,+5.09000E+2,+5.19000E+2,+5.29000E+2,+5.39000E+2,+5.49000E+2,+5.59000E+2,+5.69000E+2,+5.79000E+2,+5.89000E+2,+5.99000E+2,+6.09000E+2,+6.19000E+2,+6.29000E+2,+6.39000E+2,+6.49000E+2,+6.59000E+2,+6.69000E+2,+6.79000E+2,+6.89000E+2,+6.99000E+2,+7.09000E+2])/1e3 # W/m-K self.viscosity.data = np.array([+7.00000E-3,+5.50000E-3,+4.50000E-3,+3.70000E-3,+3.00000E-3,+2.50000E-3,+2.20000E-3,+1.90000E-3,+1.60000E-3,+1.40000E-3,+1.30000E-3,+1.10000E-3,+9.90000E-4,+8.90000E-4,+8.00000E-4,+7.30000E-4,+6.70000E-4,+6.10000E-4,+5.70000E-4,+5.20000E-4,+4.80000E-4,+4.50000E-4,+4.20000E-4,+3.90000E-4,+3.70000E-4]) # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.79264E+3,+2.41317E+3,+3.99896E+3,+7.17055E+3,+1.24795E+4,+2.06153E+4,+3.23364E+4,+4.86770E+4,+7.10160E+4,+9.99740E+4,+1.37895E+5,+1.86158E+5,+2.47522E+5,+3.24743E+5,+4.20580E+5,+5.39170E+5,+6.83960E+5,+8.59087E+5,+1.07145E+6,+1.32517E+6]) # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,+1.79264E+3,+2.41317E+3,+3.99896E+3,+7.17055E+3,+1.24795E+4,+2.06153E+4,+3.23364E+4,+4.86770E+4,+7.10160E+4,+9.99740E+4,+1.37895E+5,+1.86158E+5,+2.47522E+5,+3.24743E+5,+4.20580E+5,+5.39170E+5,+6.83960E+5,+8.59087E+5,+1.07145E+6,+1.32517E+6]) # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 20+273.15 + self.TminPsat = 20+273.15 self.name = "HC30" self.description = "Dynalene "+ self.name - self.reference = "Dynalene data sheet" + self.reference = "Dynalene2014" self.reshapeAll() - - + + class HC20(PureData): - """ + """ Heat transfer fluid Dynalene HC-20 - """ + """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -301,22 +301,22 @@ class HC20(PureData): self.specific_heat.data = np.array([+3.11700E+3,+3.14100E+3,+3.16400E+3,+3.18800E+3,+3.21200E+3,+3.23500E+3,+3.25900E+3,+3.28200E+3,+3.30600E+3,+3.33000E+3,+3.35300E+3,+3.37700E+3,+3.40000E+3,+3.42400E+3,+3.44800E+3,+3.47100E+3,+3.49500E+3,+3.51800E+3,+3.54200E+3,+3.56600E+3,+3.58900E+3,+3.61300E+3,+3.63600E+3,+3.66000E+3]) # J/kg-K self.conductivity.data = np.array([+4.83000E+2,+4.93000E+2,+5.03000E+2,+5.13000E+2,+5.23000E+2,+5.33000E+2,+5.43000E+2,+5.53000E+2,+5.63000E+2,+5.73000E+2,+5.83000E+2,+5.93000E+2,+6.03000E+2,+6.13000E+2,+6.23000E+2,+6.33000E+2,+6.43000E+2,+6.53000E+2,+6.63000E+2,+6.73000E+2,+6.83000E+2,+6.93000E+2,+7.03000E+2,+7.13000E+2])/1e3 # W/m-K self.viscosity.data = np.array([+4.50000E-3,+3.60000E-3,+3.00000E-3,+2.50000E-3,+2.10000E-3,+1.80000E-3,+1.60000E-3,+1.40000E-3,+1.20000E-3,+1.10000E-3,+9.50000E-4,+8.50000E-4,+7.70000E-4,+7.00000E-4,+6.30000E-4,+5.80000E-4,+5.40000E-4,+4.90000E-4,+4.60000E-4,+4.30000E-4,+4.00000E-4,+3.70000E-4,+3.50000E-4,+3.30000E-4]) # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN,+2.06843E+3,+2.75790E+3,+4.55054E+3,+7.99792E+3,+1.37206E+4,+2.24769E+4,+3.52322E+4,+5.29517E+4,+7.72213E+4,+1.08937E+5,+1.50306E+5,+2.04085E+5,+2.71653E+5,+3.57148E+5,+4.62638E+5,+5.93639E+5,+7.52907E+5,+9.46650E+5,+1.18038E+6,+1.45962E+6]) # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN,+2.06843E+3,+2.75790E+3,+4.55054E+3,+7.99792E+3,+1.37206E+4,+2.24769E+4,+3.52322E+4,+5.29517E+4,+7.72213E+4,+1.08937E+5,+1.50306E+5,+2.04085E+5,+2.71653E+5,+3.57148E+5,+4.62638E+5,+5.93639E+5,+7.52907E+5,+9.46650E+5,+1.18038E+6,+1.45962E+6]) # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 20+273.15 + self.TminPsat = 20+273.15 self.name = "HC20" self.description = "Dynalene "+ self.name - self.reference = "Dynalene data sheet" + self.reference = "Dynalene2014" self.reshapeAll() - + class HC10(PureData): - """ + """ Heat transfer fluid Dynalene HC-10 - """ + """ def __init__(self): - PureData.__init__(self) + PureData.__init__(self) self.density.source = self.density.SOURCE_DATA self.specific_heat.source = self.specific_heat.SOURCE_DATA self.conductivity.source = self.conductivity.SOURCE_DATA @@ -327,13 +327,238 @@ class HC10(PureData): self.specific_heat.data = np.array([+3.24600E+3,+3.27100E+3,+3.29600E+3,+3.32000E+3,+3.34500E+3,+3.37000E+3,+3.39500E+3,+3.42000E+3,+3.44400E+3,+3.46900E+3,+3.49400E+3,+3.51900E+3,+3.54400E+3,+3.56800E+3,+3.59300E+3,+3.61800E+3,+3.64300E+3,+3.66800E+3,+3.69200E+3,+3.71700E+3,+3.74200E+3,+3.76700E+3,+3.79200E+3,+3.81100E+3]) # J/kg-K self.conductivity.data = np.array([+4.94000E+2,+5.04000E+2,+5.14000E+2,+5.24000E+2,+5.34000E+2,+5.44000E+2,+5.54000E+2,+5.64000E+2,+5.74000E+2,+5.84000E+2,+5.94000E+2,+6.04000E+2,+6.14000E+2,+6.24000E+2,+6.34000E+2,+6.44000E+2,+6.54000E+2,+6.64000E+2,+6.74000E+2,+6.84000E+2,+6.94000E+2,+7.04000E+2,+7.14000E+2,+7.22000E+2])/1e3 # W/m-K self.viscosity.data = np.array([+3.00000E-3,+2.50000E-3,+2.10000E-3,+1.80000E-3,+1.50000E-3,+1.30000E-3,+1.20000E-3,+1.00000E-3,+9.10000E-4,+8.10000E-4,+7.30000E-4,+6.60000E-4,+6.00000E-4,+5.50000E-4,+5.10000E-4,+4.70000E-4,+4.30000E-4,+4.00000E-4,+3.70000E-4,+3.50000E-4,+3.30000E-4,+3.10000E-4,+2.90000E-4,+2.80000E-4]) # Pa-s - self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN,+2.27527E+3,+2.89580E+3,+4.75738E+3,+8.54950E+3,+1.48927E+4,+2.46143E+4,+3.87485E+4,+5.83986E+4,+8.48055E+4,+1.19969E+5,+1.65474E+5,+2.23390E+5,+2.97164E+5,+3.90243E+5,+5.05386E+5,+6.47418E+5,+8.20476E+5,+1.03146E+6,+1.28587E+6,+1.58993E+6,+1.87468E+6]) # Pa + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN,+2.27527E+3,+2.89580E+3,+4.75738E+3,+8.54950E+3,+1.48927E+4,+2.46143E+4,+3.87485E+4,+5.83986E+4,+8.48055E+4,+1.19969E+5,+1.65474E+5,+2.23390E+5,+2.97164E+5,+3.90243E+5,+5.05386E+5,+6.47418E+5,+8.20476E+5,+1.03146E+6,+1.28587E+6,+1.58993E+6,+1.87468E+6]) # Pa self.Tmin = np.min(self.temperature.data) self.Tmax = np.max(self.temperature.data) - self.TminPsat = 20+273.15 + self.TminPsat = 20+273.15 self.name = "HC10" self.description = "Dynalene "+ self.name - self.reference = "Dynalene data sheet" + self.reference = "Dynalene2014" + self.reshapeAll() + + + +## Paratherm, see http://paracalc.paratherm.com +class PCR(PureData): + """ + The Paratherm CR (Patent Pending) heat transfer fluid provides predictable, + repeatable performance in cryogenically-driven processes. Consistent + properties improve productivity, and eliminate runaway coil freeze-ups. + 10-cP viscosity @ -88 C (20-cP @ -96 C) brings higher efficiency at lower + temperatures. Ease of containment and handling allow greater latitude in + system design and component specification, and eliminate contamination and + costly clean-up. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([1.731500E+2,1.741500E+2,1.751500E+2,1.761500E+2,1.771500E+2,1.781500E+2,1.791500E+2,1.801500E+2,1.811500E+2,1.821500E+2,1.831500E+2,1.841500E+2,1.851500E+2,1.861500E+2,1.871500E+2,1.881500E+2,1.891500E+2,1.901500E+2,1.911500E+2,1.921500E+2,1.931500E+2,1.941500E+2,1.951500E+2,1.961500E+2,1.971500E+2,1.981500E+2,1.991500E+2,2.001500E+2,2.011500E+2,2.021500E+2,2.031500E+2,2.041500E+2,2.051500E+2,2.061500E+2,2.071500E+2,2.081500E+2,2.091500E+2,2.101500E+2,2.111500E+2,2.121500E+2,2.131500E+2,2.141500E+2,2.151500E+2,2.161500E+2,2.171500E+2,2.181500E+2,2.191500E+2,2.201500E+2,2.211500E+2,2.221500E+2,2.231500E+2,2.241500E+2,2.251500E+2,2.261500E+2,2.271500E+2,2.281500E+2,2.291500E+2,2.301500E+2,2.311500E+2,2.321500E+2,2.331500E+2,2.341500E+2,2.351500E+2,2.361500E+2,2.371500E+2,2.381500E+2,2.391500E+2,2.401500E+2,2.411500E+2,2.421500E+2,2.431500E+2,2.441500E+2,2.451500E+2,2.461500E+2,2.471500E+2,2.481500E+2,2.491500E+2,2.501500E+2,2.511500E+2,2.521500E+2,2.531500E+2,2.541500E+2,2.551500E+2,2.561500E+2,2.571500E+2,2.581500E+2,2.591500E+2,2.601500E+2,2.611500E+2,2.621500E+2,2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2]) + self.density.data = np.array([9.490000E+2,9.480000E+2,9.470000E+2,9.460000E+2,9.450000E+2,9.440000E+2,9.430000E+2,9.420000E+2,9.410000E+2,9.400000E+2,9.390000E+2,9.380000E+2,9.370000E+2,9.360000E+2,9.350000E+2,9.340000E+2,9.330000E+2,9.320000E+2,9.310000E+2,9.300000E+2,9.290000E+2,9.280000E+2,9.270000E+2,9.260000E+2,9.250000E+2,9.240000E+2,9.230000E+2,9.220000E+2,9.210000E+2,9.200000E+2,9.190000E+2,9.180000E+2,9.170000E+2,9.160000E+2,9.150000E+2,9.140000E+2,9.130000E+2,9.120000E+2,9.110000E+2,9.100000E+2,9.090000E+2,9.080000E+2,9.070000E+2,9.060000E+2,9.050000E+2,9.040000E+2,9.030000E+2,9.020000E+2,9.010000E+2,9.000000E+2,8.990000E+2,8.980000E+2,8.970000E+2,8.960000E+2,8.950000E+2,8.940000E+2,8.930000E+2,8.920000E+2,8.910000E+2,8.900000E+2,8.890000E+2,8.880000E+2,8.870000E+2,8.860000E+2,8.850000E+2,8.830000E+2,8.820000E+2,8.810000E+2,8.800000E+2,8.790000E+2,8.780000E+2,8.770000E+2,8.760000E+2,8.750000E+2,8.740000E+2,8.730000E+2,8.720000E+2,8.710000E+2,8.700000E+2,8.690000E+2,8.680000E+2,8.670000E+2,8.660000E+2,8.650000E+2,8.640000E+2,8.630000E+2,8.620000E+2,8.610000E+2,8.600000E+2,8.590000E+2,8.580000E+2,8.570000E+2,8.560000E+2,8.550000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.510000E+2,8.500000E+2,8.490000E+2,8.480000E+2,8.470000E+2,8.460000E+2,8.450000E+2,8.440000E+2,8.430000E+2,8.420000E+2,8.410000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.350000E+2,8.340000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.300000E+2,8.290000E+2,8.280000E+2,8.270000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.210000E+2,8.200000E+2,8.190000E+2,8.180000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.100000E+2,8.090000E+2,8.080000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.040000E+2,8.030000E+2,8.020000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.980000E+2,7.970000E+2,7.960000E+2,7.950000E+2,7.940000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.880000E+2,7.870000E+2,7.860000E+2,7.850000E+2,7.840000E+2,7.830000E+2,7.820000E+2,7.810000E+2,7.800000E+2,7.790000E+2,7.780000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.740000E+2,7.730000E+2,7.720000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.670000E+2,7.660000E+2,7.650000E+2,7.640000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.580000E+2,7.570000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.490000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.450000E+2,7.440000E+2,7.430000E+2,7.420000E+2,7.410000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.330000E+2,7.320000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.280000E+2,7.270000E+2,7.260000E+2,7.250000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.210000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.170000E+2,7.160000E+2,7.150000E+2,7.140000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.100000E+2,7.090000E+2,7.080000E+2,7.070000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.010000E+2,7.000000E+2,6.990000E+2,6.980000E+2,6.970000E+2,6.960000E+2,6.950000E+2,6.940000E+2,6.930000E+2,6.920000E+2,6.910000E+2,6.900000E+2,6.890000E+2,6.880000E+2,6.870000E+2,6.860000E+2,6.850000E+2,6.840000E+2,6.830000E+2,6.820000E+2,6.810000E+2,6.800000E+2,6.790000E+2,6.780000E+2,6.770000E+2,6.760000E+2,6.750000E+2,6.740000E+2,6.730000E+2,6.720000E+2,6.710000E+2,6.700000E+2,6.690000E+2,6.680000E+2,6.670000E+2,6.660000E+2,6.650000E+2,6.640000E+2,6.630000E+2,6.620000E+2,6.610000E+2,6.600000E+2,6.590000E+2,6.580000E+2,6.570000E+2,6.560000E+2,6.550000E+2,6.540000E+2,6.530000E+2,6.520000E+2,6.510000E+2,6.500000E+2,6.490000E+2,6.480000E+2,6.470000E+2,6.460000E+2,6.450000E+2,6.440000E+2,6.430000E+2,6.420000E+2,6.410000E+2,6.400000E+2,6.390000E+2,6.380000E+2,6.370000E+2,6.360000E+2,6.350000E+2,6.340000E+2,6.330000E+2,6.320000E+2,6.310000E+2,6.300000E+2,6.290000E+2,6.280000E+2,6.270000E+2]) + self.viscosity.data = np.array([3.400000E-5,3.300000E-5,3.100000E-5,3.000000E-5,2.800000E-5,2.700000E-5,2.500000E-5,2.400000E-5,2.300000E-5,2.100000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.500000E-5,1.400000E-5,1.300000E-5,1.200000E-5,1.100000E-5,9.900000E-6,9.100000E-6,8.300000E-6,7.500000E-6,6.800000E-6,6.100000E-6,5.500000E-6,5.000000E-6,4.900000E-6,4.800000E-6,4.600000E-6,4.500000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.800000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.500000E-6,3.400000E-6,3.300000E-6,3.200000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.800000E-6,2.700000E-6,2.700000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.700000E-7,9.600000E-7,9.400000E-7,9.300000E-7,9.100000E-7,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.700000E-7,9.400000E-7,9.200000E-7,9.000000E-7,8.800000E-7,8.600000E-7,8.400000E-7,8.200000E-7,8.000000E-7,7.900000E-7,7.700000E-7,7.500000E-7,7.300000E-7,7.200000E-7,7.000000E-7,6.800000E-7,6.700000E-7,6.500000E-7,6.400000E-7,6.200000E-7,6.100000E-7,5.900000E-7,5.800000E-7,5.700000E-7,5.600000E-7,5.400000E-7,5.300000E-7,5.200000E-7,5.100000E-7,5.000000E-7,4.900000E-7,4.800000E-7,4.700000E-7,4.600000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.900000E-7,3.900000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7]) + self.specific_heat.data = np.array([1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.500000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3]) + self.conductivity.data = np.array([1.500000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.100000E+4,1.200000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.500000E+4,1.600000E+4,1.700000E+4,1.800000E+4,1.800000E+4,1.900000E+4,2.000000E+4,2.100000E+4,2.200000E+4,2.300000E+4,2.300000E+4,2.400000E+4,2.500000E+4,2.600000E+4,2.700000E+4,2.800000E+4,2.900000E+4,3.000000E+4,3.000000E+4,3.100000E+4,3.200000E+4,3.300000E+4,3.400000E+4,3.500000E+4,3.600000E+4,3.700000E+4,3.800000E+4,3.900000E+4,4.000000E+4,4.100000E+4,4.200000E+4,4.300000E+4,4.400000E+4,4.500000E+4,4.600000E+4,4.700000E+4,4.800000E+4,4.900000E+4,5.000000E+4,5.100000E+4,5.200000E+4,5.300000E+4,5.400000E+4,5.500000E+4,5.600000E+4,5.700000E+4,5.800000E+4,5.900000E+4,6.000000E+4,6.100000E+4,6.200000E+4,6.300000E+4,6.400000E+4,6.600000E+4,6.700000E+4,6.800000E+4,6.900000E+4,7.000000E+4,7.100000E+4,7.200000E+4,7.300000E+4,7.500000E+4,7.600000E+4,7.700000E+4,7.800000E+4,7.900000E+4,8.000000E+4,8.200000E+4,8.300000E+4,8.400000E+4,8.500000E+4,8.600000E+4,8.800000E+4,8.900000E+4,9.000000E+4,9.100000E+4,9.200000E+4,9.400000E+4,9.500000E+4,9.600000E+4,9.700000E+4,9.900000E+4,1.000000E+5,1.010000E+5,1.030000E+5,1.040000E+5,1.050000E+5,1.060000E+5,1.080000E+5,1.090000E+5,1.100000E+5,1.120000E+5,1.130000E+5,1.140000E+5,1.160000E+5,1.170000E+5,1.180000E+5,1.200000E+5,1.210000E+5,1.220000E+5,1.240000E+5,1.250000E+5,1.270000E+5,1.280000E+5,1.290000E+5,1.310000E+5,1.320000E+5,1.340000E+5,1.350000E+5,1.370000E+5,1.380000E+5,1.390000E+5,1.410000E+5,1.420000E+5,1.440000E+5,1.450000E+5,1.470000E+5,1.480000E+5,1.500000E+5,1.510000E+5]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PCR" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + + +class PGLT(PureData): + """ + Heat transfer fluid Paratherm GLT The Paratherm GLT heat transfer fluid is + an alkylated-aromatic based heat transfer fluid formulated for closed-loop + liquid-phase heating systems to 550 F using fired heaters and to 575 F in + waste-heat recovery systems. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([2.581500E+2,2.591500E+2,2.601500E+2,2.611500E+2,2.621500E+2,2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2,5.041500E+2,5.051500E+2,5.061500E+2,5.071500E+2,5.081500E+2,5.091500E+2,5.101500E+2,5.111500E+2,5.121500E+2,5.131500E+2,5.141500E+2,5.151500E+2,5.161500E+2,5.171500E+2,5.181500E+2,5.191500E+2,5.201500E+2,5.211500E+2,5.221500E+2,5.231500E+2,5.241500E+2,5.251500E+2,5.261500E+2,5.271500E+2,5.281500E+2,5.291500E+2,5.301500E+2,5.311500E+2,5.321500E+2,5.331500E+2,5.341500E+2,5.351500E+2,5.361500E+2,5.371500E+2,5.381500E+2,5.391500E+2,5.401500E+2,5.411500E+2,5.421500E+2,5.431500E+2,5.441500E+2,5.451500E+2,5.461500E+2,5.471500E+2,5.481500E+2,5.491500E+2,5.501500E+2,5.511500E+2,5.521500E+2,5.531500E+2,5.541500E+2,5.551500E+2,5.561500E+2,5.571500E+2,5.581500E+2,5.591500E+2,5.601500E+2,5.611500E+2,5.621500E+2,5.631500E+2,5.641500E+2,5.651500E+2,5.661500E+2,5.671500E+2,5.681500E+2,5.691500E+2,5.701500E+2,5.711500E+2,5.721500E+2,5.731500E+2,5.741500E+2,5.751500E+2,5.761500E+2,5.771500E+2,5.781500E+2,5.791500E+2,5.801500E+2,5.811500E+2,5.821500E+2,5.831500E+2,5.841500E+2,5.851500E+2,5.861500E+2,5.871500E+2,5.881500E+2]) + self.density.data = np.array([9.020000E+2,9.010000E+2,9.000000E+2,9.000000E+2,8.990000E+2,8.980000E+2,8.970000E+2,8.970000E+2,8.960000E+2,8.950000E+2,8.950000E+2,8.940000E+2,8.930000E+2,8.930000E+2,8.920000E+2,8.910000E+2,8.910000E+2,8.900000E+2,8.890000E+2,8.880000E+2,8.880000E+2,8.870000E+2,8.860000E+2,8.860000E+2,8.850000E+2,8.840000E+2,8.840000E+2,8.830000E+2,8.820000E+2,8.810000E+2,8.810000E+2,8.800000E+2,8.790000E+2,8.790000E+2,8.780000E+2,8.770000E+2,8.770000E+2,8.760000E+2,8.750000E+2,8.740000E+2,8.740000E+2,8.730000E+2,8.720000E+2,8.720000E+2,8.710000E+2,8.700000E+2,8.700000E+2,8.690000E+2,8.680000E+2,8.680000E+2,8.670000E+2,8.660000E+2,8.650000E+2,8.650000E+2,8.640000E+2,8.630000E+2,8.630000E+2,8.620000E+2,8.610000E+2,8.610000E+2,8.600000E+2,8.590000E+2,8.580000E+2,8.580000E+2,8.570000E+2,8.560000E+2,8.560000E+2,8.550000E+2,8.540000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.510000E+2,8.510000E+2,8.500000E+2,8.490000E+2,8.490000E+2,8.480000E+2,8.470000E+2,8.470000E+2,8.460000E+2,8.450000E+2,8.440000E+2,8.440000E+2,8.430000E+2,8.420000E+2,8.420000E+2,8.410000E+2,8.400000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.350000E+2,8.350000E+2,8.340000E+2,8.330000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.310000E+2,8.300000E+2,8.290000E+2,8.280000E+2,8.280000E+2,8.270000E+2,8.260000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.210000E+2,8.210000E+2,8.200000E+2,8.190000E+2,8.190000E+2,8.180000E+2,8.170000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.120000E+2,8.120000E+2,8.110000E+2,8.100000E+2,8.100000E+2,8.090000E+2,8.080000E+2,8.080000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.050000E+2,8.040000E+2,8.030000E+2,8.030000E+2,8.020000E+2,8.010000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.980000E+2,7.980000E+2,7.970000E+2,7.960000E+2,7.960000E+2,7.950000E+2,7.940000E+2,7.940000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.890000E+2,7.880000E+2,7.870000E+2,7.870000E+2,7.860000E+2,7.850000E+2,7.850000E+2,7.840000E+2,7.830000E+2,7.820000E+2,7.820000E+2,7.810000E+2,7.800000E+2,7.800000E+2,7.790000E+2,7.780000E+2,7.780000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.750000E+2,7.740000E+2,7.730000E+2,7.730000E+2,7.720000E+2,7.710000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.680000E+2,7.670000E+2,7.660000E+2,7.660000E+2,7.650000E+2,7.640000E+2,7.640000E+2,7.630000E+2,7.620000E+2,7.620000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.590000E+2,7.580000E+2,7.570000E+2,7.570000E+2,7.560000E+2,7.550000E+2,7.550000E+2,7.540000E+2,7.530000E+2,7.520000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.500000E+2,7.490000E+2,7.480000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.450000E+2,7.450000E+2,7.440000E+2,7.430000E+2,7.430000E+2,7.420000E+2,7.410000E+2,7.410000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.340000E+2,7.330000E+2,7.320000E+2,7.320000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.290000E+2,7.280000E+2,7.270000E+2,7.270000E+2,7.260000E+2,7.250000E+2,7.250000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.220000E+2,7.210000E+2,7.200000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.180000E+2,7.170000E+2,7.160000E+2,7.150000E+2,7.150000E+2,7.140000E+2,7.130000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.110000E+2,7.100000E+2,7.090000E+2,7.090000E+2,7.080000E+2,7.070000E+2,7.060000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.020000E+2,7.010000E+2,7.000000E+2,6.990000E+2,6.990000E+2,6.980000E+2,6.970000E+2,6.970000E+2,6.960000E+2,6.950000E+2,6.950000E+2,6.940000E+2,6.930000E+2,6.920000E+2,6.920000E+2,6.910000E+2,6.900000E+2,6.900000E+2,6.890000E+2,6.880000E+2,6.880000E+2,6.870000E+2,6.860000E+2,6.850000E+2,6.850000E+2,6.840000E+2,6.830000E+2,6.830000E+2,6.820000E+2,6.810000E+2,6.810000E+2,6.800000E+2,6.790000E+2,6.790000E+2,6.780000E+2,6.770000E+2,6.760000E+2,6.760000E+2,6.750000E+2,6.740000E+2,6.740000E+2,6.730000E+2,6.720000E+2,6.720000E+2]) + self.viscosity.data = np.array([5.620000E-4,5.120000E-4,4.660000E-4,4.240000E-4,3.860000E-4,3.500000E-4,3.180000E-4,2.890000E-4,2.620000E-4,2.380000E-4,2.170000E-4,1.980000E-4,1.810000E-4,1.660000E-4,1.530000E-4,1.380000E-4,1.300000E-4,1.230000E-4,1.160000E-4,1.090000E-4,1.020000E-4,9.600000E-5,9.100000E-5,8.500000E-5,8.000000E-5,7.600000E-5,7.100000E-5,6.700000E-5,6.300000E-5,5.900000E-5,5.600000E-5,5.300000E-5,5.000000E-5,4.700000E-5,4.400000E-5,4.200000E-5,4.000000E-5,3.800000E-5,3.600000E-5,3.400000E-5,3.200000E-5,3.100000E-5,2.900000E-5,2.800000E-5,2.700000E-5,2.500000E-5,2.400000E-5,2.300000E-5,2.200000E-5,2.100000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.600000E-5,1.500000E-5,1.500000E-5,1.400000E-5,1.300000E-5,1.300000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.100000E-5,1.000000E-5,9.900000E-6,9.600000E-6,9.200000E-6,8.900000E-6,8.600000E-6,8.300000E-6,8.100000E-6,7.800000E-6,7.600000E-6,7.300000E-6,7.100000E-6,6.900000E-6,6.700000E-6,6.500000E-6,6.300000E-6,6.100000E-6,5.900000E-6,5.800000E-6,5.600000E-6,5.400000E-6,5.300000E-6,5.200000E-6,5.000000E-6,4.900000E-6,4.800000E-6,4.700000E-6,4.600000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.900000E-6,3.800000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.500000E-6,3.400000E-6,3.400000E-6,3.300000E-6,3.200000E-6,3.200000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.700000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.800000E-7,9.700000E-7,9.600000E-7,9.500000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.100000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.700000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.300000E-7,8.300000E-7,8.200000E-7,8.100000E-7,8.000000E-7,7.900000E-7,7.800000E-7,7.800000E-7,7.700000E-7,7.600000E-7,7.500000E-7,7.500000E-7,7.400000E-7,7.300000E-7,7.200000E-7,7.200000E-7,7.100000E-7,7.000000E-7,7.000000E-7,6.900000E-7,6.800000E-7,6.800000E-7,6.700000E-7,6.600000E-7,6.600000E-7,6.500000E-7,6.500000E-7,6.400000E-7,6.300000E-7,6.300000E-7,6.200000E-7,6.200000E-7,6.100000E-7,6.100000E-7,6.000000E-7,6.000000E-7,5.900000E-7,5.800000E-7,5.800000E-7,5.700000E-7,5.700000E-7,5.600000E-7,5.600000E-7,5.600000E-7,5.500000E-7,5.500000E-7,5.400000E-7,5.400000E-7,5.300000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.100000E-7,5.100000E-7,5.000000E-7,5.000000E-7,4.900000E-7,4.900000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.700000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.300000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.100000E-7,4.100000E-7,4.000000E-7,4.000000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,3.000000E-7]) + self.specific_heat.data = np.array([1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3]) + self.conductivity.data = np.array([1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.400000E+4,1.500000E+4,1.500000E+4,1.500000E+4,1.600000E+4,1.600000E+4,1.700000E+4,1.700000E+4,1.700000E+4,1.800000E+4,1.800000E+4,1.900000E+4,1.900000E+4,1.900000E+4,2.000000E+4,2.000000E+4,2.100000E+4,2.100000E+4,2.200000E+4,2.200000E+4,2.300000E+4,2.300000E+4,2.400000E+4,2.400000E+4,2.500000E+4,2.500000E+4,2.600000E+4,2.700000E+4,2.700000E+4,2.800000E+4,2.800000E+4,2.900000E+4,3.000000E+4,3.000000E+4,3.100000E+4,3.100000E+4,3.200000E+4,3.300000E+4,3.300000E+4,3.400000E+4,3.500000E+4,3.600000E+4,3.600000E+4,3.700000E+4,3.800000E+4,3.900000E+4,3.900000E+4,4.000000E+4,4.100000E+4,4.200000E+4,4.300000E+4,4.400000E+4]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PGLT" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + +class PHE(PureData): + """ + The Paratherm HE high flash and fire point heat transfer fluid is rated for + an optimal service range of 150 F to 600 F (66 C to 316 C). Engineered for + higher thermal and oxidative stability, it is efficient and cost effective. + Its greater purity allows it to strongly resist degradation while holding + thermal properties and maintaining efficiency. This provides for low + maintenance and solid performance over an extended operating life. + Non-toxic, the HE fluid is safe to use and easy to dispose. It can be + safely combined with spent lubricating oils and recycled locally. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2,5.041500E+2,5.051500E+2,5.061500E+2,5.071500E+2,5.081500E+2,5.091500E+2,5.101500E+2,5.111500E+2,5.121500E+2,5.131500E+2,5.141500E+2,5.151500E+2,5.161500E+2,5.171500E+2,5.181500E+2,5.191500E+2,5.201500E+2,5.211500E+2,5.221500E+2,5.231500E+2,5.241500E+2,5.251500E+2,5.261500E+2,5.271500E+2,5.281500E+2,5.291500E+2,5.301500E+2,5.311500E+2,5.321500E+2,5.331500E+2,5.341500E+2,5.351500E+2,5.361500E+2,5.371500E+2,5.381500E+2,5.391500E+2,5.401500E+2,5.411500E+2,5.421500E+2,5.431500E+2,5.441500E+2,5.451500E+2,5.461500E+2,5.471500E+2,5.481500E+2,5.491500E+2,5.501500E+2,5.511500E+2,5.521500E+2,5.531500E+2,5.541500E+2,5.551500E+2,5.561500E+2,5.571500E+2,5.581500E+2,5.591500E+2,5.601500E+2,5.611500E+2,5.621500E+2,5.631500E+2,5.641500E+2,5.651500E+2,5.661500E+2,5.671500E+2,5.681500E+2,5.691500E+2,5.701500E+2,5.711500E+2,5.721500E+2,5.731500E+2,5.741500E+2,5.751500E+2,5.761500E+2,5.771500E+2,5.781500E+2,5.791500E+2,5.801500E+2,5.811500E+2,5.821500E+2,5.831500E+2,5.841500E+2,5.851500E+2,5.861500E+2,5.871500E+2,5.881500E+2,5.891500E+2,5.901500E+2,5.911500E+2,5.921500E+2,5.931500E+2,5.941500E+2,5.951500E+2,5.961500E+2,5.971500E+2,5.981500E+2,5.991500E+2,6.001500E+2,6.011500E+2,6.021500E+2,6.031500E+2]) + self.density.data = np.array([8.750000E+2,8.750000E+2,8.740000E+2,8.740000E+2,8.730000E+2,8.720000E+2,8.720000E+2,8.710000E+2,8.700000E+2,8.700000E+2,8.690000E+2,8.680000E+2,8.680000E+2,8.670000E+2,8.660000E+2,8.660000E+2,8.650000E+2,8.650000E+2,8.640000E+2,8.630000E+2,8.630000E+2,8.620000E+2,8.610000E+2,8.610000E+2,8.600000E+2,8.590000E+2,8.590000E+2,8.580000E+2,8.580000E+2,8.570000E+2,8.560000E+2,8.560000E+2,8.550000E+2,8.540000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.520000E+2,8.510000E+2,8.500000E+2,8.500000E+2,8.490000E+2,8.490000E+2,8.480000E+2,8.470000E+2,8.470000E+2,8.460000E+2,8.450000E+2,8.450000E+2,8.440000E+2,8.430000E+2,8.430000E+2,8.420000E+2,8.420000E+2,8.410000E+2,8.400000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.360000E+2,8.350000E+2,8.340000E+2,8.340000E+2,8.330000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.310000E+2,8.300000E+2,8.290000E+2,8.290000E+2,8.280000E+2,8.270000E+2,8.270000E+2,8.260000E+2,8.250000E+2,8.250000E+2,8.240000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.220000E+2,8.210000E+2,8.200000E+2,8.200000E+2,8.190000E+2,8.180000E+2,8.180000E+2,8.170000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.110000E+2,8.100000E+2,8.090000E+2,8.090000E+2,8.080000E+2,8.080000E+2,8.070000E+2,8.060000E+2,8.060000E+2,8.050000E+2,8.040000E+2,8.040000E+2,8.030000E+2,8.020000E+2,8.020000E+2,8.010000E+2,8.000000E+2,8.000000E+2,7.990000E+2,7.990000E+2,7.980000E+2,7.970000E+2,7.970000E+2,7.960000E+2,7.950000E+2,7.950000E+2,7.940000E+2,7.930000E+2,7.930000E+2,7.920000E+2,7.920000E+2,7.910000E+2,7.900000E+2,7.900000E+2,7.890000E+2,7.880000E+2,7.880000E+2,7.870000E+2,7.860000E+2,7.860000E+2,7.850000E+2,7.840000E+2,7.840000E+2,7.830000E+2,7.830000E+2,7.820000E+2,7.810000E+2,7.810000E+2,7.800000E+2,7.790000E+2,7.790000E+2,7.780000E+2,7.770000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.750000E+2,7.740000E+2,7.740000E+2,7.730000E+2,7.720000E+2,7.720000E+2,7.710000E+2,7.700000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.680000E+2,7.670000E+2,7.670000E+2,7.660000E+2,7.650000E+2,7.650000E+2,7.640000E+2,7.630000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.590000E+2,7.580000E+2,7.580000E+2,7.570000E+2,7.560000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.540000E+2,7.530000E+2,7.520000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.500000E+2,7.490000E+2,7.490000E+2,7.480000E+2,7.470000E+2,7.470000E+2,7.460000E+2,7.450000E+2,7.450000E+2,7.440000E+2,7.430000E+2,7.430000E+2,7.420000E+2,7.420000E+2,7.410000E+2,7.400000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.340000E+2,7.330000E+2,7.330000E+2,7.320000E+2,7.310000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.290000E+2,7.280000E+2,7.270000E+2,7.270000E+2,7.260000E+2,7.250000E+2,7.250000E+2,7.240000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.220000E+2,7.210000E+2,7.200000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.180000E+2,7.170000E+2,7.170000E+2,7.160000E+2,7.150000E+2,7.150000E+2,7.140000E+2,7.130000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.110000E+2,7.100000E+2,7.090000E+2,7.090000E+2,7.080000E+2,7.080000E+2,7.070000E+2,7.060000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.020000E+2,7.010000E+2,7.010000E+2,7.000000E+2,6.990000E+2,6.990000E+2,6.980000E+2,6.970000E+2,6.970000E+2,6.960000E+2,6.950000E+2,6.950000E+2,6.940000E+2,6.930000E+2,6.930000E+2,6.920000E+2,6.920000E+2,6.910000E+2,6.900000E+2,6.900000E+2,6.890000E+2,6.880000E+2,6.880000E+2,6.870000E+2,6.860000E+2,6.860000E+2,6.850000E+2,6.840000E+2,6.840000E+2,6.830000E+2,6.830000E+2,6.820000E+2,6.810000E+2,6.810000E+2,6.800000E+2,6.790000E+2,6.790000E+2,6.780000E+2,6.770000E+2,6.770000E+2,6.760000E+2,6.760000E+2,6.750000E+2,6.740000E+2,6.740000E+2,6.730000E+2,6.720000E+2,6.720000E+2,6.710000E+2,6.700000E+2,6.700000E+2,6.690000E+2,6.680000E+2,6.680000E+2,6.670000E+2,6.670000E+2,6.660000E+2,6.650000E+2,6.650000E+2,6.640000E+2]) + self.viscosity.data = np.array([4.070000E-4,3.770000E-4,3.490000E-4,3.230000E-4,2.990000E-4,2.760000E-4,2.560000E-4,2.370000E-4,2.190000E-4,2.030000E-4,1.880000E-4,1.740000E-4,1.610000E-4,1.490000E-4,1.380000E-4,1.270000E-4,1.180000E-4,1.140000E-4,1.050000E-4,9.700000E-5,9.000000E-5,8.400000E-5,7.800000E-5,7.400000E-5,6.900000E-5,6.500000E-5,6.200000E-5,5.800000E-5,5.500000E-5,5.300000E-5,5.000000E-5,4.800000E-5,4.600000E-5,4.400000E-5,4.200000E-5,4.000000E-5,3.800000E-5,3.700000E-5,3.500000E-5,3.400000E-5,3.300000E-5,3.200000E-5,3.100000E-5,3.000000E-5,2.900000E-5,2.800000E-5,2.700000E-5,2.600000E-5,2.500000E-5,2.400000E-5,2.300000E-5,2.200000E-5,2.100000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.600000E-5,1.500000E-5,1.500000E-5,1.400000E-5,1.400000E-5,1.300000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.100000E-5,1.000000E-5,1.000000E-5,9.800000E-6,9.500000E-6,9.300000E-6,9.000000E-6,8.800000E-6,8.500000E-6,8.300000E-6,8.100000E-6,7.900000E-6,7.700000E-6,7.500000E-6,7.300000E-6,7.100000E-6,6.900000E-6,6.800000E-6,6.600000E-6,6.500000E-6,6.300000E-6,6.200000E-6,6.000000E-6,5.900000E-6,5.800000E-6,5.600000E-6,5.500000E-6,5.400000E-6,5.300000E-6,5.200000E-6,5.100000E-6,5.000000E-6,4.900000E-6,4.800000E-6,4.700000E-6,4.600000E-6,4.500000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.100000E-6,4.000000E-6,3.900000E-6,3.800000E-6,3.800000E-6,3.600000E-6,3.500000E-6,3.500000E-6,3.400000E-6,3.300000E-6,3.300000E-6,3.200000E-6,3.200000E-6,3.100000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.700000E-6,2.600000E-6,2.600000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.800000E-7,9.700000E-7,9.600000E-7,9.600000E-7,9.500000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.100000E-7,9.100000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.700000E-7,8.700000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.400000E-7,8.300000E-7,8.200000E-7,8.200000E-7,8.100000E-7,8.000000E-7,8.000000E-7,7.900000E-7,7.800000E-7,7.800000E-7,7.700000E-7,7.600000E-7,7.600000E-7,7.500000E-7,7.500000E-7,7.400000E-7,7.300000E-7,7.300000E-7,7.200000E-7,7.200000E-7,7.100000E-7,7.100000E-7,7.000000E-7,6.900000E-7,6.900000E-7,6.800000E-7,6.800000E-7,6.700000E-7,6.700000E-7,6.600000E-7,6.600000E-7,6.500000E-7,6.500000E-7,6.400000E-7,6.400000E-7,6.300000E-7,6.300000E-7,6.200000E-7,6.200000E-7,6.200000E-7,6.100000E-7,6.100000E-7,6.000000E-7,6.000000E-7,5.900000E-7,5.900000E-7,5.900000E-7,5.800000E-7,5.800000E-7,5.700000E-7,5.700000E-7,5.700000E-7,5.600000E-7,5.600000E-7,5.500000E-7,5.500000E-7,5.500000E-7,5.400000E-7,5.400000E-7,5.300000E-7,5.300000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.100000E-7,5.100000E-7,5.000000E-7,5.000000E-7,5.000000E-7,4.900000E-7,4.900000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.700000E-7,4.700000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.400000E-7,4.300000E-7]) + self.specific_heat.data = np.array([1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3]) + self.conductivity.data = np.array([1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.100000E+4]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PHE" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + +class PHR(PureData): + """ + The Paratherm HR Heat Transfer Fluid is an alkylated-aromatic based heat + transfer fluid formulated for closed loop liquid phase heating to 650 F in + fired heaters and 675 F in waste heat recovery and full convection heaters. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([2.581500E+2,2.591500E+2,2.601500E+2,2.611500E+2,2.621500E+2,2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2,5.041500E+2,5.051500E+2,5.061500E+2,5.071500E+2,5.081500E+2,5.091500E+2,5.101500E+2,5.111500E+2,5.121500E+2,5.131500E+2,5.141500E+2,5.151500E+2,5.161500E+2,5.171500E+2,5.181500E+2,5.191500E+2,5.201500E+2,5.211500E+2,5.221500E+2,5.231500E+2,5.241500E+2,5.251500E+2,5.261500E+2,5.271500E+2,5.281500E+2,5.291500E+2,5.301500E+2,5.311500E+2,5.321500E+2,5.331500E+2,5.341500E+2,5.351500E+2,5.361500E+2,5.371500E+2,5.381500E+2,5.391500E+2,5.401500E+2,5.411500E+2,5.421500E+2,5.431500E+2,5.441500E+2,5.451500E+2,5.461500E+2,5.471500E+2,5.481500E+2,5.491500E+2,5.501500E+2,5.511500E+2,5.521500E+2,5.531500E+2,5.541500E+2,5.551500E+2,5.561500E+2,5.571500E+2,5.581500E+2,5.591500E+2,5.601500E+2,5.611500E+2,5.621500E+2,5.631500E+2,5.641500E+2,5.651500E+2,5.661500E+2,5.671500E+2,5.681500E+2,5.691500E+2,5.701500E+2,5.711500E+2,5.721500E+2,5.731500E+2,5.741500E+2,5.751500E+2,5.761500E+2,5.771500E+2,5.781500E+2,5.791500E+2,5.801500E+2,5.811500E+2,5.821500E+2,5.831500E+2,5.841500E+2,5.851500E+2,5.861500E+2,5.871500E+2,5.881500E+2,5.891500E+2,5.901500E+2,5.911500E+2,5.921500E+2,5.931500E+2,5.941500E+2,5.951500E+2,5.961500E+2,5.971500E+2,5.981500E+2,5.991500E+2,6.001500E+2,6.011500E+2,6.021500E+2,6.031500E+2,6.041500E+2,6.051500E+2,6.061500E+2,6.071500E+2,6.081500E+2,6.091500E+2,6.101500E+2,6.111500E+2,6.121500E+2,6.131500E+2,6.141500E+2,6.151500E+2,6.161500E+2,6.171500E+2,6.181500E+2,6.191500E+2,6.201500E+2,6.211500E+2,6.221500E+2,6.231500E+2,6.241500E+2,6.251500E+2,6.261500E+2,6.271500E+2,6.281500E+2,6.291500E+2,6.301500E+2,6.311500E+2,6.321500E+2,6.331500E+2,6.341500E+2,6.351500E+2,6.361500E+2,6.371500E+2,6.381500E+2,6.391500E+2,6.401500E+2,6.411500E+2,6.421500E+2,6.431500E+2]) + self.density.data = np.array([9.870000E+2,9.860000E+2,9.850000E+2,9.850000E+2,9.840000E+2,9.830000E+2,9.820000E+2,9.810000E+2,9.810000E+2,9.800000E+2,9.790000E+2,9.780000E+2,9.780000E+2,9.770000E+2,9.760000E+2,9.750000E+2,9.750000E+2,9.740000E+2,9.730000E+2,9.720000E+2,9.710000E+2,9.710000E+2,9.700000E+2,9.690000E+2,9.680000E+2,9.680000E+2,9.670000E+2,9.660000E+2,9.650000E+2,9.650000E+2,9.640000E+2,9.630000E+2,9.620000E+2,9.610000E+2,9.610000E+2,9.600000E+2,9.590000E+2,9.580000E+2,9.580000E+2,9.570000E+2,9.560000E+2,9.550000E+2,9.550000E+2,9.540000E+2,9.530000E+2,9.520000E+2,9.510000E+2,9.510000E+2,9.500000E+2,9.490000E+2,9.480000E+2,9.480000E+2,9.470000E+2,9.460000E+2,9.450000E+2,9.450000E+2,9.440000E+2,9.430000E+2,9.420000E+2,9.410000E+2,9.410000E+2,9.400000E+2,9.390000E+2,9.380000E+2,9.380000E+2,9.370000E+2,9.360000E+2,9.350000E+2,9.350000E+2,9.340000E+2,9.330000E+2,9.320000E+2,9.310000E+2,9.310000E+2,9.300000E+2,9.290000E+2,9.280000E+2,9.280000E+2,9.270000E+2,9.260000E+2,9.250000E+2,9.250000E+2,9.240000E+2,9.230000E+2,9.220000E+2,9.210000E+2,9.210000E+2,9.200000E+2,9.190000E+2,9.180000E+2,9.180000E+2,9.170000E+2,9.160000E+2,9.150000E+2,9.150000E+2,9.140000E+2,9.130000E+2,9.120000E+2,9.110000E+2,9.110000E+2,9.100000E+2,9.090000E+2,9.080000E+2,9.080000E+2,9.070000E+2,9.060000E+2,9.050000E+2,9.050000E+2,9.040000E+2,9.030000E+2,9.020000E+2,9.010000E+2,9.010000E+2,9.000000E+2,8.990000E+2,8.980000E+2,8.980000E+2,8.970000E+2,8.960000E+2,8.950000E+2,8.950000E+2,8.940000E+2,8.930000E+2,8.920000E+2,8.910000E+2,8.910000E+2,8.900000E+2,8.890000E+2,8.880000E+2,8.880000E+2,8.870000E+2,8.860000E+2,8.850000E+2,8.850000E+2,8.840000E+2,8.830000E+2,8.820000E+2,8.810000E+2,8.810000E+2,8.800000E+2,8.790000E+2,8.780000E+2,8.780000E+2,8.770000E+2,8.760000E+2,8.750000E+2,8.750000E+2,8.740000E+2,8.730000E+2,8.720000E+2,8.710000E+2,8.710000E+2,8.700000E+2,8.690000E+2,8.680000E+2,8.680000E+2,8.670000E+2,8.660000E+2,8.650000E+2,8.650000E+2,8.640000E+2,8.630000E+2,8.620000E+2,8.610000E+2,8.610000E+2,8.600000E+2,8.590000E+2,8.580000E+2,8.580000E+2,8.570000E+2,8.560000E+2,8.550000E+2,8.540000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.510000E+2,8.510000E+2,8.500000E+2,8.490000E+2,8.480000E+2,8.480000E+2,8.470000E+2,8.460000E+2,8.450000E+2,8.440000E+2,8.440000E+2,8.430000E+2,8.420000E+2,8.410000E+2,8.410000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.350000E+2,8.340000E+2,8.340000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.310000E+2,8.300000E+2,8.290000E+2,8.280000E+2,8.280000E+2,8.270000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.210000E+2,8.210000E+2,8.200000E+2,8.190000E+2,8.180000E+2,8.180000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.140000E+2,8.140000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.110000E+2,8.100000E+2,8.090000E+2,8.080000E+2,8.080000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.040000E+2,8.040000E+2,8.030000E+2,8.020000E+2,8.010000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.980000E+2,7.980000E+2,7.970000E+2,7.960000E+2,7.950000E+2,7.940000E+2,7.940000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.880000E+2,7.880000E+2,7.870000E+2,7.860000E+2,7.850000E+2,7.840000E+2,7.840000E+2,7.830000E+2,7.820000E+2,7.810000E+2,7.810000E+2,7.800000E+2,7.790000E+2,7.780000E+2,7.780000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.740000E+2,7.740000E+2,7.730000E+2,7.720000E+2,7.710000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.680000E+2,7.670000E+2,7.660000E+2,7.650000E+2,7.640000E+2,7.640000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.580000E+2,7.580000E+2,7.570000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.540000E+2,7.530000E+2,7.520000E+2,7.510000E+2,7.510000E+2,7.500000E+2,7.490000E+2,7.480000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.450000E+2,7.440000E+2,7.440000E+2,7.430000E+2,7.420000E+2,7.410000E+2,7.410000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.340000E+2,7.330000E+2,7.320000E+2,7.310000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.280000E+2,7.280000E+2,7.270000E+2,7.260000E+2,7.250000E+2,7.240000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.210000E+2,7.210000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.180000E+2,7.170000E+2,7.160000E+2,7.150000E+2,7.140000E+2,7.140000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.110000E+2,7.100000E+2,7.090000E+2,7.080000E+2,7.080000E+2,7.070000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.010000E+2,7.010000E+2,7.000000E+2,6.990000E+2,6.980000E+2,6.980000E+2,6.970000E+2,6.960000E+2,6.950000E+2,6.940000E+2,6.940000E+2,6.930000E+2,6.920000E+2,6.910000E+2,6.910000E+2]) + self.viscosity.data = np.array([4.180000E-4,3.800000E-4,3.440000E-4,3.120000E-4,2.810000E-4,2.530000E-4,2.280000E-4,2.040000E-4,1.830000E-4,1.640000E-4,1.470000E-4,1.320000E-4,1.180000E-4,1.060000E-4,9.600000E-5,8.600000E-5,7.900000E-5,7.500000E-5,7.100000E-5,6.800000E-5,6.500000E-5,6.200000E-5,5.900000E-5,5.600000E-5,5.300000E-5,5.000000E-5,4.700000E-5,4.500000E-5,4.200000E-5,4.000000E-5,3.800000E-5,3.500000E-5,3.300000E-5,3.100000E-5,2.900000E-5,2.800000E-5,2.600000E-5,2.400000E-5,2.300000E-5,2.100000E-5,2.000000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.600000E-5,1.500000E-5,1.400000E-5,1.400000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.000000E-5,9.900000E-6,9.500000E-6,9.200000E-6,8.800000E-6,8.500000E-6,8.300000E-6,8.000000E-6,7.800000E-6,7.600000E-6,7.300000E-6,7.100000E-6,6.800000E-6,6.600000E-6,6.400000E-6,6.200000E-6,6.000000E-6,5.800000E-6,5.700000E-6,5.500000E-6,5.300000E-6,5.200000E-6,5.000000E-6,4.900000E-6,4.800000E-6,4.600000E-6,4.500000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.900000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.500000E-6,3.500000E-6,3.400000E-6,3.300000E-6,3.200000E-6,3.200000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.700000E-6,2.600000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.800000E-7,9.700000E-7,9.600000E-7,9.500000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.100000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.800000E-7,8.700000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.300000E-7,8.200000E-7,8.200000E-7,8.100000E-7,8.000000E-7,7.900000E-7,7.900000E-7,7.800000E-7,7.700000E-7,7.600000E-7,7.600000E-7,7.500000E-7,7.400000E-7,7.400000E-7,7.300000E-7,7.200000E-7,7.200000E-7,7.100000E-7,7.000000E-7,7.000000E-7,6.900000E-7,6.800000E-7,6.800000E-7,6.700000E-7,6.700000E-7,6.600000E-7,6.600000E-7,6.500000E-7,6.400000E-7,6.400000E-7,6.300000E-7,6.300000E-7,6.200000E-7,6.200000E-7,6.100000E-7,6.100000E-7,6.000000E-7,6.000000E-7,5.900000E-7,5.900000E-7,5.800000E-7,5.800000E-7,5.700000E-7,5.700000E-7,5.600000E-7,5.600000E-7,5.600000E-7,5.500000E-7,5.500000E-7,5.400000E-7,5.400000E-7,5.300000E-7,5.300000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.100000E-7,5.100000E-7,5.000000E-7,5.000000E-7,5.000000E-7,4.900000E-7,4.900000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.700000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.300000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.100000E-7,4.100000E-7,4.100000E-7,4.000000E-7,4.000000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7]) + self.specific_heat.data = np.array([1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3]) + self.conductivity.data = np.array([1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,8.900000E-2,8.900000E-2,8.900000E-2,8.900000E-2,8.900000E-2,8.900000E-2,8.800000E-2,8.800000E-2,8.800000E-2,8.800000E-2,8.800000E-2,8.800000E-2,8.700000E-2,8.700000E-2,8.700000E-2,8.700000E-2,8.700000E-2,8.700000E-2,8.700000E-2,8.600000E-2,8.600000E-2,8.600000E-2,8.600000E-2,8.600000E-2,8.600000E-2,8.500000E-2,8.500000E-2,8.500000E-2,8.500000E-2,8.500000E-2,8.500000E-2,8.400000E-2,8.400000E-2,8.400000E-2,8.400000E-2,8.400000E-2,8.400000E-2,8.300000E-2]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.500000E+4,1.500000E+4,1.500000E+4,1.600000E+4,1.600000E+4,1.700000E+4,1.700000E+4,1.800000E+4,1.800000E+4,1.900000E+4,1.900000E+4,1.900000E+4,2.000000E+4,2.100000E+4,2.100000E+4,2.200000E+4,2.200000E+4,2.300000E+4,2.300000E+4,2.400000E+4,2.500000E+4,2.500000E+4,2.600000E+4,2.600000E+4,2.700000E+4,2.800000E+4,2.900000E+4,2.900000E+4,3.000000E+4,3.100000E+4,3.100000E+4,3.200000E+4,3.300000E+4,3.400000E+4,3.500000E+4,3.500000E+4,3.600000E+4,3.700000E+4,3.800000E+4,3.900000E+4,4.000000E+4,4.100000E+4,4.200000E+4,4.300000E+4,4.400000E+4,4.500000E+4,4.600000E+4,4.700000E+4,4.800000E+4,4.900000E+4,5.000000E+4,5.100000E+4,5.300000E+4,5.400000E+4,5.500000E+4,5.600000E+4,5.800000E+4,5.900000E+4,6.000000E+4,6.100000E+4,6.300000E+4,6.400000E+4,6.600000E+4,6.700000E+4,6.900000E+4,7.000000E+4,7.200000E+4,7.300000E+4,7.500000E+4,7.600000E+4,7.800000E+4,8.000000E+4,8.100000E+4,8.300000E+4,8.500000E+4,8.700000E+4,8.900000E+4,9.000000E+4,9.200000E+4,9.400000E+4,9.600000E+4,9.800000E+4,1.000000E+5,1.020000E+5,1.050000E+5,1.070000E+5,1.090000E+5,1.110000E+5,1.130000E+5,1.160000E+5,1.180000E+5,1.200000E+5,1.230000E+5,1.250000E+5,1.280000E+5,1.300000E+5,1.330000E+5,1.360000E+5,1.380000E+5,1.410000E+5,1.440000E+5,1.470000E+5,1.500000E+5,1.520000E+5,1.550000E+5,1.580000E+5,1.610000E+5,1.650000E+5,1.680000E+5,1.710000E+5,1.740000E+5,1.780000E+5,1.810000E+5,1.840000E+5,1.880000E+5,1.920000E+5,1.950000E+5]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PHR" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + + +class PLR(PureData): + """ + The Paratherm LR low-range heat transfer fluid is rated for service from + -40 F to 400 F (-40 C to 204 C). Non-aromatic, this non-toxic liquid is safe + to use and is easy to dispose. Tough and durable, the Paratherm LR fluid is + designed for a broad variety of cooling and heating applications. It is + engineered to provide extended performance under rugged operating + conditions, yet is easy and safe to handle. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([1.881500E+2,1.891500E+2,1.901500E+2,1.911500E+2,1.921500E+2,1.931500E+2,1.941500E+2,1.951500E+2,1.961500E+2,1.971500E+2,1.981500E+2,1.991500E+2,2.001500E+2,2.011500E+2,2.021500E+2,2.031500E+2,2.041500E+2,2.051500E+2,2.061500E+2,2.071500E+2,2.081500E+2,2.091500E+2,2.101500E+2,2.111500E+2,2.121500E+2,2.131500E+2,2.141500E+2,2.151500E+2,2.161500E+2,2.171500E+2,2.181500E+2,2.191500E+2,2.201500E+2,2.211500E+2,2.221500E+2,2.231500E+2,2.241500E+2,2.251500E+2,2.261500E+2,2.271500E+2,2.281500E+2,2.291500E+2,2.301500E+2,2.311500E+2,2.321500E+2,2.331500E+2,2.341500E+2,2.351500E+2,2.361500E+2,2.371500E+2,2.381500E+2,2.391500E+2,2.401500E+2,2.411500E+2,2.421500E+2,2.431500E+2,2.441500E+2,2.451500E+2,2.461500E+2,2.471500E+2,2.481500E+2,2.491500E+2,2.501500E+2,2.511500E+2,2.521500E+2,2.531500E+2,2.541500E+2,2.551500E+2,2.561500E+2,2.571500E+2,2.581500E+2,2.591500E+2,2.601500E+2,2.611500E+2,2.621500E+2,2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2]) + self.density.data = np.array([8.390000E+2,8.380000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.350000E+2,8.350000E+2,8.340000E+2,8.330000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.300000E+2,8.300000E+2,8.290000E+2,8.280000E+2,8.270000E+2,8.270000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.210000E+2,8.210000E+2,8.200000E+2,8.190000E+2,8.190000E+2,8.180000E+2,8.170000E+2,8.160000E+2,8.160000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.100000E+2,8.100000E+2,8.090000E+2,8.080000E+2,8.070000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.050000E+2,8.040000E+2,8.030000E+2,8.020000E+2,8.020000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.990000E+2,7.980000E+2,7.970000E+2,7.960000E+2,7.960000E+2,7.950000E+2,7.940000E+2,7.930000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.880000E+2,7.880000E+2,7.870000E+2,7.860000E+2,7.850000E+2,7.850000E+2,7.840000E+2,7.830000E+2,7.820000E+2,7.820000E+2,7.810000E+2,7.800000E+2,7.800000E+2,7.790000E+2,7.780000E+2,7.770000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.740000E+2,7.740000E+2,7.730000E+2,7.720000E+2,7.710000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.680000E+2,7.670000E+2,7.660000E+2,7.660000E+2,7.650000E+2,7.640000E+2,7.630000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.600000E+2,7.600000E+2,7.590000E+2,7.580000E+2,7.570000E+2,7.570000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.540000E+2,7.530000E+2,7.520000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.490000E+2,7.490000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.460000E+2,7.450000E+2,7.440000E+2,7.430000E+2,7.430000E+2,7.420000E+2,7.410000E+2,7.410000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.350000E+2,7.350000E+2,7.340000E+2,7.330000E+2,7.320000E+2,7.320000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.290000E+2,7.280000E+2,7.270000E+2,7.270000E+2,7.260000E+2,7.250000E+2,7.240000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.210000E+2,7.210000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.180000E+2,7.170000E+2,7.160000E+2,7.150000E+2,7.150000E+2,7.140000E+2,7.130000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.100000E+2,7.100000E+2,7.090000E+2,7.080000E+2,7.070000E+2,7.070000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.010000E+2,7.010000E+2,7.000000E+2,6.990000E+2,6.990000E+2,6.980000E+2,6.970000E+2,6.960000E+2,6.960000E+2,6.950000E+2,6.940000E+2,6.930000E+2,6.930000E+2,6.920000E+2,6.910000E+2,6.900000E+2,6.900000E+2,6.890000E+2,6.880000E+2,6.880000E+2,6.870000E+2,6.860000E+2,6.850000E+2,6.850000E+2,6.840000E+2,6.830000E+2,6.820000E+2,6.820000E+2,6.810000E+2,6.800000E+2,6.790000E+2,6.790000E+2,6.780000E+2,6.770000E+2,6.760000E+2,6.760000E+2,6.750000E+2,6.740000E+2,6.740000E+2,6.730000E+2,6.720000E+2,6.710000E+2,6.710000E+2,6.700000E+2,6.690000E+2,6.680000E+2,6.680000E+2,6.670000E+2,6.660000E+2,6.650000E+2,6.650000E+2,6.640000E+2,6.630000E+2,6.620000E+2,6.620000E+2,6.610000E+2,6.600000E+2,6.600000E+2,6.590000E+2,6.580000E+2,6.570000E+2,6.570000E+2,6.560000E+2,6.550000E+2,6.540000E+2,6.540000E+2,6.530000E+2,6.520000E+2,6.510000E+2,6.510000E+2,6.500000E+2,6.490000E+2,6.490000E+2,6.480000E+2,6.470000E+2,6.460000E+2,6.460000E+2,6.450000E+2,6.440000E+2,6.430000E+2,6.430000E+2,6.420000E+2,6.410000E+2,6.400000E+2,6.400000E+2,6.390000E+2,6.380000E+2,6.370000E+2,6.370000E+2,6.360000E+2,6.350000E+2,6.350000E+2,6.340000E+2,6.330000E+2,6.320000E+2,6.320000E+2,6.310000E+2,6.300000E+2,6.290000E+2,6.290000E+2,6.280000E+2,6.270000E+2,6.260000E+2,6.260000E+2,6.250000E+2,6.240000E+2,6.230000E+2,6.230000E+2,6.220000E+2,6.210000E+2,6.210000E+2,6.200000E+2,6.190000E+2,6.180000E+2,6.180000E+2,6.170000E+2,6.160000E+2,6.150000E+2,6.150000E+2,6.140000E+2,6.130000E+2,6.120000E+2,6.120000E+2,6.110000E+2,6.100000E+2,6.090000E+2,6.090000E+2,6.080000E+2,6.070000E+2]) + self.viscosity.data = np.array([5.020000E-4,4.540000E-4,4.100000E-4,3.700000E-4,3.350000E-4,3.020000E-4,2.730000E-4,2.470000E-4,2.230000E-4,2.010000E-4,1.820000E-4,1.640000E-4,1.490000E-4,1.340000E-4,1.210000E-4,1.100000E-4,9.900000E-5,8.900000E-5,8.100000E-5,7.300000E-5,6.600000E-5,6.000000E-5,5.400000E-5,4.900000E-5,4.400000E-5,4.000000E-5,3.600000E-5,3.200000E-5,2.900000E-5,2.600000E-5,2.400000E-5,2.200000E-5,2.000000E-5,1.800000E-5,2.200000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.500000E-5,1.400000E-5,1.400000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.000000E-5,9.600000E-6,9.200000E-6,8.800000E-6,8.400000E-6,8.000000E-6,7.700000E-6,7.400000E-6,7.100000E-6,6.800000E-6,6.500000E-6,6.300000E-6,6.000000E-6,5.800000E-6,5.600000E-6,5.400000E-6,5.200000E-6,5.000000E-6,4.800000E-6,4.700000E-6,4.500000E-6,4.400000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.500000E-6,3.400000E-6,3.300000E-6,3.200000E-6,3.100000E-6,3.000000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.800000E-7,9.700000E-7,9.600000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.300000E-7,8.200000E-7,8.100000E-7,7.900000E-7,7.800000E-7,7.700000E-7,7.600000E-7,7.500000E-7,7.400000E-7,7.300000E-7,7.200000E-7,7.100000E-7,7.000000E-7,6.900000E-7,6.800000E-7,6.700000E-7,6.600000E-7,6.500000E-7,6.400000E-7,6.400000E-7,6.300000E-7,6.200000E-7,6.100000E-7,6.000000E-7,5.900000E-7,5.800000E-7,5.800000E-7,5.700000E-7,5.600000E-7,5.500000E-7,5.400000E-7,5.400000E-7,5.300000E-7,5.200000E-7,5.100000E-7,5.100000E-7,5.000000E-7,4.900000E-7,5.400000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.000000E-7,5.000000E-7,4.900000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.300000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.100000E-7,4.000000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.500000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.000000E-7,2.000000E-7,2.000000E-7,2.000000E-7,2.000000E-7,2.000000E-7,2.000000E-7,2.000000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.800000E-7]) + self.specific_heat.data = np.array([1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.600000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3]) + self.conductivity.data = np.array([1.600000E-1,1.600000E-1,1.600000E-1,1.600000E-1,1.600000E-1,1.600000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.590000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.580000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.570000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.560000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.550000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.540000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.530000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.520000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.510000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.500000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.490000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.480000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.470000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.460000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.450000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.440000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.430000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.420000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.410000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.400000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.390000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.380000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.370000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.360000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1,1.350000E-1]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.200000E+4,1.200000E+4,1.300000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.500000E+4,1.600000E+4,1.600000E+4,1.700000E+4,1.800000E+4,1.800000E+4,1.900000E+4,2.000000E+4,2.100000E+4,2.100000E+4,2.200000E+4,2.300000E+4,2.400000E+4,2.500000E+4,2.600000E+4,2.700000E+4,2.800000E+4,2.900000E+4,3.000000E+4,3.100000E+4,3.200000E+4,3.300000E+4,3.400000E+4,3.500000E+4,3.700000E+4,3.800000E+4,3.900000E+4,4.000000E+4,4.200000E+4,4.300000E+4,4.400000E+4,4.500000E+4,4.700000E+4,4.800000E+4,5.000000E+4,5.100000E+4,5.300000E+4,5.500000E+4,5.700000E+4,6.000000E+4,6.200000E+4,6.400000E+4,6.600000E+4,6.800000E+4,7.000000E+4,7.200000E+4,7.400000E+4,7.600000E+4,7.800000E+4,8.000000E+4,8.200000E+4,8.400000E+4,8.600000E+4,8.800000E+4,8.900000E+4,9.100000E+4,9.300000E+4,9.500000E+4,9.700000E+4,9.800000E+4,1.000000E+5,1.020000E+5,1.030000E+5,1.050000E+5,1.070000E+5,1.080000E+5,1.100000E+5,1.110000E+5,1.130000E+5,1.150000E+5,1.160000E+5,1.180000E+5,1.190000E+5,1.210000E+5,1.220000E+5,1.230000E+5,1.250000E+5,1.260000E+5,1.270000E+5,1.290000E+5,1.300000E+5,1.310000E+5,1.330000E+5,1.340000E+5,1.350000E+5,1.360000E+5,1.380000E+5,1.390000E+5,1.400000E+5]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PLR" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + + +class PMR(PureData): + """ + Paratherm MR is a food grade (NSF Certified) single fluid heating and + cooling from 36 F to 550 F. Eliminates design and maintenance problems + caused by steam/chilled water temperature control systems. Quick low- + temperature start-ups. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([2.331500E+2,2.341500E+2,2.351500E+2,2.361500E+2,2.371500E+2,2.381500E+2,2.391500E+2,2.401500E+2,2.411500E+2,2.421500E+2,2.431500E+2,2.441500E+2,2.451500E+2,2.461500E+2,2.471500E+2,2.481500E+2,2.491500E+2,2.501500E+2,2.511500E+2,2.521500E+2,2.531500E+2,2.541500E+2,2.551500E+2,2.561500E+2,2.571500E+2,2.581500E+2,2.591500E+2,2.601500E+2,2.611500E+2,2.621500E+2,2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2,5.041500E+2,5.051500E+2,5.061500E+2,5.071500E+2,5.081500E+2,5.091500E+2,5.101500E+2,5.111500E+2,5.121500E+2,5.131500E+2,5.141500E+2,5.151500E+2,5.161500E+2,5.171500E+2,5.181500E+2,5.191500E+2,5.201500E+2,5.211500E+2,5.221500E+2,5.231500E+2,5.241500E+2,5.251500E+2,5.261500E+2,5.271500E+2,5.281500E+2,5.291500E+2,5.301500E+2,5.311500E+2,5.321500E+2,5.331500E+2,5.341500E+2,5.351500E+2,5.361500E+2,5.371500E+2,5.381500E+2,5.391500E+2,5.401500E+2,5.411500E+2,5.421500E+2,5.431500E+2,5.441500E+2,5.451500E+2,5.461500E+2,5.471500E+2,5.481500E+2,5.491500E+2,5.501500E+2,5.511500E+2,5.521500E+2,5.531500E+2,5.541500E+2,5.551500E+2,5.561500E+2,5.571500E+2,5.581500E+2,5.591500E+2,5.601500E+2,5.611500E+2,5.621500E+2,5.631500E+2,5.641500E+2,5.651500E+2,5.661500E+2,5.671500E+2,5.681500E+2,5.691500E+2,5.701500E+2,5.711500E+2,5.721500E+2,5.731500E+2,5.741500E+2,5.751500E+2,5.761500E+2,5.771500E+2,5.781500E+2,5.791500E+2,5.801500E+2,5.811500E+2,5.821500E+2,5.831500E+2,5.841500E+2,5.851500E+2,5.861500E+2,5.871500E+2,5.881500E+2]) + self.density.data = np.array([8.680000E+2,8.670000E+2,8.650000E+2,8.640000E+2,8.630000E+2,8.620000E+2,8.600000E+2,8.590000E+2,8.580000E+2,8.570000E+2,8.550000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.510000E+2,8.490000E+2,8.480000E+2,8.470000E+2,8.460000E+2,8.450000E+2,8.430000E+2,8.420000E+2,8.410000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.360000E+2,8.350000E+2,8.340000E+2,8.330000E+2,8.320000E+2,8.310000E+2,8.300000E+2,8.280000E+2,8.270000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.210000E+2,8.200000E+2,8.180000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.100000E+2,8.090000E+2,8.080000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.040000E+2,8.020000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.980000E+2,7.970000E+2,7.960000E+2,7.950000E+2,7.940000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.880000E+2,7.870000E+2,7.860000E+2,7.860000E+2,7.850000E+2,7.840000E+2,7.830000E+2,7.820000E+2,7.810000E+2,7.800000E+2,7.790000E+2,7.780000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.740000E+2,7.730000E+2,7.720000E+2,7.720000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.680000E+2,7.670000E+2,7.660000E+2,7.650000E+2,7.640000E+2,7.640000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.580000E+2,7.580000E+2,7.570000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.530000E+2,7.530000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.490000E+2,7.490000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.450000E+2,7.450000E+2,7.440000E+2,7.430000E+2,7.420000E+2,7.420000E+2,7.410000E+2,7.400000E+2,7.390000E+2,7.390000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.330000E+2,7.330000E+2,7.320000E+2,7.310000E+2,7.310000E+2,7.300000E+2,7.290000E+2,7.290000E+2,7.280000E+2,7.270000E+2,7.260000E+2,7.260000E+2,7.250000E+2,7.240000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.220000E+2,7.210000E+2,7.210000E+2,7.200000E+2,7.190000E+2,7.190000E+2,7.180000E+2,7.170000E+2,7.170000E+2,7.160000E+2,7.160000E+2,7.150000E+2,7.140000E+2,7.140000E+2,7.130000E+2,7.130000E+2,7.120000E+2,7.110000E+2,7.110000E+2,7.100000E+2,7.100000E+2,7.090000E+2,7.090000E+2,7.080000E+2,7.070000E+2,7.070000E+2,7.060000E+2,7.060000E+2,7.050000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.030000E+2,7.020000E+2,7.020000E+2,7.010000E+2,7.010000E+2,7.000000E+2,7.000000E+2,6.990000E+2,6.990000E+2,6.980000E+2,6.980000E+2,6.970000E+2,6.970000E+2,6.960000E+2,6.960000E+2,6.950000E+2,6.950000E+2,6.940000E+2,6.940000E+2,6.940000E+2,6.930000E+2,6.930000E+2,6.920000E+2,6.920000E+2,6.910000E+2,6.910000E+2,6.910000E+2,6.900000E+2,6.900000E+2,6.890000E+2,6.890000E+2,6.890000E+2,6.880000E+2,6.880000E+2,6.870000E+2,6.870000E+2,6.870000E+2,6.860000E+2,6.860000E+2,6.860000E+2,6.850000E+2,6.850000E+2,6.840000E+2,6.840000E+2,6.840000E+2,6.830000E+2,6.830000E+2,6.830000E+2,6.820000E+2,6.820000E+2,6.820000E+2,6.820000E+2,6.810000E+2,6.810000E+2,6.810000E+2,6.800000E+2,6.800000E+2,6.800000E+2,6.790000E+2,6.790000E+2,6.790000E+2,6.790000E+2,6.780000E+2,6.780000E+2,6.780000E+2,6.780000E+2,6.770000E+2,6.770000E+2,6.770000E+2,6.770000E+2,6.760000E+2,6.760000E+2,6.760000E+2,6.760000E+2,6.750000E+2,6.750000E+2,6.750000E+2,6.750000E+2,6.750000E+2,6.740000E+2,6.740000E+2,6.740000E+2,6.740000E+2,6.740000E+2,6.730000E+2,6.730000E+2,6.730000E+2,6.730000E+2,6.730000E+2,6.730000E+2,6.720000E+2,6.720000E+2,6.720000E+2,6.720000E+2,6.720000E+2,6.720000E+2,6.720000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.710000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.700000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.690000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.680000E+2,6.670000E+2,6.670000E+2,6.670000E+2,6.670000E+2,6.670000E+2,6.670000E+2,6.670000E+2,6.670000E+2]) + self.viscosity.data = np.array([3.860000E-4,3.150000E-4,2.730000E-4,2.440000E-4,2.210000E-4,2.030000E-4,1.870000E-4,1.730000E-4,1.610000E-4,1.500000E-4,1.410000E-4,1.320000E-4,1.240000E-4,1.160000E-4,1.090000E-4,1.020000E-4,9.600000E-5,9.000000E-5,8.500000E-5,8.000000E-5,7.500000E-5,7.000000E-5,6.500000E-5,6.100000E-5,5.700000E-5,5.300000E-5,4.900000E-5,4.500000E-5,4.200000E-5,3.800000E-5,3.500000E-5,3.200000E-5,2.800000E-5,2.500000E-5,2.800000E-5,2.700000E-5,2.600000E-5,2.500000E-5,2.400000E-5,2.300000E-5,2.200000E-5,2.100000E-5,2.000000E-5,1.900000E-5,1.900000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.600000E-5,1.500000E-5,1.400000E-5,1.400000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.000000E-5,1.000000E-5,9.600000E-6,9.200000E-6,8.900000E-6,8.500000E-6,8.200000E-6,8.000000E-6,7.700000E-6,7.500000E-6,7.300000E-6,7.100000E-6,7.000000E-6,6.800000E-6,6.600000E-6,6.400000E-6,6.200000E-6,6.000000E-6,5.800000E-6,5.700000E-6,5.500000E-6,5.300000E-6,5.200000E-6,5.100000E-6,4.900000E-6,4.800000E-6,4.700000E-6,4.600000E-6,4.500000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.900000E-6,3.800000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.600000E-6,3.500000E-6,3.400000E-6,3.400000E-6,3.300000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.600000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.800000E-7,9.700000E-7,9.600000E-7,9.500000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.100000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.700000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.300000E-7,8.200000E-7,8.200000E-7,8.100000E-7,8.000000E-7,7.900000E-7,7.800000E-7,7.800000E-7,7.700000E-7,7.600000E-7,7.500000E-7,7.500000E-7,7.400000E-7,7.300000E-7,7.200000E-7,7.200000E-7,7.100000E-7,7.000000E-7,7.000000E-7,6.900000E-7,6.800000E-7,6.800000E-7,6.700000E-7,6.700000E-7,6.600000E-7,6.500000E-7,6.500000E-7,6.400000E-7,6.400000E-7,6.300000E-7,6.300000E-7,6.200000E-7,6.200000E-7,6.100000E-7,6.100000E-7,6.000000E-7,5.900000E-7,5.900000E-7,5.900000E-7,5.800000E-7,5.800000E-7,5.700000E-7,5.700000E-7,5.600000E-7,5.600000E-7,5.500000E-7,5.500000E-7,5.400000E-7,5.400000E-7,5.400000E-7,5.300000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.100000E-7,5.000000E-7,5.000000E-7,5.000000E-7,4.900000E-7,4.900000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.700000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.300000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.100000E-7,4.100000E-7,4.100000E-7,4.000000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,3.000000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.900000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.700000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.600000E-7]) + self.specific_heat.data = np.array([2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3]) + self.conductivity.data = np.array([1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.340000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.330000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.320000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.310000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.300000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.290000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.280000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.270000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.260000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.250000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.240000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.230000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.220000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.210000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.200000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.190000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.180000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.170000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.160000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.150000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.140000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.130000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.120000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.110000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.100000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.090000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.080000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.070000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.030000E-1,1.030000E-1,1.030000E-1]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.500000E+4,1.500000E+4,1.500000E+4,1.600000E+4,1.600000E+4,1.700000E+4,1.700000E+4,1.800000E+4,1.800000E+4,1.900000E+4,1.900000E+4,2.000000E+4,2.000000E+4,2.100000E+4,2.100000E+4,2.200000E+4,2.200000E+4,2.300000E+4,2.400000E+4,2.400000E+4,2.500000E+4,2.600000E+4,2.600000E+4,2.700000E+4,2.800000E+4,2.800000E+4,2.900000E+4,3.000000E+4,3.000000E+4,3.100000E+4,3.200000E+4,3.300000E+4,3.400000E+4,3.500000E+4,3.500000E+4,3.600000E+4,3.700000E+4,3.800000E+4,3.900000E+4,4.000000E+4,4.100000E+4,4.200000E+4,4.300000E+4,4.400000E+4,4.500000E+4,4.600000E+4,4.700000E+4,4.800000E+4,4.900000E+4,5.100000E+4,5.200000E+4,5.300000E+4,5.400000E+4,5.500000E+4,5.700000E+4,5.800000E+4,5.900000E+4,6.100000E+4,6.200000E+4,6.400000E+4,6.500000E+4,6.700000E+4,6.800000E+4,7.000000E+4,7.100000E+4,7.300000E+4,7.400000E+4,7.600000E+4,7.800000E+4]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PMR" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" + self.reshapeAll() + + + + +class PNF(PureData): + """ + The Paratherm NF heat transfer fluid is highly efficient, thermally stable + and cost-effective. Completely non-toxic, it is exceptionally safe to use + and is easy to dispose. Used fluid can be safely combined with spent + lubricating oils and recycled locally (EPA, citation 57FR21524). The NF + fluid is specified in a broad variety of applications, world wide. It is + tough and durable with a proven record of success under demanding + conditions, yet is easy and safe to handle. + """ + def __init__(self): + PureData.__init__(self) + self.density.source = self.density.SOURCE_DATA + self.viscosity.source = self.viscosity.SOURCE_DATA + self.specific_heat.source = self.specific_heat.SOURCE_DATA + self.conductivity.source = self.conductivity.SOURCE_DATA + self.saturation_pressure.source = self.saturation_pressure.SOURCE_DATA + self.temperature.data = np.array([2.631500E+2,2.641500E+2,2.651500E+2,2.661500E+2,2.671500E+2,2.681500E+2,2.691500E+2,2.701500E+2,2.711500E+2,2.721500E+2,2.731500E+2,2.741500E+2,2.751500E+2,2.761500E+2,2.771500E+2,2.781500E+2,2.791500E+2,2.801500E+2,2.811500E+2,2.821500E+2,2.831500E+2,2.841500E+2,2.851500E+2,2.861500E+2,2.871500E+2,2.881500E+2,2.891500E+2,2.901500E+2,2.911500E+2,2.921500E+2,2.931500E+2,2.941500E+2,2.951500E+2,2.961500E+2,2.971500E+2,2.981500E+2,2.991500E+2,3.001500E+2,3.011500E+2,3.021500E+2,3.031500E+2,3.041500E+2,3.051500E+2,3.061500E+2,3.071500E+2,3.081500E+2,3.091500E+2,3.101500E+2,3.111500E+2,3.121500E+2,3.131500E+2,3.141500E+2,3.151500E+2,3.161500E+2,3.171500E+2,3.181500E+2,3.191500E+2,3.201500E+2,3.211500E+2,3.221500E+2,3.231500E+2,3.241500E+2,3.251500E+2,3.261500E+2,3.271500E+2,3.281500E+2,3.291500E+2,3.301500E+2,3.311500E+2,3.321500E+2,3.331500E+2,3.341500E+2,3.351500E+2,3.361500E+2,3.371500E+2,3.381500E+2,3.391500E+2,3.401500E+2,3.411500E+2,3.421500E+2,3.431500E+2,3.441500E+2,3.451500E+2,3.461500E+2,3.471500E+2,3.481500E+2,3.491500E+2,3.501500E+2,3.511500E+2,3.521500E+2,3.531500E+2,3.541500E+2,3.551500E+2,3.561500E+2,3.571500E+2,3.581500E+2,3.591500E+2,3.601500E+2,3.611500E+2,3.621500E+2,3.631500E+2,3.641500E+2,3.651500E+2,3.661500E+2,3.671500E+2,3.681500E+2,3.691500E+2,3.701500E+2,3.711500E+2,3.721500E+2,3.731500E+2,3.741500E+2,3.751500E+2,3.761500E+2,3.771500E+2,3.781500E+2,3.791500E+2,3.801500E+2,3.811500E+2,3.821500E+2,3.831500E+2,3.841500E+2,3.851500E+2,3.861500E+2,3.871500E+2,3.881500E+2,3.891500E+2,3.901500E+2,3.911500E+2,3.921500E+2,3.931500E+2,3.941500E+2,3.951500E+2,3.961500E+2,3.971500E+2,3.981500E+2,3.991500E+2,4.001500E+2,4.011500E+2,4.021500E+2,4.031500E+2,4.041500E+2,4.051500E+2,4.061500E+2,4.071500E+2,4.081500E+2,4.091500E+2,4.101500E+2,4.111500E+2,4.121500E+2,4.131500E+2,4.141500E+2,4.151500E+2,4.161500E+2,4.171500E+2,4.181500E+2,4.191500E+2,4.201500E+2,4.211500E+2,4.221500E+2,4.231500E+2,4.241500E+2,4.251500E+2,4.261500E+2,4.271500E+2,4.281500E+2,4.291500E+2,4.301500E+2,4.311500E+2,4.321500E+2,4.331500E+2,4.341500E+2,4.351500E+2,4.361500E+2,4.371500E+2,4.381500E+2,4.391500E+2,4.401500E+2,4.411500E+2,4.421500E+2,4.431500E+2,4.441500E+2,4.451500E+2,4.461500E+2,4.471500E+2,4.481500E+2,4.491500E+2,4.501500E+2,4.511500E+2,4.521500E+2,4.531500E+2,4.541500E+2,4.551500E+2,4.561500E+2,4.571500E+2,4.581500E+2,4.591500E+2,4.601500E+2,4.611500E+2,4.621500E+2,4.631500E+2,4.641500E+2,4.651500E+2,4.661500E+2,4.671500E+2,4.681500E+2,4.691500E+2,4.701500E+2,4.711500E+2,4.721500E+2,4.731500E+2,4.741500E+2,4.751500E+2,4.761500E+2,4.771500E+2,4.781500E+2,4.791500E+2,4.801500E+2,4.811500E+2,4.821500E+2,4.831500E+2,4.841500E+2,4.851500E+2,4.861500E+2,4.871500E+2,4.881500E+2,4.891500E+2,4.901500E+2,4.911500E+2,4.921500E+2,4.931500E+2,4.941500E+2,4.951500E+2,4.961500E+2,4.971500E+2,4.981500E+2,4.991500E+2,5.001500E+2,5.011500E+2,5.021500E+2,5.031500E+2,5.041500E+2,5.051500E+2,5.061500E+2,5.071500E+2,5.081500E+2,5.091500E+2,5.101500E+2,5.111500E+2,5.121500E+2,5.131500E+2,5.141500E+2,5.151500E+2,5.161500E+2,5.171500E+2,5.181500E+2,5.191500E+2,5.201500E+2,5.211500E+2,5.221500E+2,5.231500E+2,5.241500E+2,5.251500E+2,5.261500E+2,5.271500E+2,5.281500E+2,5.291500E+2,5.301500E+2,5.311500E+2,5.321500E+2,5.331500E+2,5.341500E+2,5.351500E+2,5.361500E+2,5.371500E+2,5.381500E+2,5.391500E+2,5.401500E+2,5.411500E+2,5.421500E+2,5.431500E+2,5.441500E+2,5.451500E+2,5.461500E+2,5.471500E+2,5.481500E+2,5.491500E+2,5.501500E+2,5.511500E+2,5.521500E+2,5.531500E+2,5.541500E+2,5.551500E+2,5.561500E+2,5.571500E+2,5.581500E+2,5.591500E+2,5.601500E+2,5.611500E+2,5.621500E+2,5.631500E+2,5.641500E+2,5.651500E+2,5.661500E+2,5.671500E+2,5.681500E+2,5.691500E+2,5.701500E+2,5.711500E+2,5.721500E+2,5.731500E+2,5.741500E+2,5.751500E+2,5.761500E+2,5.771500E+2,5.781500E+2,5.791500E+2,5.801500E+2,5.811500E+2,5.821500E+2,5.831500E+2,5.841500E+2,5.851500E+2,5.861500E+2,5.871500E+2,5.881500E+2]) + self.density.data = np.array([9.040000E+2,9.030000E+2,9.030000E+2,9.020000E+2,9.010000E+2,9.010000E+2,9.000000E+2,8.990000E+2,8.990000E+2,8.980000E+2,8.970000E+2,8.970000E+2,8.960000E+2,8.950000E+2,8.950000E+2,8.940000E+2,8.930000E+2,8.930000E+2,8.920000E+2,8.910000E+2,8.910000E+2,8.900000E+2,8.890000E+2,8.890000E+2,8.880000E+2,8.870000E+2,8.870000E+2,8.860000E+2,8.850000E+2,8.850000E+2,8.840000E+2,8.830000E+2,8.830000E+2,8.820000E+2,8.810000E+2,8.810000E+2,8.800000E+2,8.790000E+2,8.790000E+2,8.780000E+2,8.780000E+2,8.770000E+2,8.760000E+2,8.760000E+2,8.750000E+2,8.740000E+2,8.740000E+2,8.730000E+2,8.720000E+2,8.720000E+2,8.710000E+2,8.700000E+2,8.700000E+2,8.690000E+2,8.680000E+2,8.680000E+2,8.670000E+2,8.660000E+2,8.660000E+2,8.650000E+2,8.640000E+2,8.640000E+2,8.630000E+2,8.620000E+2,8.620000E+2,8.610000E+2,8.600000E+2,8.600000E+2,8.590000E+2,8.580000E+2,8.580000E+2,8.570000E+2,8.560000E+2,8.560000E+2,8.550000E+2,8.540000E+2,8.540000E+2,8.530000E+2,8.520000E+2,8.520000E+2,8.510000E+2,8.500000E+2,8.500000E+2,8.490000E+2,8.480000E+2,8.480000E+2,8.470000E+2,8.460000E+2,8.460000E+2,8.450000E+2,8.440000E+2,8.440000E+2,8.430000E+2,8.420000E+2,8.420000E+2,8.410000E+2,8.400000E+2,8.400000E+2,8.390000E+2,8.380000E+2,8.380000E+2,8.370000E+2,8.360000E+2,8.360000E+2,8.350000E+2,8.340000E+2,8.340000E+2,8.330000E+2,8.320000E+2,8.320000E+2,8.310000E+2,8.300000E+2,8.300000E+2,8.290000E+2,8.280000E+2,8.280000E+2,8.270000E+2,8.260000E+2,8.260000E+2,8.250000E+2,8.240000E+2,8.240000E+2,8.230000E+2,8.220000E+2,8.220000E+2,8.210000E+2,8.200000E+2,8.200000E+2,8.190000E+2,8.190000E+2,8.180000E+2,8.170000E+2,8.170000E+2,8.160000E+2,8.150000E+2,8.150000E+2,8.140000E+2,8.130000E+2,8.130000E+2,8.120000E+2,8.110000E+2,8.110000E+2,8.100000E+2,8.090000E+2,8.090000E+2,8.080000E+2,8.070000E+2,8.070000E+2,8.060000E+2,8.050000E+2,8.050000E+2,8.040000E+2,8.030000E+2,8.030000E+2,8.020000E+2,8.010000E+2,8.010000E+2,8.000000E+2,7.990000E+2,7.990000E+2,7.980000E+2,7.970000E+2,7.970000E+2,7.960000E+2,7.950000E+2,7.950000E+2,7.940000E+2,7.930000E+2,7.930000E+2,7.920000E+2,7.910000E+2,7.910000E+2,7.900000E+2,7.890000E+2,7.890000E+2,7.880000E+2,7.870000E+2,7.870000E+2,7.860000E+2,7.850000E+2,7.850000E+2,7.840000E+2,7.830000E+2,7.830000E+2,7.820000E+2,7.810000E+2,7.810000E+2,7.800000E+2,7.790000E+2,7.790000E+2,7.780000E+2,7.770000E+2,7.770000E+2,7.760000E+2,7.750000E+2,7.750000E+2,7.740000E+2,7.730000E+2,7.730000E+2,7.720000E+2,7.710000E+2,7.710000E+2,7.700000E+2,7.690000E+2,7.690000E+2,7.680000E+2,7.670000E+2,7.670000E+2,7.660000E+2,7.650000E+2,7.650000E+2,7.640000E+2,7.630000E+2,7.630000E+2,7.620000E+2,7.610000E+2,7.610000E+2,7.600000E+2,7.590000E+2,7.590000E+2,7.580000E+2,7.580000E+2,7.570000E+2,7.560000E+2,7.560000E+2,7.550000E+2,7.540000E+2,7.540000E+2,7.530000E+2,7.520000E+2,7.520000E+2,7.510000E+2,7.500000E+2,7.500000E+2,7.490000E+2,7.480000E+2,7.480000E+2,7.470000E+2,7.460000E+2,7.460000E+2,7.450000E+2,7.440000E+2,7.440000E+2,7.430000E+2,7.420000E+2,7.420000E+2,7.410000E+2,7.400000E+2,7.400000E+2,7.390000E+2,7.380000E+2,7.380000E+2,7.370000E+2,7.360000E+2,7.360000E+2,7.350000E+2,7.340000E+2,7.340000E+2,7.330000E+2,7.320000E+2,7.320000E+2,7.310000E+2,7.300000E+2,7.300000E+2,7.290000E+2,7.280000E+2,7.280000E+2,7.270000E+2,7.260000E+2,7.260000E+2,7.250000E+2,7.240000E+2,7.240000E+2,7.230000E+2,7.220000E+2,7.220000E+2,7.210000E+2,7.200000E+2,7.200000E+2,7.190000E+2,7.180000E+2,7.180000E+2,7.170000E+2,7.160000E+2,7.160000E+2,7.150000E+2,7.140000E+2,7.140000E+2,7.130000E+2,7.120000E+2,7.120000E+2,7.110000E+2,7.100000E+2,7.100000E+2,7.090000E+2,7.080000E+2,7.080000E+2,7.070000E+2,7.060000E+2,7.060000E+2,7.050000E+2,7.040000E+2,7.040000E+2,7.030000E+2,7.020000E+2,7.020000E+2,7.010000E+2,7.000000E+2,7.000000E+2,6.990000E+2,6.980000E+2,6.980000E+2,6.970000E+2,6.970000E+2,6.960000E+2,6.950000E+2,6.950000E+2,6.940000E+2,6.930000E+2,6.930000E+2,6.920000E+2,6.910000E+2,6.910000E+2,6.900000E+2,6.890000E+2,6.890000E+2]) + self.viscosity.data = np.array([4.760000E-4,4.380000E-4,4.040000E-4,3.720000E-4,3.430000E-4,3.160000E-4,2.910000E-4,2.680000E-4,2.470000E-4,2.280000E-4,2.100000E-4,1.940000E-4,1.780000E-4,1.640000E-4,1.510000E-4,1.400000E-4,1.290000E-4,1.180000E-4,1.090000E-4,1.010000E-4,9.300000E-5,8.600000E-5,8.000000E-5,7.400000E-5,6.900000E-5,6.400000E-5,5.900000E-5,5.500000E-5,5.100000E-5,4.800000E-5,4.500000E-5,4.200000E-5,3.900000E-5,3.700000E-5,3.400000E-5,3.200000E-5,3.100000E-5,2.900000E-5,2.700000E-5,2.600000E-5,2.500000E-5,2.400000E-5,2.200000E-5,2.100000E-5,2.100000E-5,2.000000E-5,1.900000E-5,1.800000E-5,1.800000E-5,1.700000E-5,1.600000E-5,1.500000E-5,1.500000E-5,1.400000E-5,1.400000E-5,1.300000E-5,1.300000E-5,1.200000E-5,1.200000E-5,1.100000E-5,1.100000E-5,1.000000E-5,1.000000E-5,9.700000E-6,9.400000E-6,9.100000E-6,8.800000E-6,8.500000E-6,8.200000E-6,8.000000E-6,7.800000E-6,7.500000E-6,7.300000E-6,7.100000E-6,6.900000E-6,6.700000E-6,6.500000E-6,6.300000E-6,6.200000E-6,6.000000E-6,5.900000E-6,5.700000E-6,5.600000E-6,5.400000E-6,5.300000E-6,5.200000E-6,5.100000E-6,4.900000E-6,4.800000E-6,4.700000E-6,4.600000E-6,4.500000E-6,4.400000E-6,4.300000E-6,4.200000E-6,4.100000E-6,4.000000E-6,3.900000E-6,3.900000E-6,3.800000E-6,3.700000E-6,3.600000E-6,3.600000E-6,3.500000E-6,3.400000E-6,3.400000E-6,3.300000E-6,3.200000E-6,3.200000E-6,3.100000E-6,3.100000E-6,3.000000E-6,3.000000E-6,2.900000E-6,2.800000E-6,2.800000E-6,2.800000E-6,2.700000E-6,2.700000E-6,2.600000E-6,2.600000E-6,2.500000E-6,2.500000E-6,2.500000E-6,2.400000E-6,2.400000E-6,2.300000E-6,2.300000E-6,2.300000E-6,2.200000E-6,2.200000E-6,2.200000E-6,2.100000E-6,2.100000E-6,2.100000E-6,2.000000E-6,2.000000E-6,2.000000E-6,2.000000E-6,1.900000E-6,1.900000E-6,1.900000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.800000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.700000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.600000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.500000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.400000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.300000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.200000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.100000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,1.000000E-6,9.900000E-7,9.800000E-7,9.700000E-7,9.600000E-7,9.600000E-7,9.500000E-7,9.400000E-7,9.300000E-7,9.200000E-7,9.100000E-7,9.000000E-7,8.900000E-7,8.800000E-7,8.600000E-7,8.500000E-7,8.400000E-7,8.300000E-7,8.100000E-7,8.000000E-7,7.900000E-7,7.800000E-7,7.700000E-7,7.500000E-7,7.400000E-7,7.300000E-7,7.200000E-7,7.100000E-7,7.000000E-7,6.900000E-7,6.800000E-7,6.700000E-7,6.600000E-7,6.500000E-7,6.400000E-7,6.300000E-7,6.200000E-7,6.100000E-7,6.000000E-7,5.900000E-7,5.800000E-7,5.700000E-7,5.600000E-7,5.600000E-7,5.500000E-7,5.400000E-7,5.300000E-7,5.200000E-7,5.200000E-7,5.100000E-7,5.000000E-7,4.900000E-7,4.800000E-7,4.800000E-7,4.700000E-7,4.600000E-7,4.600000E-7,4.500000E-7,4.400000E-7,4.400000E-7,4.300000E-7,4.200000E-7,4.200000E-7,4.100000E-7,4.000000E-7,4.000000E-7,3.900000E-7,3.900000E-7,3.800000E-7,3.700000E-7,3.700000E-7,3.600000E-7,3.600000E-7,3.500000E-7,3.500000E-7,3.400000E-7,3.400000E-7,3.300000E-7,3.300000E-7,3.200000E-7,3.200000E-7,3.100000E-7,3.100000E-7,3.000000E-7,3.000000E-7,2.900000E-7,2.900000E-7,2.800000E-7,2.800000E-7,2.800000E-7,2.700000E-7,2.700000E-7,2.600000E-7,2.600000E-7,2.600000E-7,2.500000E-7,2.500000E-7,2.400000E-7,2.400000E-7,2.400000E-7,2.300000E-7,2.300000E-7,2.300000E-7,2.200000E-7,2.200000E-7,2.200000E-7,2.100000E-7,2.100000E-7,2.100000E-7,2.000000E-7,2.000000E-7,2.000000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.900000E-7,1.800000E-7,1.800000E-7,1.800000E-7,1.800000E-7,1.700000E-7,1.700000E-7,1.700000E-7,1.600000E-7,1.600000E-7,1.600000E-7,1.600000E-7,1.600000E-7,1.500000E-7,1.500000E-7,1.500000E-7,1.500000E-7]) + self.specific_heat.data = np.array([1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.700000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.800000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,1.900000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.000000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.100000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.200000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.300000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.400000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.500000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.600000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.700000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.800000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,2.900000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.100000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.200000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3,3.300000E+3]) + self.conductivity.data = np.array([1.070000E-1,1.070000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.060000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.050000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.040000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.030000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.020000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.010000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,1.000000E-1,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.900000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.800000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.700000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.600000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.500000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.400000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.300000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.200000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.100000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2,9.000000E-2]) + self.saturation_pressure.data = np.array([ np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN, np.NAN,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,3.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,4.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,5.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,6.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,7.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,8.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,9.000000E+3,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.000000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.100000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.200000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.300000E+4,1.400000E+4,1.400000E+4,1.400000E+4,1.400000E+4]) + self.Tmin = np.min(self.temperature.data) + self.Tmax = np.max(self.temperature.data) + self.TminPsat = np.min(self.temperature.data[~np.isnan(self.saturation_pressure.data)]) + self.name = "PNF" + self.description = "Paratherm "+ self.name[1:] + self.reference = "Paratherm2013" self.reshapeAll() - \ No newline at end of file diff --git a/dev/incompressible_liquids/CPIncomp/SecCoolFluids.py b/dev/incompressible_liquids/CPIncomp/SecCoolFluids.py index bae70bd6..1278c5a4 100644 --- a/dev/incompressible_liquids/CPIncomp/SecCoolFluids.py +++ b/dev/incompressible_liquids/CPIncomp/SecCoolFluids.py @@ -295,104 +295,104 @@ class SecCoolSolutionData(DigitalData): """ print("Loading SecCool fluids: ", end="") sec = [] - sec += [SecCoolSolutionData(sFile='Antifrogen KF' ,sFolder='xVolume',name='AKF',desc='Antifrogen KF, Potassium Formate' ,ref='Clariant GmbH Jan. 2000, SecCool software')] + sec += [SecCoolSolutionData(sFile='Antifrogen KF' ,sFolder='xVolume',name='AKF',desc='Antifrogen KF, Potassium Formate' ,ref='Clariant2000,Skovrup2013')] print("{0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Antifrogen L' ,sFolder='xVolume',name='AL' ,desc='Antifrogen L, Propylene Glycol' ,ref='Clariant GmbH Jan. 2000, SecCool software')] + sec += [SecCoolSolutionData(sFile='Antifrogen L' ,sFolder='xVolume',name='AL' ,desc='Antifrogen L, Propylene Glycol' ,ref='Clariant2000,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Antifrogen N' ,sFolder='xVolume',name='AN' ,desc='Antifrogen N, Ethylene Glycol' ,ref='Clariant GmbH Jan. 2000, SecCool software')] + sec += [SecCoolSolutionData(sFile='Antifrogen N' ,sFolder='xVolume',name='AN' ,desc='Antifrogen N, Ethylene Glycol' ,ref='Clariant2000,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='ASHRAE, Ethylene Glycol' ,sFolder='xVolume',name='AEG',desc='ASHRAE, Ethylene Glycol' ,ref='ASHRAE Fundamentals Handbook 2001, SecCool software')] + sec += [SecCoolSolutionData(sFile='ASHRAE, Ethylene Glycol' ,sFolder='xVolume',name='AEG',desc='ASHRAE, Ethylene Glycol' ,ref='ASHRAE2001,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='ASHRAE, Propylene Glycol',sFolder='xVolume',name='APG',desc='ASHRAE, Propylene Glycol' ,ref='ASHRAE Fundamentals Handbook 2001, SecCool software')] + sec += [SecCoolSolutionData(sFile='ASHRAE, Propylene Glycol',sFolder='xVolume',name='APG',desc='ASHRAE, Propylene Glycol' ,ref='ASHRAE2001,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Glykosol N' ,sFolder='xVolume',name='GKN',desc='Glykosol N, Ethylene Glycol' ,ref='pro KUEHLSOLE GmbH, SecCool software')] + sec += [SecCoolSolutionData(sFile='Glykosol N' ,sFolder='xVolume',name='GKN',desc='Glykosol N, Ethylene Glycol' ,ref='PKS2005,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Pekasol 2000' ,sFolder='xVolume',name='PK2',desc='Pekasol 2000, Potassium acetate/formate',ref='pro KUEHLSOLE GmbH, SecCool software')] + sec += [SecCoolSolutionData(sFile='Pekasol 2000' ,sFolder='xVolume',name='PK2',desc='Pekasol 2000, Potassium acetate/formate',ref='PKS2005,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Pekasol L' ,sFolder='xVolume',name='PKL',desc='Pekasol L, Propylene Glycol' ,ref='pro KUEHLSOLE GmbH, SecCool software')] + sec += [SecCoolSolutionData(sFile='Pekasol L' ,sFolder='xVolume',name='PKL',desc='Pekasol L, Propylene Glycol' ,ref='PKS2005,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec AC' ,sFolder='xVolume',name='ZAC',desc='Zitrec AC, Corrosion Inhibitor' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec AC' ,sFolder='xVolume',name='ZAC',desc='Zitrec AC, Corrosion Inhibitor' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec FC' ,sFolder='xVolume',name='ZFC',desc='Zitrec FC, Propylene Glycol' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec FC' ,sFolder='xVolume',name='ZFC',desc='Zitrec FC, Propylene Glycol' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec LC' ,sFolder='xVolume',name='ZLC',desc='Zitrec LC, Propylene Glycol' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec LC' ,sFolder='xVolume',name='ZLC',desc='Zitrec LC, Propylene Glycol' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec MC' ,sFolder='xVolume',name='ZMC',desc='Zitrec MC, Ethylene Glycol' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec MC' ,sFolder='xVolume',name='ZMC',desc='Zitrec MC, Ethylene Glycol' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec M' ,sFolder='xVolume',name='ZM' ,desc='Zitrec M, Ethylene Glycol' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec M' ,sFolder='xVolume',name='ZM' ,desc='Zitrec M, Ethylene Glycol' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Ammonia' ,sFolder='xMass',name='MAM2',desc='Melinder, Ammonia' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Ammonia' ,sFolder='xMass',name='MAM2',desc='Melinder, Ammonia' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Calcium Cloride' ,sFolder='xMass',name='MCA2',desc='Melinder, Calcium Chloride' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Calcium Cloride' ,sFolder='xMass',name='MCA2',desc='Melinder, Calcium Chloride' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Ethanol' ,sFolder='xMass',name='MEA2',desc='Melinder, Ethanol' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Ethanol' ,sFolder='xMass',name='MEA2',desc='Melinder, Ethanol' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Ethylene glycol' ,sFolder='xMass',name='MEG2',desc='Melinder, Ethylene Glycol' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Ethylene glycol' ,sFolder='xMass',name='MEG2',desc='Melinder, Ethylene Glycol' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Glycerol' ,sFolder='xMass',name='MGL2',desc='Melinder, Glycerol' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Glycerol' ,sFolder='xMass',name='MGL2',desc='Melinder, Glycerol' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Magnesium Chloride' ,sFolder='xMass',name='MMG2',desc='Melinder, Magnesium Chloride' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Magnesium Chloride' ,sFolder='xMass',name='MMG2',desc='Melinder, Magnesium Chloride' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Methanol' ,sFolder='xMass',name='MMA2',desc='Melinder, Methanol' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Methanol' ,sFolder='xMass',name='MMA2',desc='Melinder, Methanol' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Potassium Acetate' ,sFolder='xMass',name='MKA2',desc='Melinder, Potassium Acetate' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Potassium Acetate' ,sFolder='xMass',name='MKA2',desc='Melinder, Potassium Acetate' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Potassium Carbonate',sFolder='xMass',name='MKC2',desc='Melinder, Potassium Carbonate',ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Potassium Carbonate',sFolder='xMass',name='MKC2',desc='Melinder, Potassium Carbonate',ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Propylene Glycol' ,sFolder='xMass',name='MPG2',desc='Melinder, Propylene Glycol' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Propylene Glycol' ,sFolder='xMass',name='MPG2',desc='Melinder, Propylene Glycol' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Melinder, Sodium Chloride' ,sFolder='xMass',name='MNA2',desc='Melinder, Sodium Chloride' ,ref='Melinder-BOOK-2010, SecCool software')] + sec += [SecCoolSolutionData(sFile='Melinder, Sodium Chloride' ,sFolder='xMass',name='MNA2',desc='Melinder, Sodium Chloride' ,ref='Melinder2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='VDI, Calcium Cloride' ,sFolder='xMass',name='VCA' ,desc='VDI, Calcium Cloride' ,ref='VDI Waermeatlas 9th Edition 2002, SecCool software')] + sec += [SecCoolSolutionData(sFile='VDI, Calcium Cloride' ,sFolder='xMass',name='VCA' ,desc='VDI, Calcium Cloride' ,ref='Preisegger2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='VDI, Magnesium Chloride' ,sFolder='xMass',name='VMG' ,desc='VDI, Magnesium Chloride' ,ref='VDI Waermeatlas 9th Edition 2002, SecCool software')] + sec += [SecCoolSolutionData(sFile='VDI, Magnesium Chloride' ,sFolder='xMass',name='VMG' ,desc='VDI, Magnesium Chloride' ,ref='Preisegger2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='VDI, Methanol' ,sFolder='xMass',name='VMA' ,desc='VDI, Methanol' ,ref='VDI Waermeatlas 9th Edition 2002, SecCool software')] + sec += [SecCoolSolutionData(sFile='VDI, Methanol' ,sFolder='xMass',name='VMA' ,desc='VDI, Methanol' ,ref='Preisegger2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='VDI, Potassium Carbonate' ,sFolder='xMass',name='VKC' ,desc='VDI, Potassium Carbonate' ,ref='VDI Waermeatlas 9th Edition 2002, SecCool software')] + sec += [SecCoolSolutionData(sFile='VDI, Potassium Carbonate' ,sFolder='xMass',name='VKC' ,desc='VDI, Potassium Carbonate' ,ref='Preisegger2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='VDI, Sodium Chloride' ,sFolder='xMass',name='VNA' ,desc='VDI, Sodium Chloride' ,ref='VDI Waermeatlas 9th Edition 2002, SecCool software')] + sec += [SecCoolSolutionData(sFile='VDI, Sodium Chloride' ,sFolder='xMass',name='VNA' ,desc='VDI, Sodium Chloride' ,ref='Preisegger2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='HFE-7100' ,sFolder='xPure',name='HFE2' ,desc='HFE-7100, Hydrofluoroether' ,ref='3M Novec, SecCool software')] + sec += [SecCoolSolutionData(sFile='HFE-7100' ,sFolder='xPure',name='HFE2' ,desc='HFE-7100, Hydrofluoroether' ,ref='3M2007,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='NBS, Water' ,sFolder='xPure',name='NBS' ,desc='NBS, Water' ,ref='Properties of Water and Steam in SI-Units, 2nd Revised and Updated Printing, Springer 1979, pp. 175 ff., SecCool software')] + sec += [SecCoolSolutionData(sFile='NBS, Water' ,sFolder='xPure',name='NBS' ,desc='NBS, Water' ,ref='Schmidt1979,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Paracryol' ,sFolder='xPure',name='PCL' ,desc='Paracryol, Aliphatic Hydrocarbon' ,ref='Sulzer Chemtech AG, SecCool software')] + sec += [SecCoolSolutionData(sFile='Paracryol' ,sFolder='xPure',name='PCL' ,desc='Paracryol, Aliphatic Hydrocarbon' ,ref='Sulzer1999,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Paratherm NF' ,sFolder='xPure',name='PNF' ,desc='Paratherm NF, Hydrotreated mineral oil' ,ref='Paratherm Ltd, SecCool software')] + sec += [SecCoolSolutionData(sFile='Paratherm NF' ,sFolder='xPure',name='PNF2' ,desc='Paratherm NF, Hydrotreated mineral oil' ,ref='Paratherm2013,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Tyfoxit 1.10' ,sFolder='xPure',name='TY10',desc='Tyfoxit 1.10, Potassium Acetate' ,ref='Tyforop Chemie Gmbh - Technical information 09/99, SecCool software')] + sec += [SecCoolSolutionData(sFile='Tyfoxit 1.10' ,sFolder='xPure',name='TY10',desc='Tyfoxit 1.10, Potassium Acetate' ,ref='Tyfoprop1999,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Tyfoxit 1.15' ,sFolder='xPure',name='TY15',desc='Tyfoxit 1.15, Potassium Acetate' ,ref='Tyforop Chemie Gmbh - Technical information 09/99, SecCool software')] + sec += [SecCoolSolutionData(sFile='Tyfoxit 1.15' ,sFolder='xPure',name='TY15',desc='Tyfoxit 1.15, Potassium Acetate' ,ref='Tyfoprop1999,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Tyfoxit 1.20' ,sFolder='xPure',name='TY20',desc='Tyfoxit 1.20, Potassium Acetate' ,ref='Tyforop Chemie Gmbh - Technical information 09/99, SecCool software')] + sec += [SecCoolSolutionData(sFile='Tyfoxit 1.20' ,sFolder='xPure',name='TY20',desc='Tyfoxit 1.20, Potassium Acetate' ,ref='Tyfoprop1999,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Tyfoxit 1.24' ,sFolder='xPure',name='TY24',desc='Tyfoxit 1.24, Potassium Acetate' ,ref='Tyforop Chemie Gmbh - Technical information 09/99, SecCool software')] + sec += [SecCoolSolutionData(sFile='Tyfoxit 1.24' ,sFolder='xPure',name='TY24',desc='Tyfoxit 1.24, Potassium Acetate' ,ref='Tyfoprop1999,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec S10' ,sFolder='xPure',name='ZS10',desc='Zitrec S10, Potassium formate/Sodium propionate' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec S10' ,sFolder='xPure',name='ZS10',desc='Zitrec S10, Potassium formate/Sodium propionate' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec S25' ,sFolder='xPure',name='ZS25',desc='Zitrec S25, Potassium formate/Sodium propionate' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec S25' ,sFolder='xPure',name='ZS25',desc='Zitrec S25, Potassium formate/Sodium propionate' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec S40' ,sFolder='xPure',name='ZS40',desc='Zitrec S40, Potassium formate/Sodium propionate' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec S40' ,sFolder='xPure',name='ZS40',desc='Zitrec S40, Potassium formate/Sodium propionate' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec S45' ,sFolder='xPure',name='ZS45',desc='Zitrec S45, Potassium formate/Sodium propionate' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec S45' ,sFolder='xPure',name='ZS45',desc='Zitrec S45, Potassium formate/Sodium propionate' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Zitrec S55' ,sFolder='xPure',name='ZS55',desc='Zitrec S55, Potassium formate/Sodium propionate' ,ref='Arteco, SecCool software')] + sec += [SecCoolSolutionData(sFile='Zitrec S55' ,sFolder='xPure',name='ZS55',desc='Zitrec S55, Potassium formate/Sodium propionate' ,ref='Arteco2010,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Syltherm XLT' ,sFolder='xPure',name='XLT2',desc='Syltherm XLT, Polydimethylsiloxan' ,ref='Dow Chemicals, SecCool software')] + sec += [SecCoolSolutionData(sFile='Syltherm XLT' ,sFolder='xPure',name='XLT2',desc='Syltherm XLT, Polydimethylsiloxan' ,ref='Dow1997,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Dowtherm J' ,sFolder='xPure',name='DowJ2',desc='Dowtherm J, Diethylbenzene mixture' ,ref='Dow Chemicals, SecCool software')] + sec += [SecCoolSolutionData(sFile='Dowtherm J' ,sFolder='xPure',name='DowJ2',desc='Dowtherm J, Diethylbenzene mixture' ,ref='Dow1997,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolSolutionData(sFile='Dowtherm Q' ,sFolder='xPure',name='DowQ2',desc='Dowtherm Q, Diphenylethane/alkylated aromatics' ,ref='Dow Chemicals, SecCool software')] + sec += [SecCoolSolutionData(sFile='Dowtherm Q' ,sFolder='xPure',name='DowQ2',desc='Dowtherm Q, Diphenylethane/alkylated aromatics' ,ref='Dow1997,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolIceData(sFile='IceEA' ,sFolder='xMass',name='IceEA',desc='Ice slurry with Ethanol' ,ref='Danish Technological Institute, SecCool software')] + sec += [SecCoolIceData(sFile='IceEA' ,sFolder='xMass',name='IceEA',desc='Ice slurry with Ethanol' ,ref='Kauffeld2001,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolIceData(sFile='IceNA' ,sFolder='xMass',name='IceNA',desc='Ice slurry with NaCl' ,ref='Danish Technological Institute, SecCool software')] + sec += [SecCoolIceData(sFile='IceNA' ,sFolder='xMass',name='IceNA',desc='Ice slurry with NaCl' ,ref='Kauffeld2001,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") - sec += [SecCoolIceData(sFile='IcePG' ,sFolder='xMass',name='IcePG',desc='Ice slurry with Propylene Glycol' ,ref='Danish Technological Institute, SecCool software')] + sec += [SecCoolIceData(sFile='IcePG' ,sFolder='xMass',name='IcePG',desc='Ice slurry with Propylene Glycol' ,ref='Kauffeld2001,Skovrup2013')] print(", {0}".format(sec[-1].name), end="") sec += [ThermogenVP1869()] @@ -421,7 +421,7 @@ class SecCoolIceData(SecCoolSolutionData): A base class that can be fed with a fluid ID from SecCool to read data files sitting in data/SecCool/xTables. """ - def __init__(self,sFile=None,sFolder=None,name=None,desc=None,ref='Danish Technological Institute, SecCool software'): + def __init__(self,sFile=None,sFolder=None,name=None,desc=None,ref='Danish Technological Institute,Skovrup2013'): SecCoolSolutionData.__init__(self,sFile=sFile,sFolder=sFolder,name=name,desc=desc,ref=ref) #self.density.xData,self.density.yData,self.density.data = self.getArray(dataID="Rho") @@ -520,7 +520,7 @@ class ThermogenVP1869(PureData,DigitalData): PureData.__init__(self) self.name = "TVP1869" self.description = "Thermogen VP 1869" - self.reference = "Hoechst, SecCool software" + self.reference = "Hoechst1995,Skovrup2013" self.Tmax = 20 + 273.15 self.Tmin = -80 + 273.15 @@ -569,7 +569,7 @@ class Freezium(DigitalData): self.name = "FRE" self.description = "Freezium, Potassium Formate" - self.reference = "Kemira Chemicals OY, SecCool software" + self.reference = "Kemira1998,Skovrup2013" self.Tmin = -40 + 273.00 self.Tmax = +40 + 273.00 @@ -668,7 +668,7 @@ class AS10(PureData,DigitalData): PureData.__init__(self) self.name = "AS10" self.description = "Aspen Temper -10, Potassium acetate/formate" - self.reference = "Aspen Petroleum AB, SecCool software" + self.reference = "Aspen2001,Skovrup2013" self.Tmax = 30 + 273.15 self.Tmin = -10 + 273.15 @@ -704,7 +704,7 @@ class AS20(PureData,DigitalData): PureData.__init__(self) self.name = "AS20" self.description = "Aspen Temper -20, Potassium acetate/formate" - self.reference = "Aspen Petroleum AB, SecCool software" + self.reference = "Aspen2001,Skovrup2013" self.Tmax = 30 + 273.15 self.Tmin = -20 + 273.15 @@ -752,7 +752,7 @@ class AS30(PureData,DigitalData): PureData.__init__(self) self.name = "AS30" self.description = "Aspen Temper -30, Potassium acetate/formate" - self.reference = "Aspen Petroleum AB, SecCool software" + self.reference = "Aspen2001,Skovrup2013" self.Tmax = 30 + 273.15 self.Tmin = -30 + 273.15 @@ -800,7 +800,7 @@ class AS40(PureData,DigitalData): PureData.__init__(self) self.name = "AS40" self.description = "Aspen Temper -40, Potassium acetate/formate" - self.reference = "Aspen Petroleum AB, SecCool software" + self.reference = "Aspen2001,Skovrup2013" self.Tmax = 30 + 273.15 self.Tmin = -40 + 273.15 @@ -847,7 +847,7 @@ class AS55(PureData,DigitalData): PureData.__init__(self) self.name = "AS55" self.description = "Aspen Temper -55, Potassium acetate/formate" - self.reference = "Aspen Petroleum AB, SecCool software" + self.reference = "Aspen2001,Skovrup2013" self.Tmax = 30 + 273.15 self.Tmin = -55 + 273.15 diff --git a/dev/incompressible_liquids/CPIncomp/SolutionFluids.py b/dev/incompressible_liquids/CPIncomp/SolutionFluids.py index d0d5d5c0..ce4bd35f 100644 --- a/dev/incompressible_liquids/CPIncomp/SolutionFluids.py +++ b/dev/incompressible_liquids/CPIncomp/SolutionFluids.py @@ -11,7 +11,7 @@ class LiBrData(SolutionData): def __init__(self): SolutionData.__init__(self) self.name = "LiBr" - self.description = "Lithium-Bromide solution from Patek2006" + self.description = "Aqueous lithium-bromide solution " self.reference = "Patek2006" self.temperature.data = np.array([2.73000e+02, 2.84947e+02, 2.96895e+02, 3.08842e+02, 3.20789e+02, 3.32737e+02, 3.44684e+02, 3.56632e+02, 3.68579e+02, 3.80526e+02, 3.92474e+02, 4.04421e+02, 4.16368e+02, 4.28316e+02, 4.40263e+02, 4.52211e+02, 4.64158e+02, 4.76105e+02, 4.88053e+02, 5.00000e+02]) # Kelvin diff --git a/dev/incompressible_liquids/CPIncomp/WriterObjects.py b/dev/incompressible_liquids/CPIncomp/WriterObjects.py index 613b0e67..d2867cc5 100644 --- a/dev/incompressible_liquids/CPIncomp/WriterObjects.py +++ b/dev/incompressible_liquids/CPIncomp/WriterObjects.py @@ -10,10 +10,10 @@ from matplotlib.patches import Rectangle from matplotlib.ticker import MaxNLocator from matplotlib.backends.backend_pdf import PdfPages import itertools -from datetime import datetime import matplotlib import csv from CoolProp.BibtexParser import BibTeXerClass +from warnings import warn class SolutionDataWriter(object): """ @@ -23,9 +23,7 @@ class SolutionDataWriter(object): information came from. """ def __init__(self): - self.bibtexer = BibTeXerClass() - self.bibtexer.loadLibrary('../../Web/fluid_properties/Incompressibles.bib') - pass + self.bibtexer = BibTeXerClass('../../Web/fluid_properties/Incompressibles.bib') def fitAll(self, fluidObject=SolutionData()): @@ -663,6 +661,9 @@ class SolutionDataWriter(object): axVal.plot(pFree, zFree, alpha=0.25, ls=':', color=fitFormatter["color"]) if not zError is None and not axErr is None: + #formatter = matplotlib.ticker.ScalarFormatter(useOffset=False) + #axErr.yaxis.set_major_formatter(formatter) + #axErr.yaxis.get_major_formatter().useOffset=False axErr.plot(pData, zError, label='error' , **errorFormatter) elif not axErr is None: @@ -737,9 +738,25 @@ class SolutionDataWriter(object): myAnnotate('Description: ',solObj.description,x=x,y=y); x += .0; y -= dy # TODO: Debug bibtexer - myAnnotate('Source: ',solObj.reference,x=x,y=y); x += .0; y -= dy - #myAnnotate('Source: ',self.bibtexer.entry2txt(solObj.reference),x=x,y=y); x += .0; y -= dy + refs = solObj.reference.split(",") + maxLength = 75 + for i in range(len(refs)): + refs[i] = refs[i].strip() + try: + refs[i] = self.bibtexer.getEntry(key=refs[i], fmt='plaintext').strip() + except Exception as e: + warn("Your string \"{0}\"was not a valid Bibtex key, I will use it directly: {1}".format(refs[i],e)) + pass + if len(refs[i])>maxLength: + refs[i] = refs[i][0:maxLength-3]+u'...' + if i==0: + myAnnotate('Source: ',refs[i],x=x,y=y); x += .0 #; y -= 2*dy + elif i==1: + myAnnotate( ' ',refs[i],x=x,y=y-dy); x += .0 #; y -= 2*dy + + y -= 2*dy + yRestart = y myAnnotate('Temperature: ',u'{0} \u00B0C to {1} \u00B0C'.format(solObj.Tmin-273.15, solObj.Tmax-273.15),x=x,y=y); x += .0; y -= dy conc = False if solObj.xid==solObj.ifrac_mass: conc=True @@ -762,7 +779,7 @@ class SolutionDataWriter(object): myAnnotate('Spec. Heat: ','no information',x=x,y=y) x += .0; y -= dy - x = xStart + dx; y = yStart-dy-dy + x = xStart + dx; y = yRestart if solObj.conductivity.source!=solObj.conductivity.SOURCE_NOT_SET: myAnnotate('Th. Cond.: ',u'{0} to {1} {2}'.format(solObj.conductivity.source, solObj.conductivity.type, solObj.conductivity.coeffs.shape),x=x,y=y) else: @@ -975,7 +992,7 @@ class SolutionDataWriter(object): table_axis.legend( legVal, legKey, - bbox_to_anchor=(0.0, -0.025, 1., -0.025), + bbox_to_anchor=(0.0, -0.03, 1., -0.03), ncol=len(legKey), mode="expand", borderaxespad=0., numpoints=1) #table_axis.legend(handles, labels, bbox_to_anchor=(0.0, -0.1), loc=2, ncol=3) diff --git a/dev/incompressible_liquids/all_incompressibles.py b/dev/incompressible_liquids/all_incompressibles.py index ad75e00a..b6fd330b 100644 --- a/dev/incompressible_liquids/all_incompressibles.py +++ b/dev/incompressible_liquids/all_incompressibles.py @@ -65,23 +65,13 @@ if __name__ == '__main__': if runTest: solObjs = [] from CPIncomp.SecCoolFluids import SecCoolSolutionData,SecCoolIceData,ThermogenVP1869 - from CPIncomp.PureFluids import Texatherm22 - solObjs += [SecCoolSolutionData(sFile='Melinder, Ammonia' ,sFolder='xMass',name='MAM2',desc='Melinder, Ammonia' ,ref='Melinder-BOOK-2010, SecCool software')] - solObjs += [SecCoolIceData(sFile='IceNA' ,sFolder='xMass',name='IceNA',desc='Ice slurry with NaCl' ,ref='Danish Technological Institute, SecCool software')] - #solObjs = [Freezium()] - #solObjs[0].density.DEBUG = True - #solObjs[0].specific_heat.DEBUG = True - #solObjs[0].conductivity.DEBUG = True - #solObjs[0].viscosity.DEBUG = True - #solObjs[0].T_freeze.DEBUG = True - #writer.fitSecCoolList(solObjs) - solObjs = [ThermogenVP1869()]#,Therminol72()] - solObjs[0].viscosity.DEBUG=True - #solObjs[0].saturation_pressure.DEBUG=True - # - ##from CPIncomp.ExampleObjects import SecCoolExample - ##solObjs = [SecCoolExample()] - #writer.fitFluidList(solObjs) + from CPIncomp.PureFluids import PMR + #from CPIncomp.PureFluids import Texatherm22 + #solObjs += [SecCoolSolutionData(sFile='Melinder, Ethanol' ,sFolder='xMass',name='MEA2',desc='Melinder, Ethanol' ,ref='Melinder2010,Skovrup2013')] + #solObjs += [SecCoolSolutionData(sFile='Melinder, Ammonia' ,sFolder='xMass',name='MAM2',desc='Melinder, Ammonia' ,ref='Melinder2010,Skovrup2013')] + + solObjs += [PMR()] + writer.fitSecCoolList(solObjs) writer.writeFluidList(solObjs) writer.writeReportList(solObjs) diff --git a/dev/incompressible_liquids/json/AEG.json b/dev/incompressible_liquids/json/AEG.json index 92a6c549..5dbb2abe 100644 --- a/dev/incompressible_liquids/json/AEG.json +++ b/dev/incompressible_liquids/json/AEG.json @@ -109,7 +109,7 @@ "type": "notdefined" }, "name": "AEG", - "reference": "ASHRAE Fundamentals Handbook 2001, SecCool software", + "reference": "ASHRAE2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AKF.json b/dev/incompressible_liquids/json/AKF.json index a5f25a62..471226bf 100644 --- a/dev/incompressible_liquids/json/AKF.json +++ b/dev/incompressible_liquids/json/AKF.json @@ -133,7 +133,7 @@ "type": "notdefined" }, "name": "AKF", - "reference": "Clariant GmbH Jan. 2000, SecCool software", + "reference": "Clariant2000,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AL.json b/dev/incompressible_liquids/json/AL.json index 3f8121cc..77eebf22 100644 --- a/dev/incompressible_liquids/json/AL.json +++ b/dev/incompressible_liquids/json/AL.json @@ -133,7 +133,7 @@ "type": "notdefined" }, "name": "AL", - "reference": "Clariant GmbH Jan. 2000, SecCool software", + "reference": "Clariant2000,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AN.json b/dev/incompressible_liquids/json/AN.json index 41b448b7..1f7b8659 100644 --- a/dev/incompressible_liquids/json/AN.json +++ b/dev/incompressible_liquids/json/AN.json @@ -133,7 +133,7 @@ "type": "notdefined" }, "name": "AN", - "reference": "Clariant GmbH Jan. 2000, SecCool software", + "reference": "Clariant2000,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/APG.json b/dev/incompressible_liquids/json/APG.json index 5854040e..cea76439 100644 --- a/dev/incompressible_liquids/json/APG.json +++ b/dev/incompressible_liquids/json/APG.json @@ -109,7 +109,7 @@ "type": "notdefined" }, "name": "APG", - "reference": "ASHRAE Fundamentals Handbook 2001, SecCool software", + "reference": "ASHRAE2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AS10.json b/dev/incompressible_liquids/json/AS10.json index 4116a6f8..d1a51f6b 100644 --- a/dev/incompressible_liquids/json/AS10.json +++ b/dev/incompressible_liquids/json/AS10.json @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "AS10", - "reference": "Aspen Petroleum AB, SecCool software", + "reference": "Aspen2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AS20.json b/dev/incompressible_liquids/json/AS20.json index d4289d2a..de469b3c 100644 --- a/dev/incompressible_liquids/json/AS20.json +++ b/dev/incompressible_liquids/json/AS20.json @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "AS20", - "reference": "Aspen Petroleum AB, SecCool software", + "reference": "Aspen2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AS30.json b/dev/incompressible_liquids/json/AS30.json index 76ae437a..7a8e8c4a 100644 --- a/dev/incompressible_liquids/json/AS30.json +++ b/dev/incompressible_liquids/json/AS30.json @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "AS30", - "reference": "Aspen Petroleum AB, SecCool software", + "reference": "Aspen2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AS40.json b/dev/incompressible_liquids/json/AS40.json index 3600fc83..519c1e9e 100644 --- a/dev/incompressible_liquids/json/AS40.json +++ b/dev/incompressible_liquids/json/AS40.json @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "AS40", - "reference": "Aspen Petroleum AB, SecCool software", + "reference": "Aspen2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/AS55.json b/dev/incompressible_liquids/json/AS55.json index e1adb2ae..fd4c991f 100644 --- a/dev/incompressible_liquids/json/AS55.json +++ b/dev/incompressible_liquids/json/AS55.json @@ -48,7 +48,7 @@ "type": "notdefined" }, "name": "AS55", - "reference": "Aspen Petroleum AB, SecCool software", + "reference": "Aspen2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/DEB.json b/dev/incompressible_liquids/json/DEB.json index 26c77ce8..414a7d4e 100644 --- a/dev/incompressible_liquids/json/DEB.json +++ b/dev/incompressible_liquids/json/DEB.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "DEB", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/DowJ.json b/dev/incompressible_liquids/json/DowJ.json index 063f2034..e9cece69 100644 --- a/dev/incompressible_liquids/json/DowJ.json +++ b/dev/incompressible_liquids/json/DowJ.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "DowJ", - "reference": "Dow Chemicals data sheet", + "reference": "Dow1997", "saturation_pressure": { "coeffs": [ -2.573167e+02, diff --git a/dev/incompressible_liquids/json/DowJ2.json b/dev/incompressible_liquids/json/DowJ2.json index 7d0ffbba..6a050a71 100644 --- a/dev/incompressible_liquids/json/DowJ2.json +++ b/dev/incompressible_liquids/json/DowJ2.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "DowJ2", - "reference": "Dow Chemicals, SecCool software", + "reference": "Dow1997,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/DowQ.json b/dev/incompressible_liquids/json/DowQ.json index e0d6c205..c864842d 100644 --- a/dev/incompressible_liquids/json/DowQ.json +++ b/dev/incompressible_liquids/json/DowQ.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "DowQ", - "reference": "Dow Chemicals data sheet", + "reference": "Dow1997", "saturation_pressure": { "coeffs": [ -3.242462e+02, diff --git a/dev/incompressible_liquids/json/DowQ2.json b/dev/incompressible_liquids/json/DowQ2.json index b0c6fa5f..bfa69c8a 100644 --- a/dev/incompressible_liquids/json/DowQ2.json +++ b/dev/incompressible_liquids/json/DowQ2.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "DowQ2", - "reference": "Dow Chemicals, SecCool software", + "reference": "Dow1997,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ExampleSolution.json b/dev/incompressible_liquids/json/ExampleSolution.json index 43b69f21..88ec0926 100644 --- a/dev/incompressible_liquids/json/ExampleSolution.json +++ b/dev/incompressible_liquids/json/ExampleSolution.json @@ -95,7 +95,7 @@ "type": "notdefined" }, "name": "ExampleSolution", - "reference": "SecCool software", + "reference": "SecCool software,Skovrup2013", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/FRE.json b/dev/incompressible_liquids/json/FRE.json index c0515f0b..171f96e9 100644 --- a/dev/incompressible_liquids/json/FRE.json +++ b/dev/incompressible_liquids/json/FRE.json @@ -54,7 +54,7 @@ "type": "notdefined" }, "name": "FRE", - "reference": "Kemira Chemicals OY, SecCool software", + "reference": "Kemira1998,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/GKN.json b/dev/incompressible_liquids/json/GKN.json index 7cf13f05..1d053bcd 100644 --- a/dev/incompressible_liquids/json/GKN.json +++ b/dev/incompressible_liquids/json/GKN.json @@ -109,7 +109,7 @@ "type": "notdefined" }, "name": "GKN", - "reference": "pro KUEHLSOLE GmbH, SecCool software", + "reference": "PKS2005,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/HC10.json b/dev/incompressible_liquids/json/HC10.json index e912d732..9dd35aa6 100644 --- a/dev/incompressible_liquids/json/HC10.json +++ b/dev/incompressible_liquids/json/HC10.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HC10", - "reference": "Dynalene data sheet", + "reference": "Dynalene2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/HC20.json b/dev/incompressible_liquids/json/HC20.json index 4f65de8b..11541c8f 100644 --- a/dev/incompressible_liquids/json/HC20.json +++ b/dev/incompressible_liquids/json/HC20.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HC20", - "reference": "Dynalene data sheet", + "reference": "Dynalene2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/HC30.json b/dev/incompressible_liquids/json/HC30.json index 4fdfedc8..fcd9bfe8 100644 --- a/dev/incompressible_liquids/json/HC30.json +++ b/dev/incompressible_liquids/json/HC30.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HC30", - "reference": "Dynalene data sheet", + "reference": "Dynalene2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/HC40.json b/dev/incompressible_liquids/json/HC40.json index c42edf6c..ef768f13 100644 --- a/dev/incompressible_liquids/json/HC40.json +++ b/dev/incompressible_liquids/json/HC40.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HC40", - "reference": "Dynalene data sheet", + "reference": "Dynalene2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/HC50.json b/dev/incompressible_liquids/json/HC50.json index 4364cff3..9494d331 100644 --- a/dev/incompressible_liquids/json/HC50.json +++ b/dev/incompressible_liquids/json/HC50.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HC50", - "reference": "Dynalene data sheet", + "reference": "Dynalene2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/HCB.json b/dev/incompressible_liquids/json/HCB.json index 8eb1616f..5abfd214 100644 --- a/dev/incompressible_liquids/json/HCB.json +++ b/dev/incompressible_liquids/json/HCB.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HCB", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/HCM.json b/dev/incompressible_liquids/json/HCM.json index bf662386..c12209a2 100644 --- a/dev/incompressible_liquids/json/HCM.json +++ b/dev/incompressible_liquids/json/HCM.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HCM", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/HFE.json b/dev/incompressible_liquids/json/HFE.json index 19b4905d..7aa16acb 100644 --- a/dev/incompressible_liquids/json/HFE.json +++ b/dev/incompressible_liquids/json/HFE.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HFE", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/HFE2.json b/dev/incompressible_liquids/json/HFE2.json index 62941384..80c41f99 100644 --- a/dev/incompressible_liquids/json/HFE2.json +++ b/dev/incompressible_liquids/json/HFE2.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "HFE2", - "reference": "3M Novec, SecCool software", + "reference": "3M2007,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/HY20.json b/dev/incompressible_liquids/json/HY20.json index 3b922fea..bbf89878 100644 --- a/dev/incompressible_liquids/json/HY20.json +++ b/dev/incompressible_liquids/json/HY20.json @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "HY20", - "reference": "Hydro Chemicals", + "reference": "Hydro2000", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/HY30.json b/dev/incompressible_liquids/json/HY30.json index 83d782e6..62a47c01 100644 --- a/dev/incompressible_liquids/json/HY30.json +++ b/dev/incompressible_liquids/json/HY30.json @@ -35,7 +35,7 @@ ], "type": "polynomial" }, - "description": "HYCOOL 30, Potassium formate", + "description": "HyCool 30, Potassium formate", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -45,7 +45,7 @@ "type": "notdefined" }, "name": "HY30", - "reference": "Hydro Chemicals", + "reference": "Hydro2000", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/HY40.json b/dev/incompressible_liquids/json/HY40.json index e00bc149..47608a3a 100644 --- a/dev/incompressible_liquids/json/HY40.json +++ b/dev/incompressible_liquids/json/HY40.json @@ -29,7 +29,7 @@ ], "type": "polynomial" }, - "description": "HYCOOL 40, Potassium formate", + "description": "HyCool 40, Potassium formate", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HY40", - "reference": "Hydro Chemicals", + "reference": "Hydro2000", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/HY45.json b/dev/incompressible_liquids/json/HY45.json index 6466bdda..05bff2c2 100644 --- a/dev/incompressible_liquids/json/HY45.json +++ b/dev/incompressible_liquids/json/HY45.json @@ -29,7 +29,7 @@ ], "type": "polynomial" }, - "description": "HYCOOL 45, Potassium formate", + "description": "HyCool 45, Potassium formate", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HY45", - "reference": "Hydro Chemicals", + "reference": "Hydro2000", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/HY50.json b/dev/incompressible_liquids/json/HY50.json index 4c36fd15..911bd2af 100644 --- a/dev/incompressible_liquids/json/HY50.json +++ b/dev/incompressible_liquids/json/HY50.json @@ -29,7 +29,7 @@ ], "type": "polynomial" }, - "description": "HYCOOL 50, Potassium formate", + "description": "HyCool 50, Potassium formate", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "HY50", - "reference": "Hydro Chemicals", + "reference": "Hydro2000", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/IceEA.json b/dev/incompressible_liquids/json/IceEA.json index 7b38d87d..d052fcd6 100644 --- a/dev/incompressible_liquids/json/IceEA.json +++ b/dev/incompressible_liquids/json/IceEA.json @@ -91,7 +91,7 @@ "type": "notdefined" }, "name": "IceEA", - "reference": "Danish Technological Institute, SecCool software", + "reference": "Kauffeld2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/IceNA.json b/dev/incompressible_liquids/json/IceNA.json index a7125a86..d6581960 100644 --- a/dev/incompressible_liquids/json/IceNA.json +++ b/dev/incompressible_liquids/json/IceNA.json @@ -91,7 +91,7 @@ "type": "notdefined" }, "name": "IceNA", - "reference": "Danish Technological Institute, SecCool software", + "reference": "Kauffeld2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/IcePG.json b/dev/incompressible_liquids/json/IcePG.json index 90d042ad..d37758eb 100644 --- a/dev/incompressible_liquids/json/IcePG.json +++ b/dev/incompressible_liquids/json/IcePG.json @@ -91,7 +91,7 @@ "type": "notdefined" }, "name": "IcePG", - "reference": "Danish Technological Institute, SecCool software", + "reference": "Kauffeld2001,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/LiBr.json b/dev/incompressible_liquids/json/LiBr.json index 99c02d2a..ed24e075 100644 --- a/dev/incompressible_liquids/json/LiBr.json +++ b/dev/incompressible_liquids/json/LiBr.json @@ -85,7 +85,7 @@ ], "type": "polynomial" }, - "description": "Lithium-Bromide solution from Patek2006", + "description": "Aqueous lithium-bromide solution ", "mass2input": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MAM2.json b/dev/incompressible_liquids/json/MAM2.json index 17b03f24..69d28336 100644 --- a/dev/incompressible_liquids/json/MAM2.json +++ b/dev/incompressible_liquids/json/MAM2.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.292564e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.582814e+00, + 1.512284e-01, + -3.735343e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.931500e+02, @@ -87,7 +89,7 @@ "type": "notdefined" }, "name": "MAM2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MCA2.json b/dev/incompressible_liquids/json/MCA2.json index 444b2c13..ce63f684 100644 --- a/dev/incompressible_liquids/json/MCA2.json +++ b/dev/incompressible_liquids/json/MCA2.json @@ -1,11 +1,14 @@ { "T_freeze": { "coeffs": [ - 9.308955e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.653313e+00, + -1.078524e+00, + 5.849055e+00, + -1.617841e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.031500e+02, @@ -95,7 +98,7 @@ "type": "notdefined" }, "name": "MCA2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MEA2.json b/dev/incompressible_liquids/json/MEA2.json index 9c16ba52..0455b474 100644 --- a/dev/incompressible_liquids/json/MEA2.json +++ b/dev/incompressible_liquids/json/MEA2.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MEA2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MEG2.json b/dev/incompressible_liquids/json/MEG2.json index c1213315..3bb25b39 100644 --- a/dev/incompressible_liquids/json/MEG2.json +++ b/dev/incompressible_liquids/json/MEG2.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MEG2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MGL2.json b/dev/incompressible_liquids/json/MGL2.json index b90240db..c558f094 100644 --- a/dev/incompressible_liquids/json/MGL2.json +++ b/dev/incompressible_liquids/json/MGL2.json @@ -1,11 +1,16 @@ { "T_freeze": { "coeffs": [ - 9.321636e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.643904e+00, + -5.983132e-01, + 3.208226e+00, + -1.038046e+01, + 1.531831e+01, + -9.146761e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.131500e+02, @@ -95,7 +100,7 @@ "type": "notdefined" }, "name": "MGL2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MKA2.json b/dev/incompressible_liquids/json/MKA2.json index dafc7634..0d6ef223 100644 --- a/dev/incompressible_liquids/json/MKA2.json +++ b/dev/incompressible_liquids/json/MKA2.json @@ -1,11 +1,15 @@ { "T_freeze": { "coeffs": [ - 9.317439e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.643432e+00, + -8.156028e-01, + 4.484583e+00, + -1.364947e+01, + 1.090680e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.031500e+02, @@ -95,7 +99,7 @@ "type": "notdefined" }, "name": "MKA2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MKC2.json b/dev/incompressible_liquids/json/MKC2.json index 329c7460..cb990ea0 100644 --- a/dev/incompressible_liquids/json/MKC2.json +++ b/dev/incompressible_liquids/json/MKC2.json @@ -1,11 +1,16 @@ { "T_freeze": { "coeffs": [ - 9.337457e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.610043e+00, + 1.018931e-01, + -3.926708e+00, + 2.335889e+01, + -6.343317e+01, + 5.565994e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.031500e+02, @@ -95,7 +100,7 @@ "type": "notdefined" }, "name": "MKC2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MMA2.json b/dev/incompressible_liquids/json/MMA2.json index 223153e6..accf6fcc 100644 --- a/dev/incompressible_liquids/json/MMA2.json +++ b/dev/incompressible_liquids/json/MMA2.json @@ -1,11 +1,16 @@ { "T_freeze": { "coeffs": [ - 9.307502e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.612846e+00, + -2.775615e-01, + 1.946035e-01, + -2.014309e+00, + 3.148512e+00, + -2.580098e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.931500e+02, @@ -95,7 +100,7 @@ "type": "notdefined" }, "name": "MMA2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MMG2.json b/dev/incompressible_liquids/json/MMG2.json index 4c56d907..c916d78a 100644 --- a/dev/incompressible_liquids/json/MMG2.json +++ b/dev/incompressible_liquids/json/MMG2.json @@ -1,11 +1,14 @@ { "T_freeze": { "coeffs": [ - 9.332731e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.609983e+00, + -1.321822e-01, + -1.458488e+00, + -3.263464e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.031500e+02, @@ -95,7 +98,7 @@ "type": "notdefined" }, "name": "MMG2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MNA2.json b/dev/incompressible_liquids/json/MNA2.json index e277feff..35d67c0b 100644 --- a/dev/incompressible_liquids/json/MNA2.json +++ b/dev/incompressible_liquids/json/MNA2.json @@ -95,7 +95,7 @@ "type": "notdefined" }, "name": "MNA2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MPG2.json b/dev/incompressible_liquids/json/MPG2.json index 2bc9cf9e..482871af 100644 --- a/dev/incompressible_liquids/json/MPG2.json +++ b/dev/incompressible_liquids/json/MPG2.json @@ -1,11 +1,16 @@ { "T_freeze": { "coeffs": [ - 9.314963e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.551677e+00, + 9.351475e-01, + -6.934728e+00, + 2.055368e+01, + -2.940299e+01, + 1.483940e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.131500e+02, @@ -95,7 +100,7 @@ "type": "notdefined" }, "name": "MPG2", - "reference": "Melinder-BOOK-2010, SecCool software", + "reference": "Melinder2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/NBS.json b/dev/incompressible_liquids/json/NBS.json index 79e230ec..bfea1065 100644 --- a/dev/incompressible_liquids/json/NBS.json +++ b/dev/incompressible_liquids/json/NBS.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "NBS", - "reference": "Properties of Water and Steam in SI-Units, 2nd Revised and Updated Printing, Springer 1979, pp. 175 ff., SecCool software", + "reference": "Schmidt1979,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/NaK.json b/dev/incompressible_liquids/json/NaK.json index c1d3b1c7..af430e55 100644 --- a/dev/incompressible_liquids/json/NaK.json +++ b/dev/incompressible_liquids/json/NaK.json @@ -29,7 +29,7 @@ ], "type": "polynomial" }, - "description": "NitrateSalt", + "description": "Nitrate salt, heat transfer fluid based on 60% NaNO3 and 40% KNO3", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "NaK", - "reference": "Solar Power Tower Design Basis Document, Alexis B. Zavoico, Sandia Labs, USA", + "reference": "Zavoico2001", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PCL.json b/dev/incompressible_liquids/json/PCL.json index bf6da345..b3d851cf 100644 --- a/dev/incompressible_liquids/json/PCL.json +++ b/dev/incompressible_liquids/json/PCL.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "PCL", - "reference": "Sulzer Chemtech AG, SecCool software", + "reference": "Sulzer1999,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PCR.json b/dev/incompressible_liquids/json/PCR.json new file mode 100644 index 00000000..93cc2066 --- /dev/null +++ b/dev/incompressible_liquids/json/PCR.json @@ -0,0 +1,96 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 4.931500e+02, + "Tmin": 1.731500e+02, + "TminPsat": 3.581500e+02, + "conductivity": { + "coeffs": [ + [ + 1.631059e-01 + ], + [ + -7.723938e-05 + ], + [ + -9.279440e-09 + ], + [ + 9.384425e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.122801e+03 + ], + [ + -9.963599e-01 + ], + [ + -4.931404e-05 + ], + [ + 6.240201e-08 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm CR", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PCR", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + -3.500387e+02, + -1.263655e+00, + 5.633270e+00 + ], + "type": "logexponential" + }, + "specific_heat": { + "coeffs": [ + [ + 7.239249e+02 + ], + [ + 4.715865e+00 + ], + [ + -3.019390e-03 + ], + [ + 2.864835e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 5.082283e+02, + -9.138133e+01, + 1.654139e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PGLT.json b/dev/incompressible_liquids/json/PGLT.json new file mode 100644 index 00000000..440802db --- /dev/null +++ b/dev/incompressible_liquids/json/PGLT.json @@ -0,0 +1,105 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 5.881500e+02, + "Tmin": 2.581500e+02, + "TminPsat": 4.731500e+02, + "conductivity": { + "coeffs": [ + [ + 1.570900e-01 + ], + [ + -8.237954e-05 + ], + [ + 5.104634e-09 + ], + [ + -3.543260e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.081655e+03 + ], + [ + -6.968367e-01 + ], + [ + -1.680946e-06 + ], + [ + 1.614770e-09 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm GLT", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PGLT", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + [ + 1.029911e+01 + ], + [ + -7.539220e-02 + ], + [ + 2.280184e-04 + ], + [ + -1.679013e-07 + ] + ], + "type": "exppolynomial" + }, + "specific_heat": { + "coeffs": [ + [ + 1.158514e+03 + ], + [ + 2.031880e+00 + ], + [ + 2.669012e-03 + ], + [ + -1.975084e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 9.153925e+02, + -1.626026e+02, + 1.710192e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PHE.json b/dev/incompressible_liquids/json/PHE.json new file mode 100644 index 00000000..2a3b8004 --- /dev/null +++ b/dev/incompressible_liquids/json/PHE.json @@ -0,0 +1,105 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 6.031500e+02, + "Tmin": 2.731500e+02, + "TminPsat": 5.591500e+02, + "conductivity": { + "coeffs": [ + [ + 1.563268e-01 + ], + [ + -8.253507e-05 + ], + [ + 5.264080e-09 + ], + [ + -3.543260e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.049547e+03 + ], + [ + -6.336424e-01 + ], + [ + -1.734667e-05 + ], + [ + 1.346206e-08 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm HE", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PHE", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + [ + 2.095865e+03 + ], + [ + -1.084546e+01 + ], + [ + 1.872153e-02 + ], + [ + -1.073661e-05 + ] + ], + "type": "exppolynomial" + }, + "specific_heat": { + "coeffs": [ + [ + 5.783817e+02 + ], + [ + 5.381708e+00 + ], + [ + -4.198314e-03 + ], + [ + 3.228878e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 9.416352e+02, + -1.670752e+02, + 1.674234e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PHR.json b/dev/incompressible_liquids/json/PHR.json new file mode 100644 index 00000000..3ab2ca75 --- /dev/null +++ b/dev/incompressible_liquids/json/PHR.json @@ -0,0 +1,105 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 6.431500e+02, + "Tmin": 2.581500e+02, + "TminPsat": 4.701500e+02, + "conductivity": { + "coeffs": [ + [ + 1.057443e-01 + ], + [ + 1.094539e-04 + ], + [ + -2.440677e-07 + ], + [ + 3.113233e-11 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.184850e+03 + ], + [ + -7.644911e-01 + ], + [ + -1.218437e-05 + ], + [ + 9.408965e-09 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm HR", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PHR", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + [ + -2.614839e+01 + ], + [ + 1.237943e-01 + ], + [ + -1.354870e-04 + ], + [ + 5.544196e-08 + ] + ], + "type": "exppolynomial" + }, + "specific_heat": { + "coeffs": [ + [ + 1.582541e+03 + ], + [ + 1.287975e-01 + ], + [ + 4.655061e-03 + ], + [ + -3.240899e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 7.500522e+02, + -1.738728e+02, + 1.679323e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PK2.json b/dev/incompressible_liquids/json/PK2.json index f3f709cb..4dd4453d 100644 --- a/dev/incompressible_liquids/json/PK2.json +++ b/dev/incompressible_liquids/json/PK2.json @@ -109,7 +109,7 @@ "type": "notdefined" }, "name": "PK2", - "reference": "pro KUEHLSOLE GmbH, SecCool software", + "reference": "PKS2005,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PKL.json b/dev/incompressible_liquids/json/PKL.json index 68ae924f..3d853e68 100644 --- a/dev/incompressible_liquids/json/PKL.json +++ b/dev/incompressible_liquids/json/PKL.json @@ -109,7 +109,7 @@ "type": "notdefined" }, "name": "PKL", - "reference": "pro KUEHLSOLE GmbH, SecCool software", + "reference": "PKS2005,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PLR.json b/dev/incompressible_liquids/json/PLR.json new file mode 100644 index 00000000..b14c2fe2 --- /dev/null +++ b/dev/incompressible_liquids/json/PLR.json @@ -0,0 +1,105 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 5.031500e+02, + "Tmin": 1.881500e+02, + "TminPsat": 3.681500e+02, + "conductivity": { + "coeffs": [ + [ + 1.752725e-01 + ], + [ + -8.246367e-05 + ], + [ + 6.437195e-09 + ], + [ + -5.383617e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 9.779182e+02 + ], + [ + -7.391660e-01 + ], + [ + 1.022684e-05 + ], + [ + -1.054994e-08 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm LR", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PLR", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + [ + 9.986393e+01 + ], + [ + -7.381715e-01 + ], + [ + 1.892038e-03 + ], + [ + -1.535903e-06 + ] + ], + "type": "exppolynomial" + }, + "specific_heat": { + "coeffs": [ + [ + 6.687819e+02 + ], + [ + 5.676328e+00 + ], + [ + -5.336007e-03 + ], + [ + 5.156555e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 6.701186e+02, + -1.187849e+02, + 1.717146e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PMR.json b/dev/incompressible_liquids/json/PMR.json new file mode 100644 index 00000000..01286de1 --- /dev/null +++ b/dev/incompressible_liquids/json/PMR.json @@ -0,0 +1,105 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 5.881500e+02, + "Tmin": 2.331500e+02, + "TminPsat": 4.651500e+02, + "conductivity": { + "coeffs": [ + [ + 1.134095e-01 + ], + [ + 1.536496e-04 + ], + [ + -2.870616e-07 + ], + [ + -7.117922e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.296943e+03 + ], + [ + -2.418344e+00 + ], + [ + 2.615453e-03 + ], + [ + -5.409719e-07 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm MR", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PMR", + "reference": "Paratherm2013", + "saturation_pressure": { + "coeffs": [ + [ + -1.233687e+01 + ], + [ + 4.439058e-02 + ], + [ + 1.824763e-05 + ], + [ + -4.341090e-08 + ] + ], + "type": "exppolynomial" + }, + "specific_heat": { + "coeffs": [ + [ + 1.561140e+03 + ], + [ + 3.575435e+00 + ], + [ + -3.740280e-03 + ], + [ + 3.091760e-06 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + 8.245834e+02, + -1.416506e+02, + 1.698899e+01 + ], + "type": "exponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 1.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PMS1.json b/dev/incompressible_liquids/json/PMS1.json index cea3ea2f..a2314b8d 100644 --- a/dev/incompressible_liquids/json/PMS1.json +++ b/dev/incompressible_liquids/json/PMS1.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "PMS1", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PMS2.json b/dev/incompressible_liquids/json/PMS2.json index 709f7b85..c16cad12 100644 --- a/dev/incompressible_liquids/json/PMS2.json +++ b/dev/incompressible_liquids/json/PMS2.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "PMS2", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/PNF.json b/dev/incompressible_liquids/json/PNF.json index 35dfe45b..aee0f1b6 100644 --- a/dev/incompressible_liquids/json/PNF.json +++ b/dev/incompressible_liquids/json/PNF.json @@ -4,22 +4,22 @@ "type": "notdefined" }, "Tbase": 0.000000e+00, - "Tmax": 5.931500e+02, + "Tmax": 5.881500e+02, "Tmin": 2.631500e+02, - "TminPsat": 5.931500e+02, + "TminPsat": 4.661500e+02, "conductivity": { "coeffs": [ [ - 1.252004e-01 + 1.249024e-01 ], [ - -7.963016e-05 + -7.883376e-05 ], [ - 3.613946e-08 + 3.690718e-08 ], [ - -3.788073e-12 + -6.226963e-12 ] ], "type": "polynomial" @@ -27,21 +27,21 @@ "density": { "coeffs": [ [ - 1.058840e+03 + 1.076543e+03 ], [ - -5.464228e-01 + -6.492110e-01 ], [ - -1.752530e-04 + -3.154808e-05 ], [ - 5.776002e-08 + 2.345312e-08 ] ], "type": "polynomial" }, - "description": "Paratherm NF, Hydrotreated mineral oil", + "description": "Paratherm NF", "mass2input": { "coeffs": "null", "type": "notdefined" @@ -51,35 +51,57 @@ "type": "notdefined" }, "name": "PNF", - "reference": "Paratherm Ltd, SecCool software", + "reference": "Paratherm2013", "saturation_pressure": { - "coeffs": "null", - "type": "notdefined" + "coeffs": [ + [ + 3.701951e+01 + ], + [ + -1.977911e-01 + ], + [ + 4.184691e-04 + ], + [ + -2.748032e-07 + ] + ], + "type": "exppolynomial" }, "specific_heat": { "coeffs": [ [ - 2.932522e+02 + 6.490715e+02 ], [ - 5.411624e+00 + 2.766590e+00 ], [ - -6.468458e-04 + 5.777205e-03 ], [ - 5.066952e-07 + -4.589360e-06 ] ], "type": "polynomial" }, "viscosity": { "coeffs": [ - -2.400889e+02, - 2.880136e+00, - 5.928291e+00 + [ + 4.078752e+01 + ], + [ + -3.356326e-01 + ], + [ + 7.034467e-04 + ], + [ + -5.051335e-07 + ] ], - "type": "logexponential" + "type": "exppolynomial" }, "volume2input": { "coeffs": "null", @@ -87,6 +109,6 @@ }, "xbase": 0.000000e+00, "xid": "pure", - "xmax": 0.000000e+00, + "xmax": 1.000000e+00, "xmin": 0.000000e+00 } \ No newline at end of file diff --git a/dev/incompressible_liquids/json/PNF2.json b/dev/incompressible_liquids/json/PNF2.json new file mode 100644 index 00000000..6e03a9f0 --- /dev/null +++ b/dev/incompressible_liquids/json/PNF2.json @@ -0,0 +1,92 @@ +{ + "T_freeze": { + "coeffs": "null", + "type": "notdefined" + }, + "Tbase": 0.000000e+00, + "Tmax": 5.931500e+02, + "Tmin": 2.631500e+02, + "TminPsat": 5.931500e+02, + "conductivity": { + "coeffs": [ + [ + 1.252004e-01 + ], + [ + -7.963016e-05 + ], + [ + 3.613946e-08 + ], + [ + -3.788073e-12 + ] + ], + "type": "polynomial" + }, + "density": { + "coeffs": [ + [ + 1.058840e+03 + ], + [ + -5.464228e-01 + ], + [ + -1.752530e-04 + ], + [ + 5.776002e-08 + ] + ], + "type": "polynomial" + }, + "description": "Paratherm NF, Hydrotreated mineral oil", + "mass2input": { + "coeffs": "null", + "type": "notdefined" + }, + "mole2input": { + "coeffs": "null", + "type": "notdefined" + }, + "name": "PNF2", + "reference": "Paratherm2013,Skovrup2013", + "saturation_pressure": { + "coeffs": "null", + "type": "notdefined" + }, + "specific_heat": { + "coeffs": [ + [ + 2.932522e+02 + ], + [ + 5.411624e+00 + ], + [ + -6.468458e-04 + ], + [ + 5.066952e-07 + ] + ], + "type": "polynomial" + }, + "viscosity": { + "coeffs": [ + -2.400889e+02, + 2.880136e+00, + 5.928291e+00 + ], + "type": "logexponential" + }, + "volume2input": { + "coeffs": "null", + "type": "notdefined" + }, + "xbase": 0.000000e+00, + "xid": "pure", + "xmax": 0.000000e+00, + "xmin": 0.000000e+00 +} \ No newline at end of file diff --git a/dev/incompressible_liquids/json/SAB.json b/dev/incompressible_liquids/json/SAB.json index 58c59d0a..afb767f6 100644 --- a/dev/incompressible_liquids/json/SAB.json +++ b/dev/incompressible_liquids/json/SAB.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "SAB", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/T66.json b/dev/incompressible_liquids/json/T66.json index 6ccc57ac..0b31d2a4 100644 --- a/dev/incompressible_liquids/json/T66.json +++ b/dev/incompressible_liquids/json/T66.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "T66", - "reference": "Therminol Heat Transfer Reference Disk", + "reference": "Therminol2014", "saturation_pressure": { "coeffs": [ -9.020703e+03, diff --git a/dev/incompressible_liquids/json/T72.json b/dev/incompressible_liquids/json/T72.json index bed5d168..7f7a2605 100644 --- a/dev/incompressible_liquids/json/T72.json +++ b/dev/incompressible_liquids/json/T72.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "T72", - "reference": "Therminol Heat Transfer Reference Disk", + "reference": "Therminol2014", "saturation_pressure": { "coeffs": [ [ diff --git a/dev/incompressible_liquids/json/TCO.json b/dev/incompressible_liquids/json/TCO.json index 3c5539d0..86f8ff6f 100644 --- a/dev/incompressible_liquids/json/TCO.json +++ b/dev/incompressible_liquids/json/TCO.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "TCO", - "reference": "Melinder-BOOK-2010", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/TD12.json b/dev/incompressible_liquids/json/TD12.json index b184fcc0..06977b70 100644 --- a/dev/incompressible_liquids/json/TD12.json +++ b/dev/incompressible_liquids/json/TD12.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TD12", - "reference": "Therminol Heat Transfer Reference Disk", + "reference": "Therminol2014", "saturation_pressure": { "coeffs": [ -3.457536e+03, diff --git a/dev/incompressible_liquids/json/TVP1.json b/dev/incompressible_liquids/json/TVP1.json index 54cdcea7..3fd44306 100644 --- a/dev/incompressible_liquids/json/TVP1.json +++ b/dev/incompressible_liquids/json/TVP1.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TVP1", - "reference": "Therminol Heat Transfer Reference Disk", + "reference": "Therminol2014", "saturation_pressure": { "coeffs": [ -4.313871e+03, diff --git a/dev/incompressible_liquids/json/TVP1869.json b/dev/incompressible_liquids/json/TVP1869.json index a9a4b11f..0452b8a1 100644 --- a/dev/incompressible_liquids/json/TVP1869.json +++ b/dev/incompressible_liquids/json/TVP1869.json @@ -39,7 +39,7 @@ "type": "notdefined" }, "name": "TVP1869", - "reference": "Hoechst, SecCool software", + "reference": "Hoechst1995,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/TX22.json b/dev/incompressible_liquids/json/TX22.json index 55d40bc0..bc909195 100644 --- a/dev/incompressible_liquids/json/TX22.json +++ b/dev/incompressible_liquids/json/TX22.json @@ -51,14 +51,23 @@ "type": "notdefined" }, "name": "TX22", - "reference": "Texaco data sheet", + "reference": "Chevron2004", "saturation_pressure": { "coeffs": [ - -8.896764e+03, - -4.346506e+01, - -2.438007e+01 + [ + -4.667597e+01 + ], + [ + 1.402790e-01 + ], + [ + -3.198287e-05 + ], + [ + -8.170467e-08 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "specific_heat": { "coeffs": [ diff --git a/dev/incompressible_liquids/json/TY10.json b/dev/incompressible_liquids/json/TY10.json index 0660d531..879c2948 100644 --- a/dev/incompressible_liquids/json/TY10.json +++ b/dev/incompressible_liquids/json/TY10.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TY10", - "reference": "Tyforop Chemie Gmbh - Technical information 09/99, SecCool software", + "reference": "Tyfoprop1999,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/TY15.json b/dev/incompressible_liquids/json/TY15.json index 05ccc2fd..6405b29b 100644 --- a/dev/incompressible_liquids/json/TY15.json +++ b/dev/incompressible_liquids/json/TY15.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TY15", - "reference": "Tyforop Chemie Gmbh - Technical information 09/99, SecCool software", + "reference": "Tyfoprop1999,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/TY20.json b/dev/incompressible_liquids/json/TY20.json index e05db468..3a8199a5 100644 --- a/dev/incompressible_liquids/json/TY20.json +++ b/dev/incompressible_liquids/json/TY20.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TY20", - "reference": "Tyforop Chemie Gmbh - Technical information 09/99, SecCool software", + "reference": "Tyfoprop1999,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/TY24.json b/dev/incompressible_liquids/json/TY24.json index 6b5626de..23961fd1 100644 --- a/dev/incompressible_liquids/json/TY24.json +++ b/dev/incompressible_liquids/json/TY24.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "TY24", - "reference": "Tyforop Chemie Gmbh - Technical information 09/99, SecCool software", + "reference": "Tyfoprop1999,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/VCA.json b/dev/incompressible_liquids/json/VCA.json index 196a87b8..d61529cd 100644 --- a/dev/incompressible_liquids/json/VCA.json +++ b/dev/incompressible_liquids/json/VCA.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.290333e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.362735e+00, + 2.668310e+00, + -8.579530e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.931500e+02, @@ -87,7 +89,7 @@ "type": "notdefined" }, "name": "VCA", - "reference": "VDI Waermeatlas 9th Edition 2002, SecCool software", + "reference": "Preisegger2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/VKC.json b/dev/incompressible_liquids/json/VKC.json index 84be0956..cdbd6aca 100644 --- a/dev/incompressible_liquids/json/VKC.json +++ b/dev/incompressible_liquids/json/VKC.json @@ -1,11 +1,15 @@ { "T_freeze": { "coeffs": [ - 9.319965e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.665198e+00, + -1.100695e+00, + 5.859190e+00, + -1.501478e+01, + 1.017784e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.931500e+02, @@ -95,7 +99,7 @@ "type": "notdefined" }, "name": "VKC", - "reference": "VDI Waermeatlas 9th Edition 2002, SecCool software", + "reference": "Preisegger2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/VMA.json b/dev/incompressible_liquids/json/VMA.json index 9a4e64a2..0a7c2ba0 100644 --- a/dev/incompressible_liquids/json/VMA.json +++ b/dev/incompressible_liquids/json/VMA.json @@ -1,11 +1,16 @@ { "T_freeze": { "coeffs": [ - 9.231550e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.713551e+00, + -2.247710e+00, + 1.244199e+01, + -3.430821e+01, + 3.950593e+01, + -1.605229e+01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.731500e+02, @@ -95,7 +100,7 @@ "type": "notdefined" }, "name": "VMA", - "reference": "VDI Waermeatlas 9th Edition 2002, SecCool software", + "reference": "Preisegger2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/VMG.json b/dev/incompressible_liquids/json/VMG.json index 3eba6e1d..dc08e577 100644 --- a/dev/incompressible_liquids/json/VMG.json +++ b/dev/incompressible_liquids/json/VMG.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.326449e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.589693e+00, + 3.337734e-01, + -4.242772e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 2.931500e+02, @@ -87,7 +89,7 @@ "type": "notdefined" }, "name": "VMG", - "reference": "VDI Waermeatlas 9th Edition 2002, SecCool software", + "reference": "Preisegger2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/VNA.json b/dev/incompressible_liquids/json/VNA.json index 79bf463c..51fab60b 100644 --- a/dev/incompressible_liquids/json/VNA.json +++ b/dev/incompressible_liquids/json/VNA.json @@ -95,7 +95,7 @@ "type": "notdefined" }, "name": "VNA", - "reference": "VDI Waermeatlas 9th Edition 2002, SecCool software", + "reference": "Preisegger2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/XLT.json b/dev/incompressible_liquids/json/XLT.json index 2547c982..e4d38e24 100644 --- a/dev/incompressible_liquids/json/XLT.json +++ b/dev/incompressible_liquids/json/XLT.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "XLT", - "reference": "Dow Chemicals data sheet", + "reference": "Dow1997", "saturation_pressure": { "coeffs": [ -5.000000e+03, diff --git a/dev/incompressible_liquids/json/XLT2.json b/dev/incompressible_liquids/json/XLT2.json index 5ecc7dec..4ee946bd 100644 --- a/dev/incompressible_liquids/json/XLT2.json +++ b/dev/incompressible_liquids/json/XLT2.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "XLT2", - "reference": "Dow Chemicals, SecCool software", + "reference": "Dow1997,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZAC.json b/dev/incompressible_liquids/json/ZAC.json index 1d28e08e..dbad0799 100644 --- a/dev/incompressible_liquids/json/ZAC.json +++ b/dev/incompressible_liquids/json/ZAC.json @@ -128,7 +128,7 @@ "type": "notdefined" }, "name": "ZAC", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZFC.json b/dev/incompressible_liquids/json/ZFC.json index 65564112..6dd073d9 100644 --- a/dev/incompressible_liquids/json/ZFC.json +++ b/dev/incompressible_liquids/json/ZFC.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.288690e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.477459e+00, + 6.932423e-01, + -1.434348e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.731500e+02, @@ -112,7 +114,7 @@ "type": "notdefined" }, "name": "ZFC", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZLC.json b/dev/incompressible_liquids/json/ZLC.json index 2e51f648..ce17fb70 100644 --- a/dev/incompressible_liquids/json/ZLC.json +++ b/dev/incompressible_liquids/json/ZLC.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.271642e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.479471e+00, + 6.827346e-01, + -1.363820e+00 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.731500e+02, @@ -120,7 +122,7 @@ "type": "notdefined" }, "name": "ZLC", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZM.json b/dev/incompressible_liquids/json/ZM.json index 081c963b..5ddda9e5 100644 --- a/dev/incompressible_liquids/json/ZM.json +++ b/dev/incompressible_liquids/json/ZM.json @@ -133,7 +133,7 @@ "type": "notdefined" }, "name": "ZM", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZMC.json b/dev/incompressible_liquids/json/ZMC.json index 12b4849b..f0cc17b6 100644 --- a/dev/incompressible_liquids/json/ZMC.json +++ b/dev/incompressible_liquids/json/ZMC.json @@ -1,11 +1,13 @@ { "T_freeze": { "coeffs": [ - 9.272130e+05, - 6.000000e+04, - 1.000000e+01 + [ + 5.591126e+00, + 1.053098e-02, + -5.295193e-01 + ] ], - "type": "exponential" + "type": "exppolynomial" }, "Tbase": 0.000000e+00, "Tmax": 3.831500e+02, @@ -120,7 +122,7 @@ "type": "notdefined" }, "name": "ZMC", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZS10.json b/dev/incompressible_liquids/json/ZS10.json index 5518c09a..e7f6c502 100644 --- a/dev/incompressible_liquids/json/ZS10.json +++ b/dev/incompressible_liquids/json/ZS10.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "ZS10", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZS25.json b/dev/incompressible_liquids/json/ZS25.json index ec5247f7..e6560546 100644 --- a/dev/incompressible_liquids/json/ZS25.json +++ b/dev/incompressible_liquids/json/ZS25.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "ZS25", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZS40.json b/dev/incompressible_liquids/json/ZS40.json index 3a0330dc..ea95e2a7 100644 --- a/dev/incompressible_liquids/json/ZS40.json +++ b/dev/incompressible_liquids/json/ZS40.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "ZS40", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZS45.json b/dev/incompressible_liquids/json/ZS45.json index 635e03cf..d7466db8 100644 --- a/dev/incompressible_liquids/json/ZS45.json +++ b/dev/incompressible_liquids/json/ZS45.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "ZS45", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/ZS55.json b/dev/incompressible_liquids/json/ZS55.json index 199c45f7..02edaf92 100644 --- a/dev/incompressible_liquids/json/ZS55.json +++ b/dev/incompressible_liquids/json/ZS55.json @@ -51,7 +51,7 @@ "type": "notdefined" }, "name": "ZS55", - "reference": "Arteco, SecCool software", + "reference": "Arteco2010,Skovrup2013", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/wrappers/Python/CoolProp/BibtexParser.py b/wrappers/Python/CoolProp/BibtexParser.py index c95db2ff..01ea9e33 100644 --- a/wrappers/Python/CoolProp/BibtexParser.py +++ b/wrappers/Python/CoolProp/BibtexParser.py @@ -92,7 +92,7 @@ class BibTeXerClass(object): return stripped - def getBibliography(self, keys=[], fmt="plaintext", style="unsrtalpha", enc=None, objects=False): + def getBibliography(self, keys=None, fmt="plaintext", style="unsrtalpha", enc=None, objects=False): """This function creates a formatted bibliography according to the defined parameters using Pybtex. Specify your desired output format using the \"fmt\" parameter. Supported @@ -158,7 +158,16 @@ class BibTeXerClass(object): } # How do we find the end of the label? end_of_label = contents.index(label_table[fmt]) - contents = contents[end_of_label+1:].strip() + contents = contents[end_of_label+len(label_table[fmt]):].strip() + + if fmt=="latex": + contents = contents.replace(u"\\newblock ","") + elif fmt=="html": + contents = contents.replace(u"
","") + contents = contents.replace(u"
","") + + contents = contents.replace(u"\n","") + return contents @@ -166,43 +175,15 @@ class BibTeXerClass(object): #getEntry(self, key, label=False, fmt="markdown", style="unsrtalpha", enc=None): if __name__=='__main__': - B = BibTeXerClass() - B.loadLibrary('../../../Web/fluid_properties/Incompressibles.bib') - print(B.getEntry('Cesar2013')) - print(B.getEntry('Skovrup2013')) - print(B.getEntry('Therminol2014')) - -# B = BibTeXerClass('../../../Web/fluid_properties/Incompressibles.bib') -# print("\nHTML:") -# print(B.entries2All(keys=['Skovrup2013'], output_backend='html')) -# print("\nMarkdown:") -# print(B.entries2All(keys=['Skovrup2013'], output_backend='markdown')) -# print("\nText:") -# print(B.entries2All(keys=['Skovrup2013'], output_backend='text')) -# -# B = BibTeXerClass('../../../CoolPropBibTeXLibrary.bib') -# print("\nHTML:") -# print(B.entries2All(keys=['Mulero-JPCRD-2012'], output_backend='html')) -# print("\nMarkdown:") -# print(B.entries2All(keys=['Mulero-JPCRD-2012'], output_backend='markdown')) -# print("\nText:") -# print(B.entries2All(keys=['Mulero-JPCRD-2012'], output_backend='text')) -# -# -# from pybtex.richtext import Text, Tag, Symbol, HRef -# from pybtex.backends.markdown import Backend -# -# link_href = HRef( -# 'http://www.test.test/directory/file.ext?para=in&sec=out', # URL -# 'testing links with href class' -# ) -# tag_emph = Tag('emph', Text(u'Emph', Symbol('nbsp'), u'text')) -# unicode_text = Text(u'Л.:', Symbol('nbsp'), u'<<Химия>>') -# latex_text = Text(u'{\\aa}', Symbol(u'nbsp'), u'\\\'e') -# markd_text = Text(u'{ and & and *', Symbol(u'nbsp'), u'\\') -# -# for i in [link_href,tag_emph,unicode_text,latex_text,markd_text]: -# print(i.render(Backend())) + B = BibTeXerClass('../../../CoolPropBibTeXLibrary.bib') + print("\nLatex:") + print(B.getEntry(key='Mulero-JPCRD-2012', fmt='latex')) + print("\nHTML:") + print(B.getEntry(key='Mulero-JPCRD-2012', fmt='html')) + print("\nMarkdown:") + print(B.getEntry(key='Mulero-JPCRD-2012', fmt='markdown')) + print("\nText:") + print(B.getEntry(key='Mulero-JPCRD-2012', fmt='plaintext')) From 9b7d47c774b1043362718749a12978f65aef820f Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Tue, 23 Sep 2014 00:07:59 +0200 Subject: [PATCH 03/54] Added Bibtex filter for Pybtex. That should be filed as a bug in Pybtex, footnotes for incompressibles get generated properly --- Web/Makefile | 1 + Web/fluid_properties/Incompressibles.rst | 12 ++++++------ .../CPIncomp/DataObjects.py | 2 +- .../CPIncomp/WriterObjects.py | 15 +++++++++++++-- .../json/ExampleMelinder.json | 2 +- dev/incompressible_liquids/json/MAM.json | 2 +- dev/incompressible_liquids/json/MCA.json | 2 +- dev/incompressible_liquids/json/MEA.json | 2 +- dev/incompressible_liquids/json/MEG.json | 2 +- dev/incompressible_liquids/json/MGL.json | 2 +- dev/incompressible_liquids/json/MKA.json | 2 +- dev/incompressible_liquids/json/MKC.json | 2 +- dev/incompressible_liquids/json/MKF.json | 2 +- dev/incompressible_liquids/json/MLI.json | 2 +- dev/incompressible_liquids/json/MMA.json | 2 +- dev/incompressible_liquids/json/MMG.json | 2 +- dev/incompressible_liquids/json/MNA.json | 2 +- dev/incompressible_liquids/json/MPG.json | 2 +- wrappers/Python/CoolProp/BibtexParser.py | 12 ++++++++++++ 19 files changed, 47 insertions(+), 23 deletions(-) diff --git a/Web/Makefile b/Web/Makefile index 0e73602b..5da35fff 100644 --- a/Web/Makefile +++ b/Web/Makefile @@ -34,6 +34,7 @@ clean: -rm -rf _build/* html: + python ../dev/incompressible_liquids/all_incompressibles.py --nofit --noreports --nosummary --notables $(SPHINXBUILD) -j3 -b html $(ALLSPHINXOPTS) _build/html @echo @echo "Build finished. The HTML pages are in _build/html." diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index f309231b..bc3ba716 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -85,7 +85,7 @@ Pure Fluids For refrigeration applications, 8 fluids were implemented from Aake Melinder's book "Properties of Secondary Working Fluids for Indirect Systems" published in 2010 -by IIR :cite:`Melinder-BOOK-2010` with coefficients obtained from a fit between +by IIR :cite:`Melinder2010` with coefficients obtained from a fit between -80 |degC| and +100 |degC|: DEB, HCM, HFE, PMS1, PMS2, SAB, HCB and TCO. Some additional secondary cooling fluids are based on data compiled by Morten @@ -104,7 +104,7 @@ coefficients. .. _Pure: .. csv-table:: All incompressible pure fluids included in CoolProp - :widths: 10, 35, 25, 15, 15 + :widths: 10, 35, 15, 20, 20 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/pure-fluids.csv @@ -117,21 +117,21 @@ Aqueous Mixtures - Solutions and Brines .. _MassMix: .. csv-table:: All incompressible mass-based binary mixtures included in CoolProp - :widths: 10, 30, 20, 10, 10, 10, 10 + :widths: 10, 30, 12, 12, 12, 12, 12 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mass-based-fluids.csv .. .. _MoleMix: .. .. csv-table:: All incompressible mole-based binary mixtures included in CoolProp - :widths: 10, 30, 20, 10, 10, 10, 10 + :widths: 10, 30, 12, 12, 12, 12, 12 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mole-based-fluids.csv .. _VoluMix: .. csv-table:: All incompressible volume-based binary mixtures included in CoolProp - :widths: 10, 30, 20, 10, 10, 10, 10 + :widths: 10, 30, 12, 12, 12, 12, 12 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/volume-based-fluids.csv @@ -389,5 +389,5 @@ then yields the final factor :math:`D` to be multiplied with the other coefficie -.. bibliography:: ../../CoolPropBibTeXLibrary.bib +.. bibliography:: Incompressibles.bib.filtered.bib :style: unsrt diff --git a/dev/incompressible_liquids/CPIncomp/DataObjects.py b/dev/incompressible_liquids/CPIncomp/DataObjects.py index 288c8698..caef8aa1 100644 --- a/dev/incompressible_liquids/CPIncomp/DataObjects.py +++ b/dev/incompressible_liquids/CPIncomp/DataObjects.py @@ -467,7 +467,7 @@ class CoefficientData(SolutionData): if len(array)!=18: raise ValueError("The lenght is not equal to 18!") - self.reference = "Melinder Book" + #self.reference = "Melinder Book" array = np.array(array) tmp = np.zeros((6,4)) diff --git a/dev/incompressible_liquids/CPIncomp/WriterObjects.py b/dev/incompressible_liquids/CPIncomp/WriterObjects.py index d2867cc5..0fcb1f73 100644 --- a/dev/incompressible_liquids/CPIncomp/WriterObjects.py +++ b/dev/incompressible_liquids/CPIncomp/WriterObjects.py @@ -23,7 +23,8 @@ class SolutionDataWriter(object): information came from. """ def __init__(self): - self.bibtexer = BibTeXerClass('../../Web/fluid_properties/Incompressibles.bib') + bibFile = os.path.join(os.path.dirname(__file__),'../../../Web/fluid_properties/Incompressibles.bib') + self.bibtexer = BibTeXerClass(bibFile) def fitAll(self, fluidObject=SolutionData()): @@ -1180,6 +1181,10 @@ class SolutionDataWriter(object): reportFile = os.path.join("..","_static","fluid_properties","incompressible","report","{0}_fitreport.pdf".format(name)) return self.d(name,reportFile) + def getCitation(self, keys): + return u":cite:`{0}`".format(keys) + + def checkForNumber(self, number): try: n = float(number) @@ -1231,7 +1236,13 @@ class SolutionDataWriter(object): testTable = [] testTable.append(header) # Headline for fluid in solObjs: - testTable.append([self.getReportLink(fluid.name), fluid.description, fluid.reference, self.c(fluid.Tmin), self.c(fluid.Tmax)]) + testTable.append([ + self.getReportLink(fluid.name), + fluid.description, + self.getCitation(fluid.reference), + self.c(fluid.Tmin), + self.c(fluid.Tmax) + ]) if use_x: testTable[-1].extend([self.x(fluid.xmin), self.x(fluid.xmax)]) self.writeTableToFile(path, testTable) diff --git a/dev/incompressible_liquids/json/ExampleMelinder.json b/dev/incompressible_liquids/json/ExampleMelinder.json index adbddb03..e502d749 100644 --- a/dev/incompressible_liquids/json/ExampleMelinder.json +++ b/dev/incompressible_liquids/json/ExampleMelinder.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "ExampleMelinder", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MAM.json b/dev/incompressible_liquids/json/MAM.json index 50ab891f..b36c69ed 100644 --- a/dev/incompressible_liquids/json/MAM.json +++ b/dev/incompressible_liquids/json/MAM.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MAM", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MCA.json b/dev/incompressible_liquids/json/MCA.json index 80d1d16c..f8a622dc 100644 --- a/dev/incompressible_liquids/json/MCA.json +++ b/dev/incompressible_liquids/json/MCA.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MCA", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MEA.json b/dev/incompressible_liquids/json/MEA.json index 805416c1..33eb46de 100644 --- a/dev/incompressible_liquids/json/MEA.json +++ b/dev/incompressible_liquids/json/MEA.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MEA", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MEG.json b/dev/incompressible_liquids/json/MEG.json index 156baf7a..f0fde74e 100644 --- a/dev/incompressible_liquids/json/MEG.json +++ b/dev/incompressible_liquids/json/MEG.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MEG", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MGL.json b/dev/incompressible_liquids/json/MGL.json index 5e273337..d9d372c7 100644 --- a/dev/incompressible_liquids/json/MGL.json +++ b/dev/incompressible_liquids/json/MGL.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MGL", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MKA.json b/dev/incompressible_liquids/json/MKA.json index 8843b0b3..97009767 100644 --- a/dev/incompressible_liquids/json/MKA.json +++ b/dev/incompressible_liquids/json/MKA.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MKA", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MKC.json b/dev/incompressible_liquids/json/MKC.json index 057552ea..a155b4b9 100644 --- a/dev/incompressible_liquids/json/MKC.json +++ b/dev/incompressible_liquids/json/MKC.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MKC", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MKF.json b/dev/incompressible_liquids/json/MKF.json index 93b9b6d5..4caf0608 100644 --- a/dev/incompressible_liquids/json/MKF.json +++ b/dev/incompressible_liquids/json/MKF.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MKF", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MLI.json b/dev/incompressible_liquids/json/MLI.json index b81ac462..2e0c4b21 100644 --- a/dev/incompressible_liquids/json/MLI.json +++ b/dev/incompressible_liquids/json/MLI.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MLI", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MMA.json b/dev/incompressible_liquids/json/MMA.json index 8b04508b..3ee50bd9 100644 --- a/dev/incompressible_liquids/json/MMA.json +++ b/dev/incompressible_liquids/json/MMA.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MMA", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MMG.json b/dev/incompressible_liquids/json/MMG.json index c704e299..f62ccb45 100644 --- a/dev/incompressible_liquids/json/MMG.json +++ b/dev/incompressible_liquids/json/MMG.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MMG", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MNA.json b/dev/incompressible_liquids/json/MNA.json index 2a634a7b..face89e3 100644 --- a/dev/incompressible_liquids/json/MNA.json +++ b/dev/incompressible_liquids/json/MNA.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MNA", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/dev/incompressible_liquids/json/MPG.json b/dev/incompressible_liquids/json/MPG.json index 6a49da5a..b04c80f5 100644 --- a/dev/incompressible_liquids/json/MPG.json +++ b/dev/incompressible_liquids/json/MPG.json @@ -100,7 +100,7 @@ "type": "notdefined" }, "name": "MPG", - "reference": "Melinder Book", + "reference": "Melinder2010", "saturation_pressure": { "coeffs": "null", "type": "notdefined" diff --git a/wrappers/Python/CoolProp/BibtexParser.py b/wrappers/Python/CoolProp/BibtexParser.py index 01ea9e33..9588a65f 100644 --- a/wrappers/Python/CoolProp/BibtexParser.py +++ b/wrappers/Python/CoolProp/BibtexParser.py @@ -6,6 +6,7 @@ from __future__ import generators import pybtex.plugin, pybtex.database.input.bibtex, pybtex.errors import io import codecs, latexcodec +import os @@ -44,10 +45,21 @@ class BibTeXerClass(object): # Do not print that many warnings pybtex.errors.set_strict_mode(enable=False) + # TODO: Remove empty lines to keep Pybtex from choking + with open(path, "r") as f: + lines = f.readlines() + cleaned = [l.strip() for l in lines if l.strip()] + + path = path+".filtered.bib" + with open(path, "w") as f: + f.writelines('\n'.join(cleaned)) + # Open the file and convert it according to the encoding with codecs.open(path, encoding=encoding) as stream: self.library = bib_parser.parse_stream(stream) + #os.remove(path) + # Do some post-processing if encoding was latex if encoding=="latex": for tag in self.library.entries: From c98365c5808751cc694f9005423bf1444fdf7f57 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Tue, 23 Sep 2014 16:50:30 +0200 Subject: [PATCH 04/54] Fixes #136 and the latexcodec issues --- Web/Makefile | 1 - Web/fluid_properties/Incompressibles.rst | 92 ++++++++++++++----- .../Incompressible/IncompressibleLibrary.cpp | 4 +- wrappers/Python/CoolProp/BibtexParser.py | 21 +++-- 4 files changed, 84 insertions(+), 34 deletions(-) diff --git a/Web/Makefile b/Web/Makefile index 5da35fff..0e73602b 100644 --- a/Web/Makefile +++ b/Web/Makefile @@ -34,7 +34,6 @@ clean: -rm -rf _build/* html: - python ../dev/incompressible_liquids/all_incompressibles.py --nofit --noreports --nosummary --notables $(SPHINXBUILD) -j3 -b html $(ALLSPHINXOPTS) _build/html @echo @echo "Build finished. The HTML pages are in _build/html." diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index bc3ba716..d09bcd3c 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -1,11 +1,16 @@ .. |degC| replace:: :math:`^\circ\!\!` C +.. |degF| replace:: :math:`^\circ\!\!` F .. _Incompressibles: Incompressible Fluids ===================== + +General Introduction +-------------------- + In CoolProp, the incompressible fluids are divided into three major groups. * :ref:`Pure fluids `. @@ -31,6 +36,15 @@ documents with all the You can read more about these reports in a dedicated :ref:`section` called :ref:`Fitting Reports` below. +All incompressible fluids have an arbitrary reference state for enthalpy and entropy. +During initialisation, the reference state is defined in temperature and pressure +according to the U.S. National Institute of Standards and Technology [NIST](http://www.nist.gov). + + + +Pure Fluid Examples +------------------- + Incompressible fluids only allow for a limited subset of input variables. The following input pairs are supported: :math:`f(p,T)`, :math:`f(h,p)`, :math:`f(\rho,T)`, :math:`f(p,u)` and :math:`f(p,s)`. All functions iterate on :math:`f(p,T)` calls @@ -79,27 +93,59 @@ the available output keys are: ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, In [1]: PropsSI('Psat','T',500,'P',1e8,'INCOMP::DowQ') +Mixture Examples +---------------- -Pure Fluids ------------ +Almost the same syntax can be used for mixtures. Please note that the mixture +interface developed for CoolProp 5 has not been ported to the incompressible +fluids, yet. For now, you have to use the `PropsSI` function with a special +composition notation. Depending on your fluid, you have to supply either the +:ref:`mass fraction` or the :ref:`volume fraction` as additional +parameter. This is done via the fluid name by appending a dash (-) and the +fraction of the substance other than water. The fraction notation can be in the +form of percent, `LiBr-23%`, or as a fraction like in `LiBr-0.23` or `LiBr\[0.23\]`. -For refrigeration applications, 8 fluids were implemented from Aake Melinder's -book "Properties of Secondary Working Fluids for Indirect Systems" published in 2010 -by IIR :cite:`Melinder2010` with coefficients obtained from a fit between --80 |degC| and +100 |degC|: DEB, HCM, HFE, PMS1, PMS2, SAB, HCB and TCO. -Some additional secondary cooling fluids are based on data compiled by Morten -Juel Skovrup in his `SecCool software `_ -provided by his employer `IPU `_. Fits have been made for the -manufacturer data stored in the software. The Aspen Temper fluids (AS10, AS20, -AS30, AS40, AS55) are a blend of potassium formate and sodiumpropionate and the -Zitrec S group (ZS10, ZS25, ZS40, ZS45 and ZS55) consists mainly of potassium -acetate and potassium formate. -There are also a few high temperature heat transfer fluids with individual -temperature ranges. Please refer to the table below for a complete overview. -For these fluids, information from commercial data sheets was used to obtain -coefficients. + + +All the brines and solutions can be accessed through the Props function. To use them, the fluid name +is something like ``"MEG-20%"`` which is a 20% by mass ethylene glycol solution. Note that these fluids +have an arbitrary reference state: Be careful with enthalpy and entropy calculations. Again, only +temperature and pressure inputs are supported directly to calculate the same subset of thermophysical +properties as above , namely: density, heat capacity, internal energy, enthalpy, entropy, viscosity +and thermal conductivity. Hence, the available output keys for the ``Props`` function are: "D", "C", +"U", "H", "S", "V", "L", "Tmin", Tmax" and "Tfreeze". An internal iteration allows us to use enthalpy +and pressure as inputs, but be aware of the reduced computational efficiency. + +.. ipython:: + + In [1]: from CoolProp.CoolProp import PropsSI + + #Specific heat 20% mass ethylene glycol solution at 300 K and 1 atm. + In [1]: PropsSI('C','T',300,'P',101.325,'INCOMP::MEG-20%') + + + +The Different Fluids +-------------------- + +The fluids implemented in CoolProp cover a wide range of industrial heat +transfer media. This database has initially been developed with refrigeration +systems in mind. That is why the majority of fluids are secondary refrigerants +with application temperatures close to the freezing point of water. Besides those, +there is also incompressible water, high temperature heat transfer oils and a +molten salt mixture for extreme temperatures. + +Besides the different technical data sheets and calculation tools provided by +manufactures, two specific publications provided a lot of data used for the +incompressible fluids: Åke Melinder's book *Properties of Secondary Working +Fluids for Indirect Systems* :cite:`Melinder2010` has inspired both, the work on +pure fluids and aqueous solutions. The second major source of inspiration is the +`SecCool software `_ +:cite:`Skovrup2013` software, which contains data compiled by Morten Juel +Skovrup. It is provided free of charge by his employer `IPU `_. + .. _Pure: @@ -109,9 +155,10 @@ coefficients. :file: ../_static/fluid_properties/incompressible/table/pure-fluids.csv - -Aqueous Mixtures - Solutions and Brines ---------------------------------------- +There are also a number of water-based mixtures implemented in CoolProp. Most of them +are secondary heat transfer fluids, but there are also aqueous solutions of +ammonia :cite:`Melinder2010`, :download:`MAM<../_static/fluid_properties/incompressible/report/MAM_fitreport.pdf>`, +and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`. .. _MassMix: @@ -389,5 +436,6 @@ then yields the final factor :math:`D` to be multiplied with the other coefficie -.. bibliography:: Incompressibles.bib.filtered.bib - :style: unsrt +.. bibliography:: Incompressibles.bib + :filter: docname in docnames + :style: unsrt diff --git a/src/Backends/Incompressible/IncompressibleLibrary.cpp b/src/Backends/Incompressible/IncompressibleLibrary.cpp index 02ed986b..2e23fc71 100644 --- a/src/Backends/Incompressible/IncompressibleLibrary.cpp +++ b/src/Backends/Incompressible/IncompressibleLibrary.cpp @@ -486,7 +486,7 @@ void JSONIncompressibleLibrary::add_one(rapidjson::Value &fluid_json) { if (get_debug_level()>=20) std::cout << format("Incompressible library: Loading reference state for %s ",fluid.getName().c_str()) << std::endl; fluid.set_reference_state( - parse_value(fluid_json, "Tref", false, 25+273.15) , + parse_value(fluid_json, "Tref", false, 20+273.15) , parse_value(fluid_json, "pref", false, 1.01325e5) , parse_value(fluid_json, "xref", false, 0.0) , parse_value(fluid_json, "href", false, 0.0) , @@ -498,7 +498,7 @@ void JSONIncompressibleLibrary::add_one(rapidjson::Value &fluid_json) { // Add name->index mapping string_to_index_map[fluid.getName()] = index; - + // Add name to vector of names if (fluid.is_pure()){ this->name_vector_pure.push_back(fluid.getName()); diff --git a/wrappers/Python/CoolProp/BibtexParser.py b/wrappers/Python/CoolProp/BibtexParser.py index 9588a65f..e479ff82 100644 --- a/wrappers/Python/CoolProp/BibtexParser.py +++ b/wrappers/Python/CoolProp/BibtexParser.py @@ -42,17 +42,20 @@ class BibTeXerClass(object): else: bib_parser = pybtex.database.input.bibtex.Parser() - # Do not print that many warnings - pybtex.errors.set_strict_mode(enable=False) + # TODO: not needed anymore? + oldLatexCodec = False + if oldLatexCodec: + # Do not print that many warnings + pybtex.errors.set_strict_mode(enable=False) - # TODO: Remove empty lines to keep Pybtex from choking - with open(path, "r") as f: - lines = f.readlines() - cleaned = [l.strip() for l in lines if l.strip()] + # TODO: Remove empty lines to keep Pybtex from choking + with open(path, "r") as f: + lines = f.readlines() + cleaned = [l.strip() for l in lines if l.strip()] - path = path+".filtered.bib" - with open(path, "w") as f: - f.writelines('\n'.join(cleaned)) + path = path+".filtered.bib" + with open(path, "w") as f: + f.writelines('\n'.join(cleaned)) # Open the file and convert it according to the encoding with codecs.open(path, encoding=encoding) as stream: From 320907b9462f38db73acd8efa444574a4ad76e02 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Tue, 23 Sep 2014 22:54:33 +0200 Subject: [PATCH 05/54] Fixed doxyfile to write tag file to correct location Signed-off-by: Ian Bell --- Doxyfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doxyfile b/Doxyfile index 8766f43b..f1e58218 100644 --- a/Doxyfile +++ b/Doxyfile @@ -2049,7 +2049,7 @@ TAGFILES = # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = CoolPropDoxyLink.tag +GENERATE_TAGFILE = Web/_static/doxygen/CoolPropDoxyLink.tag # If the ALLEXTERNALS tag is set to YES all external class will be listed in the # class index. If set to NO only the inherited external classes will be listed. From 580fbd15d8df79655dc7de22eec80f05da82cea1 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Tue, 23 Sep 2014 19:07:55 +0200 Subject: [PATCH 06/54] Updated some reference state functions, does not work properly at the moment. --- Web/fluid_properties/Incompressibles.rst | 273 +++++++----------- .../CPIncomp/WriterObjects.py | 113 ++++++-- dev/incompressible_liquids/json/AEG.json | 2 +- dev/incompressible_liquids/json/APG.json | 2 +- .../json/ExampleDigital.json | 10 +- dev/incompressible_liquids/json/FRE.json | 8 +- dev/incompressible_liquids/json/GKN.json | 2 +- dev/incompressible_liquids/json/HC20.json | 2 +- dev/incompressible_liquids/json/HC30.json | 2 +- dev/incompressible_liquids/json/HC40.json | 2 +- dev/incompressible_liquids/json/HFE2.json | 4 +- dev/incompressible_liquids/json/LiBr.json | 2 +- dev/incompressible_liquids/json/MEA2.json | 2 +- dev/incompressible_liquids/json/MMG2.json | 24 +- dev/incompressible_liquids/json/MNA2.json | 18 +- dev/incompressible_liquids/json/PK2.json | 2 +- dev/incompressible_liquids/json/PKL.json | 2 +- dev/incompressible_liquids/json/TY10.json | 4 +- dev/incompressible_liquids/json/TY15.json | 4 +- dev/incompressible_liquids/json/TY20.json | 2 +- dev/incompressible_liquids/json/XLT2.json | 2 +- dev/incompressible_liquids/json/ZAC.json | 2 +- dev/incompressible_liquids/json/ZS40.json | 2 +- dev/incompressible_liquids/json/ZS45.json | 2 +- dev/incompressible_liquids/json/ZS55.json | 4 +- .../Incompressible/IncompressibleBackend.cpp | 14 +- .../Incompressible/IncompressibleFluid.cpp | 2 +- 27 files changed, 262 insertions(+), 246 deletions(-) diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index d09bcd3c..b4fe47d0 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -1,6 +1,4 @@ -.. |degC| replace:: :math:`^\circ\!\!` C -.. |degF| replace:: :math:`^\circ\!\!` F .. _Incompressibles: @@ -37,17 +35,27 @@ You can read more about these reports in a dedicated :ref:`section` called :ref:`Fitting Reports` below. All incompressible fluids have an arbitrary reference state for enthalpy and entropy. -During initialisation, the reference state is defined in temperature and pressure -according to the U.S. National Institute of Standards and Technology [NIST](http://www.nist.gov). +During initialisation, the reference state is defined as a temperature of 20 °C +and a pressure of 1 atm according to the U.S. National Institute of Standards and +Technology ([NIST](http://www.nist.gov)). +.. math:: + T_\text{ref} &= 293.15\,\text{K} &= 68\,\text{°F} \\ + p_\text{ref} &= 101325\,\text{Pa} &= 14.696\,\text{psi} \\ + h_\text{ref} &= 0 & \\ + s_\text{ref} &= 0 & \\ + +If you use a mixture, the reference state gets updated each time you change the +composition. Pure Fluid Examples ------------------- Incompressible fluids only allow for a limited subset of input variables. The -following input pairs are supported: :math:`f(p,T)`, :math:`f(h,p)`, :math:`f(\rho,T)`, -:math:`f(p,u)` and :math:`f(p,s)`. All functions iterate on :math:`f(p,T)` calls +following input pairs are supported: :math:`f(p,T)`, :math:`f(p,h)`, :math:`f(p,\rho)`, +:math:`f(p,u)` and :math:`f(p,s)`. Some fluids also provide saturation state +information as :math:`f(Q,T)` with :math:`Q=0`. All functions iterate on :math:`f(p,T)` calls internally, which makes this combination by far the fastest. However, also the other inputs should be fast compared to the full Helmholtz-based EOS implemented for then compressible fluids. @@ -55,7 +63,7 @@ for then compressible fluids. A call to the top-level function ``PropsSI`` can provide : density, heat capacity, internal energy, enthalpy, entropy, viscosity and thermal conductivity. Hence, the available output keys are: ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, -``Tmin``, ``Tmax`` and ``Psat``. +``Tmin`` and ``Tmax``. .. ipython:: @@ -67,20 +75,10 @@ the available output keys are: ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, #Specific heat capacity of Downtherm Q at 500 K and 1 atm In [1]: PropsSI('C','T',500,'P',101325,'INCOMP::DowQ') - #Internal energy of Downtherm Q at 500 K and 1 atm - In [1]: PropsSI('U','T',500,'P',101325,'INCOMP::DowQ') + In [1]: PropsSI('C','D',809.0659,'P',101325,'INCOMP::DowQ') - #Enthalpy of Downtherm Q at 500 K and 1 atm - In [1]: PropsSI('H','T',500,'P',101325,'INCOMP::DowQ') - - #Entropy of Downtherm Q at 500 K and 1 atm - In [1]: PropsSI('S','T',500,'P',101325,'INCOMP::DowQ') - - #Viscosity of Downtherm Q at 500 K and 1 atm - In [1]: PropsSI('V','T',500,'P',101325,'INCOMP::DowQ') - - #Thermal conductivity of Downtherm Q at 500 K and 1 atm - In [1]: PropsSI('L','T',500,'P',101325,'INCOMP::DowQ') + #Saturation pressure of Downtherm Q at 500 K + In [1]: PropsSI('P','T',500,'Q',0,'INCOMP::DowQ') #Minimum temperature for Downtherm Q In [1]: PropsSI('Tmin','T',0,'P',0,'INCOMP::DowQ') @@ -89,98 +87,40 @@ the available output keys are: ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, In [1]: PropsSI('Tmax','T',0,'P',0,'INCOMP::DowQ') -.. #Vapour pressure of Downtherm Q at 500 K, note the dummy pressure to work around https://github.com/CoolProp/CoolProp/issues/145 - In [1]: PropsSI('Psat','T',500,'P',1e8,'INCOMP::DowQ') - Mixture Examples ---------------- Almost the same syntax can be used for mixtures. Please note that the mixture interface developed for CoolProp 5 has not been ported to the incompressible -fluids, yet. For now, you have to use the `PropsSI` function with a special +fluids, yet. For now, you have to use the ``PropsSI`` function with a special composition notation. Depending on your fluid, you have to supply either the :ref:`mass fraction` or the :ref:`volume fraction` as additional -parameter. This is done via the fluid name by appending a dash (-) and the +parameter. This is done via the fluid name by appending a dash and the fraction of the substance other than water. The fraction notation can be in the -form of percent, `LiBr-23%`, or as a fraction like in `LiBr-0.23` or `LiBr\[0.23\]`. +form of percent, ``LiBr-23%``, or as a fraction like in ``LiBr-0.23`` or +``LiBr[0.23]``, which corresponds to the new mixture syntax in CoolProp5. +.. In addition to the properties available for the pure fluids (``D``, ``C``, + ``U``, ``H``, ``S``, ``V``, ``L``,``Tmin`` and ``Tmax``, some mixtures also + provide the freezing temperature ``Tfreeze`` as a function of composition. - - -All the brines and solutions can be accessed through the Props function. To use them, the fluid name -is something like ``"MEG-20%"`` which is a 20% by mass ethylene glycol solution. Note that these fluids -have an arbitrary reference state: Be careful with enthalpy and entropy calculations. Again, only -temperature and pressure inputs are supported directly to calculate the same subset of thermophysical -properties as above , namely: density, heat capacity, internal energy, enthalpy, entropy, viscosity -and thermal conductivity. Hence, the available output keys for the ``Props`` function are: "D", "C", -"U", "H", "S", "V", "L", "Tmin", Tmax" and "Tfreeze". An internal iteration allows us to use enthalpy -and pressure as inputs, but be aware of the reduced computational efficiency. - .. ipython:: In [1]: from CoolProp.CoolProp import PropsSI - #Specific heat 20% mass ethylene glycol solution at 300 K and 1 atm. - In [1]: PropsSI('C','T',300,'P',101.325,'INCOMP::MEG-20%') + #Density of a lithium bromide solution at 300 K and 1 atm. + In [1]: PropsSI('D','T',300,'P',101325,'INCOMP::LiBr[0.23]') + + #Specific heat capacity of a lithium bromide solution at 300 K and 1 atm + In [1]: PropsSI('C','T',300,'P',101325,'INCOMP::LiBr-0.23%') -The Different Fluids --------------------- - -The fluids implemented in CoolProp cover a wide range of industrial heat -transfer media. This database has initially been developed with refrigeration -systems in mind. That is why the majority of fluids are secondary refrigerants -with application temperatures close to the freezing point of water. Besides those, -there is also incompressible water, high temperature heat transfer oils and a -molten salt mixture for extreme temperatures. - -Besides the different technical data sheets and calculation tools provided by -manufactures, two specific publications provided a lot of data used for the -incompressible fluids: Åke Melinder's book *Properties of Secondary Working -Fluids for Indirect Systems* :cite:`Melinder2010` has inspired both, the work on -pure fluids and aqueous solutions. The second major source of inspiration is the -`SecCool software `_ -:cite:`Skovrup2013` software, which contains data compiled by Morten Juel -Skovrup. It is provided free of charge by his employer `IPU `_. -.. _Pure: -.. csv-table:: All incompressible pure fluids included in CoolProp - :widths: 10, 35, 15, 20, 20 - :header-rows: 1 - :file: ../_static/fluid_properties/incompressible/table/pure-fluids.csv - - -There are also a number of water-based mixtures implemented in CoolProp. Most of them -are secondary heat transfer fluids, but there are also aqueous solutions of -ammonia :cite:`Melinder2010`, :download:`MAM<../_static/fluid_properties/incompressible/report/MAM_fitreport.pdf>`, -and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`. - - -.. _MassMix: - -.. csv-table:: All incompressible mass-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 - :header-rows: 1 - :file: ../_static/fluid_properties/incompressible/table/mass-based-fluids.csv - -.. .. _MoleMix: - -.. .. csv-table:: All incompressible mole-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 - :header-rows: 1 - :file: ../_static/fluid_properties/incompressible/table/mole-based-fluids.csv - -.. _VoluMix: - -.. csv-table:: All incompressible volume-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 - :header-rows: 1 - :file: ../_static/fluid_properties/incompressible/table/volume-based-fluids.csv @@ -226,85 +166,12 @@ Equations Exp or log for visc, other poly or log poly +.. math:: + x(T) &= \sum_{i=0}^n C[i] \cdot T^i \\ + x(T) &= \exp\left( \frac{C[0]}{T+C[1]} - C[2] \right) \\ + x(T) &= \exp\left( \log \left( \left(T+C[0]\right)^{-1} + \left( T+C[0] \right)^{-2} \right) *C[1]+C[2] \right) \\ -Incompressible Liquids ----------------------- -There is also a selection of incompressible liquids implemented. These only allow for calls with -temperature and pressure as input and provide only a subset of thermophysical properties, namely: -density, heat capacity, internal energy, enthalpy, entropy, viscosity and thermal conductivity. -Hence, the available output keys for the ``Props`` function are: "D", "C", "U", "H", "S", "V", "L", -"Tmin", "Tmax" and "Psat". An internal iteration allows us to use enthalpy and pressure as inputs, -but be aware of the reduced computational efficiency. - -.. ipython:: - - In [1]: from CoolProp.CoolProp import PropsSI - - #Density of HFE-7100 at 300 K and 1 atm. - In [1]: PropsSI('D','T',300,'P',101325,'INCOMP::HFE') - - -For refrigeration applications, 8 fluids were implemented from Aake Melinder "Properties of -Secondary Working Fluids for Indirect Systems" published in 2010 by IIR and coefficients are -obtained from a fit between -80 and +100 degrees Celsius. - -========================== =================================================== -Fluid Name Description -========================== =================================================== -``DEB`` Diethyl Benzene -``HCM`` Hydrocarbon Mixture (Therminol D12 Solutia) -``HFE`` Hydrofluoroether HFE-7100 -``PMS1`` Polydimethylsiloxan 1. -``PMS2`` Polydimethylsiloxan 2. -``SAB`` Synthetic alkyl benzene -``HCB`` Hydrocarbon blend (Dynalene MV) -``TCO`` Terpene from citrus oils -========================== =================================================== - -Some additional secondary cooling fluids are based on data compiled by Morten Juel Skovrup in -his `SecCool software `_ -provided by his employer `IPU `_. Fits have been made according to the manufacturer -data stored in the sodtware. The Aspen Temper fluids are a blend of potassium formate and sodiumpropionate -and the Zitrec S group consists mainly of potassium acetate and potassium formate. - -========================== =================================================== -Fluid Name Description -========================== =================================================== -``AS10`` Aspen Temper -10 (-10 to +27.5 C) -``AS20`` Aspen Temper -20 (-20 to +27.5 C) -``AS30`` Aspen Temper -30 (-30 to +27.5 C) -``AS40`` Aspen Temper -40 (-40 to +27.5 C) -``AS55`` Aspen Temper -55 (-55 to +27.5 C) -``ZS10`` Zitrec S -10 (-10 to +85 C) -``ZS25`` Zitrec S -25 (-25 to +85 C) -``ZS40`` Zitrec S -40 (-40 to +85 C) -``ZS45`` Zitrec S -45 (-45 to +85 C) -``ZS55`` Zitrec S -55 (-55 to +85 C) -========================== =================================================== - -There are also a few high temperature heat transfer fluids with individual temperature ranges. Please -refer to the file IncompLiquid.h for a complete overview. For these fluids, information from commercial -data sheets was used to obtain coefficients. - -========================== =================================================== -Fluid Name Description -========================== =================================================== -``TD12`` Therminol D12 (-85 to +230 C) -``TVP1`` Therminol VP-1 (+12 to +397 C) -``T72`` Therminol 72 (-10 to +380 C) -``T66`` Therminol 66 (0 to +345 C) -``DowJ`` Dowtherm J (-80 to +345 C) -``DowQ`` Dowtherm Q (-35 to +360 C) -``TX22`` Texatherm 22 (0 to +350 C) -``NaK`` Nitrate Salt Blend (+300 to +600 C) -``XLT`` Syltherm XLT (-100 to +260 C) -``HC10`` Dynalene HC-10 (-10 to +218 C) -``HC20`` Dynalene HC-20 (-20 to +210 C) -``HC30`` Dynalene HC-30 (-30 to +210 C) -``HC40`` Dynalene HC-40 (-40 to +200 C) -``HC50`` Dynalene HC-50 (-50 to +210 C) -========================== =================================================== All fluids are implemented with polynomials for density and heat capacity with typically 4 coefficients and hence a third order polynomial. Thermal conductivity is a second order polynomial and viscosity and @@ -325,6 +192,8 @@ vapour pressure are exponential functions. \mu &= \exp\left( \frac{C_{\mu}[0]}{T+C_{\mu}[1]} - C_{\mu}[2] \right) \\ p_{sat} &= \exp\left( \frac{C_{sat}[0]}{T+C_{sat}[1]} - C_{sat}[2] \right) \\ +In some cases, the fit quality for the + Brines and Solutions -------------------- @@ -436,6 +305,76 @@ then yields the final factor :math:`D` to be multiplied with the other coefficie + + + + +The Different Fluids +-------------------- + +The fluids implemented in CoolProp cover a wide range of industrial heat +transfer media. This database has initially been developed with refrigeration +systems in mind. That is why the majority of fluids are secondary refrigerants +with application temperatures close to the freezing point of water. Besides those, +there is also incompressible water, high temperature heat transfer oils and a +molten salt mixture for extreme temperatures. + +Besides the different technical data sheets and calculation tools provided by +manufactures, two specific publications provided a lot of data used for the +incompressible fluids: Åke Melinder's book *Properties of Secondary Working +Fluids for Indirect Systems* :cite:`Melinder2010` has inspired both, the work on +pure fluids and aqueous solutions. The second major source of inspiration is the +`SecCool software `_ +:cite:`Skovrup2013` software, which contains data compiled by Morten Juel +Skovrup. It is provided free of charge by his employer `IPU `_. + + +.. _Pure: + +.. csv-table:: All incompressible pure fluids included in CoolProp + :widths: 10, 35, 15, 20, 20 + :header-rows: 1 + :file: ../_static/fluid_properties/incompressible/table/pure-fluids.csv + + +There are also a number of water-based mixtures implemented in CoolProp. Most of them +are secondary heat transfer fluids, but there are also aqueous solutions of +ammonia :cite:`Melinder2010`, :download:`MAM<../_static/fluid_properties/incompressible/report/MAM_fitreport.pdf>`, +and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`. + + +.. _MassMix: + +.. csv-table:: All incompressible mass-based binary mixtures included in CoolProp + :widths: 10, 30, 12, 12, 12, 12, 12 + :header-rows: 1 + :file: ../_static/fluid_properties/incompressible/table/mass-based-fluids.csv + +.. .. _MoleMix: + +.. .. csv-table:: All incompressible mole-based binary mixtures included in CoolProp + :widths: 10, 30, 12, 12, 12, 12, 12 + :header-rows: 1 + :file: ../_static/fluid_properties/incompressible/table/mole-based-fluids.csv + +.. _VoluMix: + +.. csv-table:: All incompressible volume-based binary mixtures included in CoolProp + :widths: 10, 30, 12, 12, 12, 12, 12 + :header-rows: 1 + :file: ../_static/fluid_properties/incompressible/table/volume-based-fluids.csv + + +For slurry ice, the concentration :math:`x` refers to the solid content and the +heat capacity includes the heat of fusion. It might be necessary to adjust the +solid content during heat transfer. The implementation is based on the data +available in `SecCool`_, +which was originally recorded at the `Danish Technological Institute (DTI) `_. + + +References +---------- + .. bibliography:: Incompressibles.bib :filter: docname in docnames :style: unsrt diff --git a/dev/incompressible_liquids/CPIncomp/WriterObjects.py b/dev/incompressible_liquids/CPIncomp/WriterObjects.py index 0fcb1f73..03795ecd 100644 --- a/dev/incompressible_liquids/CPIncomp/WriterObjects.py +++ b/dev/incompressible_liquids/CPIncomp/WriterObjects.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python +# -*- coding: utf8 -*- from __future__ import division, print_function import numpy as np @@ -11,10 +13,73 @@ from matplotlib.ticker import MaxNLocator from matplotlib.backends.backend_pdf import PdfPages import itertools import matplotlib -import csv from CoolProp.BibtexParser import BibTeXerClass from warnings import warn +# See: https://docs.python.org/2/library/csv.html#csv-examples +import csv, codecs, cStringIO + +class UTF8Recoder: + """ + Iterator that reads an encoded stream and reencodes the input to UTF-8 + """ + def __init__(self, f, encoding): + self.reader = codecs.getreader(encoding)(f) + + def __iter__(self): + return self + + def next(self): + return self.reader.next().encode("utf-8") + +class UnicodeReader: + """ + A CSV reader which will iterate over lines in the CSV file "f", + which is encoded in the given encoding. + """ + + def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): + f = UTF8Recoder(f, encoding) + self.reader = csv.reader(f, dialect=dialect, **kwds) + + def next(self): + row = self.reader.next() + return [unicode(s, "utf-8") for s in row] + + def __iter__(self): + return self + +class UnicodeWriter: + """ + A CSV writer which will write rows to CSV file "f", + which is encoded in the given encoding. + """ + + def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): + # Redirect output to a queue + self.queue = cStringIO.StringIO() + self.writer = csv.writer(self.queue, dialect=dialect, **kwds) + self.stream = f + self.encoder = codecs.getincrementalencoder(encoding)() + + def writerow(self, row): + self.writer.writerow([s.encode("utf-8") for s in row]) + # Fetch UTF-8 output from the queue ... + data = self.queue.getvalue() + data = data.decode("utf-8") + # ... and reencode it into the target encoding + data = self.encoder.encode(data) + # write to the target stream + self.stream.write(data) + # empty queue + self.queue.truncate(0) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + + class SolutionDataWriter(object): """ A base class that defines all the variables needed @@ -1126,26 +1191,26 @@ class SolutionDataWriter(object): return rst def table_div(self, max_cols, header_flag=1, indent=2): - out = "" + out = u"" for i in range(indent): - out += " " + out += u" " if header_flag == 1: - style = "=" + style = u"=" else: - style = "-" + style = u"-" for max_col in max_cols: - out += max_col * style + " " - out += "\n" + out += max_col * style + u" " + out += u"\n" return out def normalize_row(self, row, max_cols, indent=2): - r = "" + r = u"" for i in range(indent): - r += " " + r += u" " for i, max_col in enumerate(max_cols): - r += row[i] + (max_col - len(row[i]) + 1) * " " - return r + "\n" + r += row[i] + (max_col - len(row[i]) + 1) * u" " + return r + u"\n" def writeTextToFile(self, path,text): @@ -1153,19 +1218,21 @@ class SolutionDataWriter(object): if not os.path.exists(os.path.dirname(path)): os.makedirs(os.path.dirname(path)) with open(path, 'w') as f: - f.write(text) + f.write(text.encode('utf-8')) + return True - def writeTxtTableToFile(self, path,table,head=""): - if not head == "": - return self.writeTextToFile(path+".txt", head+"\n\n"+self.make_table(table)) + def writeTxtTableToFile(self, path,table,head=u""): + if not head == u"": + return self.writeTextToFile(path+".txt", head+u"\n\n"+self.make_table(table)) return self.writeTextToFile(path+".txt", self.make_table(table)) def writeCsvTableToFile(self, path,table): if not os.path.exists(os.path.dirname(path+".csv")): os.makedirs(os.path.dirname(path+".csv")) with open(path+".csv", 'wb') as f: - writer = csv.writer(f) + #writer = csv.writer(f) + writer = UnicodeWriter(f) writer.writerows(table) return True @@ -1203,20 +1270,20 @@ class SolutionDataWriter(object): # link = "{0}".format(text) # pass # TODO: Fix this! - link = ":download:`{0}<{1}>`".format(text,target) + link = u":download:`{0}<{1}>`".format(text,target) return link def m(self, math): - text = ":math:`{0}`".format(math) + text = u":math:`{0}`".format(math) return text def c(self, number): #text = "{0:5.2f} |degC|".format(self.checkForNumber(number)-273.15) - text = "{0:5.2f}".format(self.checkForNumber(number)-273.15) + text = u"{0:5.2f}".format(self.checkForNumber(number)-273.15) return text def x(self, number): - text = "{0:3.2f}".format(self.checkForNumber(number)) + text = u"{0:3.2f}".format(self.checkForNumber(number)) return text @@ -1229,9 +1296,9 @@ class SolutionDataWriter(object): if np.any(xmin>0.0) and np.any(xmax<1.0): use_x = True else: use_x = False - header = ['Name', 'Description', 'Reference', \ - self.m('T_{min}')+" (|degC|)", self.m('T_{max}')+" (|degC|)"] - if use_x: header.extend([self.m('x_{min}'), self.m('x_{max}')]) + header = [u'Name', u'Description', u'Reference', \ + self.m(u'T_\\text{min}')+u" (°C)", self.m(u'T_\\text{max}')+u" (°C)"] + if use_x: header.extend([self.m(u'x_\\text{min}'), self.m(u'x_\\text{max}')]) testTable = [] testTable.append(header) # Headline diff --git a/dev/incompressible_liquids/json/AEG.json b/dev/incompressible_liquids/json/AEG.json index 5dbb2abe..4ce8eac2 100644 --- a/dev/incompressible_liquids/json/AEG.json +++ b/dev/incompressible_liquids/json/AEG.json @@ -82,7 +82,7 @@ [ -9.073173e-07, 4.118599e-06, - -4.391163e-06, + -4.391164e-06, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/APG.json b/dev/incompressible_liquids/json/APG.json index cea76439..d37cb1a0 100644 --- a/dev/incompressible_liquids/json/APG.json +++ b/dev/incompressible_liquids/json/APG.json @@ -80,7 +80,7 @@ 0.000000e+00 ], [ - 3.270564e-08, + 3.270563e-08, -2.261472e-07, 3.368862e-07, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/ExampleDigital.json b/dev/incompressible_liquids/json/ExampleDigital.json index 27b0714b..5129879e 100644 --- a/dev/incompressible_liquids/json/ExampleDigital.json +++ b/dev/incompressible_liquids/json/ExampleDigital.json @@ -76,8 +76,8 @@ ], [ -4.117538e-10, - 3.193137e-09, - -3.138206e-09, + 3.193145e-09, + -3.138209e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -160,9 +160,9 @@ 0.000000e+00 ], [ - -1.548862e-10, - 8.615137e-10, - -8.067025e-11, + -1.548841e-10, + 8.615147e-10, + -8.067086e-11, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/FRE.json b/dev/incompressible_liquids/json/FRE.json index 171f96e9..b5b23321 100644 --- a/dev/incompressible_liquids/json/FRE.json +++ b/dev/incompressible_liquids/json/FRE.json @@ -86,9 +86,9 @@ 0.000000e+00 ], [ - -6.379647e-08, + -6.379657e-08, 3.363858e-07, - -3.132405e-07, + -3.132406e-07, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -124,8 +124,8 @@ ], [ -2.058397e-06, - -3.348859e-10, - 5.467784e-10, + -3.348864e-10, + 5.467785e-10, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/GKN.json b/dev/incompressible_liquids/json/GKN.json index 1d053bcd..ec7a0761 100644 --- a/dev/incompressible_liquids/json/GKN.json +++ b/dev/incompressible_liquids/json/GKN.json @@ -45,7 +45,7 @@ [ 1.059366e-09, -2.212375e-09, - 2.522431e-10, + 2.522430e-10, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/HC20.json b/dev/incompressible_liquids/json/HC20.json index 11541c8f..7ebecfa0 100644 --- a/dev/incompressible_liquids/json/HC20.json +++ b/dev/incompressible_liquids/json/HC20.json @@ -16,7 +16,7 @@ 1.000000e-03 ], [ - 4.945495e-17 + 4.945410e-17 ], [ 4.446923e-20 diff --git a/dev/incompressible_liquids/json/HC30.json b/dev/incompressible_liquids/json/HC30.json index fcd9bfe8..71cfef68 100644 --- a/dev/incompressible_liquids/json/HC30.json +++ b/dev/incompressible_liquids/json/HC30.json @@ -16,7 +16,7 @@ 1.000000e-03 ], [ - 3.613874e-17 + 3.613676e-17 ], [ 3.832824e-20 diff --git a/dev/incompressible_liquids/json/HC40.json b/dev/incompressible_liquids/json/HC40.json index ef768f13..9a2a6a61 100644 --- a/dev/incompressible_liquids/json/HC40.json +++ b/dev/incompressible_liquids/json/HC40.json @@ -16,7 +16,7 @@ 1.000000e-03 ], [ - 9.106767e-17 + 9.107021e-17 ], [ 1.979940e-20 diff --git a/dev/incompressible_liquids/json/HFE2.json b/dev/incompressible_liquids/json/HFE2.json index 80c41f99..28de4644 100644 --- a/dev/incompressible_liquids/json/HFE2.json +++ b/dev/incompressible_liquids/json/HFE2.json @@ -33,7 +33,7 @@ -2.269000e+00 ], [ - -1.492754e-13 + -1.493085e-13 ], [ 1.637145e-16 @@ -65,7 +65,7 @@ 2.000000e+00 ], [ - 1.348892e-13 + 1.348812e-13 ], [ -2.528359e-16 diff --git a/dev/incompressible_liquids/json/LiBr.json b/dev/incompressible_liquids/json/LiBr.json index ed24e075..cf5c685a 100644 --- a/dev/incompressible_liquids/json/LiBr.json +++ b/dev/incompressible_liquids/json/LiBr.json @@ -160,7 +160,7 @@ 0.000000e+00 ], [ - 3.074006e-05, + 3.074005e-05, 4.644860e-04, -4.128601e-04, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/MEA2.json b/dev/incompressible_liquids/json/MEA2.json index 0455b474..6f66cfd6 100644 --- a/dev/incompressible_liquids/json/MEA2.json +++ b/dev/incompressible_liquids/json/MEA2.json @@ -80,7 +80,7 @@ 0.000000e+00 ], [ - -1.261406e-06, + -1.261407e-06, 1.595687e-04, -2.874999e-04, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/MMG2.json b/dev/incompressible_liquids/json/MMG2.json index c916d78a..6771f6ce 100644 --- a/dev/incompressible_liquids/json/MMG2.json +++ b/dev/incompressible_liquids/json/MMG2.json @@ -41,9 +41,9 @@ 0.000000e+00 ], [ - -3.201909e-14, - -8.491526e-14, - 1.265223e-12, + -3.116864e-14, + -8.496811e-14, + 1.264271e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -78,9 +78,9 @@ 0.000000e+00 ], [ - 1.986411e-11, - -3.429773e-10, - 7.354027e-10, + 1.984946e-11, + -3.372422e-10, + 7.093277e-10, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -130,9 +130,9 @@ 0.000000e+00 ], [ - 5.248779e-11, - -7.030447e-10, - 1.861376e-09, + 5.482548e-11, + -6.893357e-10, + 1.956098e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -167,9 +167,9 @@ 0.000000e+00 ], [ - -1.262879e-15, - -4.101099e-13, - 1.456601e-12, + -9.388323e-15, + -4.140820e-13, + 1.454213e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MNA2.json b/dev/incompressible_liquids/json/MNA2.json index 35d67c0b..419bf94a 100644 --- a/dev/incompressible_liquids/json/MNA2.json +++ b/dev/incompressible_liquids/json/MNA2.json @@ -39,8 +39,8 @@ ], [ 5.963914e-14, - -1.171232e-12, - 3.544925e-12, + -1.171287e-12, + 3.544939e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -75,9 +75,9 @@ 0.000000e+00 ], [ - 2.382838e-11, - -4.371017e-10, - 2.078221e-09, + 2.382339e-11, + -4.369353e-10, + 2.078946e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -129,7 +129,7 @@ [ -7.407941e-11, 1.506720e-09, - -5.254342e-09, + -5.256161e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -164,9 +164,9 @@ 0.000000e+00 ], [ - 1.144571e-14, - -5.037253e-13, - 2.031073e-12, + 1.141968e-14, + -5.033025e-13, + 2.031147e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 diff --git a/dev/incompressible_liquids/json/PK2.json b/dev/incompressible_liquids/json/PK2.json index 4dd4453d..68197524 100644 --- a/dev/incompressible_liquids/json/PK2.json +++ b/dev/incompressible_liquids/json/PK2.json @@ -80,7 +80,7 @@ 0.000000e+00 ], [ - 7.584600e-07, + 7.584599e-07, -1.681891e-06, 8.927989e-07, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/PKL.json b/dev/incompressible_liquids/json/PKL.json index 3d853e68..a4439993 100644 --- a/dev/incompressible_liquids/json/PKL.json +++ b/dev/incompressible_liquids/json/PKL.json @@ -80,7 +80,7 @@ 0.000000e+00 ], [ - -8.851911e-08, + -8.851905e-08, 8.435685e-07, -1.848113e-06, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/TY10.json b/dev/incompressible_liquids/json/TY10.json index 879c2948..d23f9857 100644 --- a/dev/incompressible_liquids/json/TY10.json +++ b/dev/incompressible_liquids/json/TY10.json @@ -33,10 +33,10 @@ -4.000000e-01 ], [ - -2.441934e-14 + -2.441148e-14 ], [ - 4.087442e-17 + 4.090153e-17 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/TY15.json b/dev/incompressible_liquids/json/TY15.json index 6405b29b..e9f5f6c1 100644 --- a/dev/incompressible_liquids/json/TY15.json +++ b/dev/incompressible_liquids/json/TY15.json @@ -16,7 +16,7 @@ 7.000000e-04 ], [ - 6.853149e-17 + 6.853806e-17 ], [ -2.456396e-20 @@ -33,7 +33,7 @@ -4.000000e-01 ], [ - -8.005915e-15 + -8.003880e-15 ], [ -3.881444e-17 diff --git a/dev/incompressible_liquids/json/TY20.json b/dev/incompressible_liquids/json/TY20.json index 3a8199a5..4b6364ee 100644 --- a/dev/incompressible_liquids/json/TY20.json +++ b/dev/incompressible_liquids/json/TY20.json @@ -33,7 +33,7 @@ -4.000000e-01 ], [ - 2.591269e-14 + 2.590801e-14 ], [ -5.114724e-17 diff --git a/dev/incompressible_liquids/json/XLT2.json b/dev/incompressible_liquids/json/XLT2.json index 4ee946bd..ec2318af 100644 --- a/dev/incompressible_liquids/json/XLT2.json +++ b/dev/incompressible_liquids/json/XLT2.json @@ -65,7 +65,7 @@ 2.100000e+00 ], [ - 8.650944e-15 + 8.662076e-15 ], [ -1.546072e-16 diff --git a/dev/incompressible_liquids/json/ZAC.json b/dev/incompressible_liquids/json/ZAC.json index dbad0799..4af4b9ad 100644 --- a/dev/incompressible_liquids/json/ZAC.json +++ b/dev/incompressible_liquids/json/ZAC.json @@ -38,7 +38,7 @@ 0.000000e+00 ], [ - 7.748626e-09, + 7.748627e-09, -1.399289e-07, 2.343560e-07, 0.000000e+00, diff --git a/dev/incompressible_liquids/json/ZS40.json b/dev/incompressible_liquids/json/ZS40.json index ea95e2a7..a5efc609 100644 --- a/dev/incompressible_liquids/json/ZS40.json +++ b/dev/incompressible_liquids/json/ZS40.json @@ -36,7 +36,7 @@ -4.200618e-10 ], [ - 4.712469e-13 + 4.712470e-13 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/ZS45.json b/dev/incompressible_liquids/json/ZS45.json index d7466db8..ce9ad2c3 100644 --- a/dev/incompressible_liquids/json/ZS45.json +++ b/dev/incompressible_liquids/json/ZS45.json @@ -33,7 +33,7 @@ -5.524646e-01 ], [ - -3.713730e-11 + -3.713729e-11 ], [ 3.828340e-14 diff --git a/dev/incompressible_liquids/json/ZS55.json b/dev/incompressible_liquids/json/ZS55.json index 02edaf92..f408acd2 100644 --- a/dev/incompressible_liquids/json/ZS55.json +++ b/dev/incompressible_liquids/json/ZS55.json @@ -33,10 +33,10 @@ -6.044286e-01 ], [ - -2.253584e-12 + -2.253580e-12 ], [ - -3.942105e-15 + -3.942159e-15 ] ], "type": "polynomial" diff --git a/src/Backends/Incompressible/IncompressibleBackend.cpp b/src/Backends/Incompressible/IncompressibleBackend.cpp index ce233d0f..2b49a6af 100644 --- a/src/Backends/Incompressible/IncompressibleBackend.cpp +++ b/src/Backends/Incompressible/IncompressibleBackend.cpp @@ -67,7 +67,7 @@ void IncompressibleBackend::update(CoolProp::input_pairs input_pair, double valu this->_phase = iphase_liquid; if (get_debug_level()>=50) std::cout << format("Incompressible backend: Phase type is %d ",this->_phase) << std::endl; - switch (input_pair) + switch (input_pair) { case PT_INPUTS: { _p = value1; @@ -94,6 +94,12 @@ void IncompressibleBackend::update(CoolProp::input_pairs input_pair, double valu _T = this->HmassP_flash(value1, value2); break; } + case QT_INPUTS: { + if (value1!=0) {throw ValueError("Incompressible fluids can only handle saturated liquid, Q=0.");} + _T = value2; + _p = fluid->psat(value2, _fractions[0]); + break; + } default: { throw ValueError( format("This pair of inputs [%s] is not yet supported", @@ -139,7 +145,11 @@ void IncompressibleBackend::set_mass_fractions(const std::vector &m this->_fractions = std::vector(1,0); if (get_debug_level()>=20) std::cout << format("Incompressible backend: Overwriting fractions for pure fluid with %s -> %s",vec_to_string(mass_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; } else if (fluid->getxid()==IFRAC_MASS) { - this->_fractions = mass_fractions; + if (this->_fractions[0]!=mass_fractions[0]) { + if (get_debug_level()>=20) std::cout << format("Incompressible backend: Updating the mass fractions triggered a change in reference state %s -> %s",vec_to_string(mass_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; + this->_fractions = mass_fractions; + fluid->set_reference_state(fluid->getTref(), fluid->getpref(), this->_fractions[0], fluid->gethref(), fluid->getsref()); + } } else { this->_fractions.clear(); for (std::size_t i = 0; i < mass_fractions.size(); i++) { diff --git a/src/Backends/Incompressible/IncompressibleFluid.cpp b/src/Backends/Incompressible/IncompressibleFluid.cpp index bde623cf..bd90541b 100644 --- a/src/Backends/Incompressible/IncompressibleFluid.cpp +++ b/src/Backends/Incompressible/IncompressibleFluid.cpp @@ -491,7 +491,7 @@ bool IncompressibleFluid::checkP(double T, double p, double x) { double ps = 0.0; if (p_sat.type!=IncompressibleData::INCOMPRESSIBLE_NOT_SET) ps = psat(T, x); if (p < 0.0) throw ValueError(format("You cannot use negative pressures: %f < %f. ", p, 0.0)); - if (ps>0.0 && p < ps) throw ValueError(format("Equations are valid for liquid phase only: %f < %f (psat). ", p, ps)); + if (ps> 0.0 && p < ps) throw ValueError(format("Equations are valid for liquid phase only: %f < %f (psat). ", p, ps)); return true; } From 85b2443be30807ea0b1918070b47105ed098e976 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Wed, 24 Sep 2014 10:34:45 +0200 Subject: [PATCH 07/54] Fixed the broken reference state setter function --- Web/fluid_properties/Incompressibles.rst | 16 +++---- .../Incompressible/IncompressibleBackend.cpp | 46 ++++++++++++------- .../Incompressible/IncompressibleBackend.h | 11 ++++- .../Incompressible/IncompressibleFluid.cpp | 1 + src/Solvers.cpp | 32 ++++++------- src/Tests/TestObjects.cpp | 6 +-- 6 files changed, 67 insertions(+), 45 deletions(-) diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index b4fe47d0..2d0858cf 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -40,10 +40,10 @@ and a pressure of 1 atm according to the U.S. National Institute of Standards an Technology ([NIST](http://www.nist.gov)). .. math:: - T_\text{ref} &= 293.15\,\text{K} &= 68\,\text{°F} \\ - p_\text{ref} &= 101325\,\text{Pa} &= 14.696\,\text{psi} \\ - h_\text{ref} &= 0 & \\ - s_\text{ref} &= 0 & \\ + T_\text{ref} &= 293.15\:\text{K} &= 68\:\text{°F} \\ + p_\text{ref} &= 101325\:\text{Pa} &= 14.696\:\text{psi} \\ + h_\text{ref} &= 0\:\text{KJ}\,\text{kg}^{-1} & \\ + s_\text{ref} &= 0\:\text{KJ}\,\text{kg}^{-1}\,\text{K}^{-1} & \\ If you use a mixture, the reference state gets updated each time you change the composition. @@ -60,10 +60,10 @@ internally, which makes this combination by far the fastest. However, also the other inputs should be fast compared to the full Helmholtz-based EOS implemented for then compressible fluids. -A call to the top-level function ``PropsSI`` can provide : density, heat capacity, -internal energy, enthalpy, entropy, viscosity and thermal conductivity. Hence, -the available output keys are: ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, -``Tmin`` and ``Tmax``. +A call to the top-level function ``PropsSI`` can provide : temperature, pressure, +density, heat capacity, internal energy, enthalpy, entropy, viscosity and +thermal conductivity. Hence, the available output keys are: ``T``, ``P``, ``D``, +``C``, ``U``, ``H``, ``S``, ``V``, ``L``, ``Tmin`` and ``Tmax``. .. ipython:: diff --git a/src/Backends/Incompressible/IncompressibleBackend.cpp b/src/Backends/Incompressible/IncompressibleBackend.cpp index 2b49a6af..d81d510b 100644 --- a/src/Backends/Incompressible/IncompressibleBackend.cpp +++ b/src/Backends/Incompressible/IncompressibleBackend.cpp @@ -114,6 +114,21 @@ void IncompressibleBackend::update(CoolProp::input_pairs input_pair, double valu fluid->checkTPX(_T,_p,_fractions[0]); } +/// Set the fractions +/** +@param fractions The vector of fractions of the components converted to the correct input +*/ +void IncompressibleBackend::set_fractions(const std::vector &fractions){ + if (get_debug_level()>=10) std::cout << format("Incompressible backend: Called set_fractions with %s ",vec_to_string(fractions).c_str()) << std::endl; + if (fractions.size()!=1) throw ValueError(format("The incompressible backend only supports one entry in the fraction vector and not %d.",fractions.size())); + if ( ( this->_fractions.size()!=1 ) || + ( this->_fractions[0]!=fractions[0] ) ) { // Change it! + if (get_debug_level()>=20) std::cout << format("Incompressible backend: Updating the fractions triggered a change in reference state %s -> %s",vec_to_string(this->_fractions).c_str(),vec_to_string(fractions).c_str()) << std::endl; + this->_fractions = fractions; + fluid->set_reference_state(fluid->getTref(), fluid->getpref(), this->_fractions[0], fluid->gethref(), fluid->getsref()); + } +} + /// Set the mole fractions /** @param mole_fractions The vector of mole fractions of the components @@ -122,15 +137,16 @@ void IncompressibleBackend::set_mole_fractions(const std::vector &m if (get_debug_level()>=10) std::cout << format("Incompressible backend: Called set_mole_fractions with %s ",vec_to_string(mole_fractions).c_str()) << std::endl; if (mole_fractions.size()!=1) throw ValueError(format("The incompressible backend only supports one entry in the mole fraction vector and not %d.",mole_fractions.size())); if (fluid->getxid()==IFRAC_PURE) { - this->_fractions = std::vector(1,0); + this->set_fractions(std::vector(1,0)); if (get_debug_level()>=20) std::cout << format("Incompressible backend: Overwriting fractions for pure fluid with %s -> %s",vec_to_string(mole_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; } else if (fluid->getxid()==IFRAC_MOLE) { - this->_fractions = mole_fractions; + this->set_fractions(mole_fractions); } else { - this->_fractions.clear(); + std::vector tmp_fractions; for (std::size_t i = 0; i < mole_fractions.size(); i++) { - this->_fractions.push_back((long double) fluid->inputFromMole(0.0, mole_fractions[i])); + tmp_fractions.push_back((long double) fluid->inputFromMole(0.0, mole_fractions[i])); } + this->set_fractions(tmp_fractions); } } @@ -142,19 +158,16 @@ void IncompressibleBackend::set_mass_fractions(const std::vector &m if (get_debug_level()>=10) std::cout << format("Incompressible backend: Called set_mass_fractions with %s ",vec_to_string(mass_fractions).c_str()) << std::endl; if (mass_fractions.size()!=1) throw ValueError(format("The incompressible backend only supports one entry in the mass fraction vector and not %d.",mass_fractions.size())); if (fluid->getxid()==IFRAC_PURE) { - this->_fractions = std::vector(1,0); + this->set_fractions(std::vector(1,0)); if (get_debug_level()>=20) std::cout << format("Incompressible backend: Overwriting fractions for pure fluid with %s -> %s",vec_to_string(mass_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; } else if (fluid->getxid()==IFRAC_MASS) { - if (this->_fractions[0]!=mass_fractions[0]) { - if (get_debug_level()>=20) std::cout << format("Incompressible backend: Updating the mass fractions triggered a change in reference state %s -> %s",vec_to_string(mass_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; - this->_fractions = mass_fractions; - fluid->set_reference_state(fluid->getTref(), fluid->getpref(), this->_fractions[0], fluid->gethref(), fluid->getsref()); - } + this->set_fractions(mass_fractions); } else { - this->_fractions.clear(); + std::vector tmp_fractions; for (std::size_t i = 0; i < mass_fractions.size(); i++) { - this->_fractions.push_back((long double) fluid->inputFromMass(0.0, mass_fractions[i])); + tmp_fractions.push_back((long double) fluid->inputFromMass(0.0, mass_fractions[i])); } + this->set_fractions(tmp_fractions); } } @@ -166,15 +179,16 @@ void IncompressibleBackend::set_volu_fractions(const std::vector &v if (get_debug_level()>=10) std::cout << format("Incompressible backend: Called set_volu_fractions with %s ",vec_to_string(volu_fractions).c_str()) << std::endl; if (volu_fractions.size()!=1) throw ValueError(format("The incompressible backend only supports one entry in the volume fraction vector and not %d.",volu_fractions.size())); if (fluid->getxid()==IFRAC_PURE) { - this->_fractions = std::vector(1,0); + this->set_fractions(std::vector(1,0)); if (get_debug_level()>=20) std::cout << format("Incompressible backend: Overwriting fractions for pure fluid with %s -> %s",vec_to_string(volu_fractions).c_str(),vec_to_string(this->_fractions).c_str()) << std::endl; } else if (fluid->getxid()==IFRAC_VOLUME) { - this->_fractions = volu_fractions; + this->set_fractions(volu_fractions); } else { - this->_fractions.clear(); + std::vector tmp_fractions; for (std::size_t i = 0; i < volu_fractions.size(); i++) { - this->_fractions.push_back((long double) fluid->inputFromVolume(0.0, volu_fractions[i])); + tmp_fractions.push_back((long double) fluid->inputFromVolume(0.0, volu_fractions[i])); } + this->set_fractions(tmp_fractions); } } diff --git a/src/Backends/Incompressible/IncompressibleBackend.h b/src/Backends/Incompressible/IncompressibleBackend.h index 66765a5d..b2174eed 100644 --- a/src/Backends/Incompressible/IncompressibleBackend.h +++ b/src/Backends/Incompressible/IncompressibleBackend.h @@ -18,6 +18,13 @@ protected: //int _fractions_id; std::vector _fractions; IncompressibleFluid *fluid; + + /// Set the fractions + /** + @param fractions The vector of fractions of the components converted to the correct input + */ + void set_fractions(const std::vector &fractions); + public: IncompressibleBackend(); virtual ~IncompressibleBackend(){}; @@ -68,7 +75,7 @@ public: /// Check if the mole fractions have been set, etc. void check_status(); - + /// Calculate T given pressure and density /** @param rhomass The mass density in kg/m^3 @@ -90,7 +97,7 @@ public: @returns T The temperature in K */ long double PSmass_flash(long double p, long double smass); - + /// Calculate T given pressure and internal energy /** @param umass The mass internal energy in J/kg diff --git a/src/Backends/Incompressible/IncompressibleFluid.cpp b/src/Backends/Incompressible/IncompressibleFluid.cpp index bd90541b..48886828 100644 --- a/src/Backends/Incompressible/IncompressibleFluid.cpp +++ b/src/Backends/Incompressible/IncompressibleFluid.cpp @@ -16,6 +16,7 @@ This fluid instance is populated using an entry from a JSON file //IncompressibleFluid::IncompressibleFluid(); void IncompressibleFluid::set_reference_state(double T0, double p0, double x0, double h0, double s0){ + this->Tref = T0; this->rhoref = rho(T0,p0,x0); this->pref = p0; this->uref = h0 - p0/rhoref; diff --git a/src/Solvers.cpp b/src/Solvers.cpp index 109c0bc0..40833dba 100644 --- a/src/Solvers.cpp +++ b/src/Solvers.cpp @@ -9,11 +9,11 @@ namespace CoolProp{ /** In this formulation of the Multi-Dimensional Newton-Raphson solver the Jacobian matrix is known. -Therefore, the dx vector can be obtained from +Therefore, the dx vector can be obtained from J(x)dx=-f(x) -for a given value of x. The pointer to the class FuncWrapperND that is passed in must implement the call() and Jacobian() +for a given value of x. The pointer to the class FuncWrapperND that is passed in must implement the call() and Jacobian() functions, each of which take the vector x. The data is managed using std::vector vectors @param f A pointer to an subclass of the FuncWrapperND class that implements the call() and Jacobian() functions @@ -33,7 +33,7 @@ std::vector NDNewtonRaphson_Jacobian(FuncWrapperND *f, std::vectortol){ f0 = f->call(x0); J = f->Jacobian(x0); - + // Negate f0 negative_f0 = f0; for (unsigned int i = 0; i NDNewtonRaphson_Jacobian(FuncWrapperND *f, std::vectortol) { @@ -137,11 +137,11 @@ double Secant(FuncWrapper1D* f, double x0, double dx, double tol, int maxiter, s if (iter>1) { double deltax = x2-x1; - if (std::abs(deltax)<1e-14) - { + if (std::abs(deltax)<1e-14) + { if (std::abs(fval) < tol*10) { - return x; + return x; } else { @@ -151,7 +151,7 @@ double Secant(FuncWrapper1D* f, double x0, double dx, double tol, int maxiter, s y2=fval; x3=x2-y2/(y2-y1)*(x2-x1); y1=y2; x1=x2; x2=x3; - + } if (iter>maxiter) { @@ -166,7 +166,7 @@ double Secant(FuncWrapper1D* f, double x0, double dx, double tol, int maxiter, s /** In the secant function, a 1-D Newton-Raphson solver is implemented. An initial guess for the solution is provided. -@param f A pointer to an instance of the FuncWrapper1D class that implements the call() function +@param f A pointer to an instance of the FuncWrapper1D class that implements the call() function @param x0 The inital guess for the solution @param xmax The upper bound for the solution @param xmin The lower bound for the solution @@ -181,7 +181,7 @@ double BoundedSecant(FuncWrapper1D* f, double x0, double xmin, double xmax, doub double x1=0,x2=0,x3=0,y1=0,y2=0,x,fval=999; int iter=1; errstring = ""; - + if (std::abs(dx)==0){ errstring = "dx cannot be zero"; return _HUGE;} while (iter<=3 || std::abs(fval)>tol) { @@ -204,7 +204,7 @@ double BoundedSecant(FuncWrapper1D* f, double x0, double xmin, double xmax, doub x3 = (xmax + x2)/2; } y1=y2; x1=x2; x2=x3; - + } if (iter>maxiter) { @@ -216,7 +216,7 @@ double BoundedSecant(FuncWrapper1D* f, double x0, double xmin, double xmax, doub return x3; } -/** +/** This function implements a 1-D bounded solver using the algorithm from Brent, R. P., Algorithms for Minimization Without Derivatives. Englewood Cliffs, NJ: Prentice-Hall, 1973. Ch. 3-4. @@ -243,11 +243,11 @@ double Brent(FuncWrapper1D* f, double a, double b, double macheps, double t, int // If one of the boundaries is to within tolerance, just stop if (std::abs(fb) < t) { return b;} if (!ValidNumber(fb)){ - throw ValueError(format("Brent's method f(b) is NAN for b = %g",b).c_str()); + throw ValueError(format("Brent's method f(b) is NAN for b = %g, other input was a = %g",b,a).c_str()); } if (std::abs(fa) < t) { return a;} if (!ValidNumber(fa)){ - throw ValueError(format("Brent's method f(a) is NAN for a = %g",a).c_str()); + throw ValueError(format("Brent's method f(a) is NAN for a = %g, other input was b = %g",a,b).c_str()); } if (fa*fb>0){ throw ValueError(format("Inputs in Brent [%f,%f] do not bracket the root. Function values are [%f,%f]",a,b,fa,fb)); diff --git a/src/Tests/TestObjects.cpp b/src/Tests/TestObjects.cpp index 6b56f6b0..9ee33bea 100644 --- a/src/Tests/TestObjects.cpp +++ b/src/Tests/TestObjects.cpp @@ -199,9 +199,9 @@ CoolProp::IncompressibleFluid CoolPropTesting::incompressibleFluidObject(){ //CH3OH.setMassToMole(mass2mole); //XLT.set_reference_state(25+273.15, 1.01325e5, 0.0, 0.0, 0.0); - double Tref = 25+273.15; - double pref = 0.0; - double xref = 0.25; + double Tref = 20+273.15; + double pref = 101325; + double xref = 0.0; double href = 0.0; double sref = 0.0; CH3OH.set_reference_state(Tref, pref, xref, href, sref); From 4245ae89750ac4b68cf01f0583405cb2e7b06563 Mon Sep 17 00:00:00 2001 From: coolprop Date: Wed, 24 Sep 2014 02:42:50 -0700 Subject: [PATCH 08/54] Fixed sphinx doxygen issue --- dev/buildbot/master/master.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/buildbot/master/master.cfg b/dev/buildbot/master/master.cfg index 224913d5..ac800329 100644 --- a/dev/buildbot/master/master.cfg +++ b/dev/buildbot/master/master.cfg @@ -97,7 +97,7 @@ def sphinx_slave(platform, git_mode = 'incremental'): # Run sphinx build factory.addStep(ShellCommand(command=["python", "-c", "\"import CoolProp; print(CoolProp.__file___)\""], workdir= 'build/wrappers/Python', haltOnFailure = True)) # Run doxygen build - factory.addStep(ShellCommand(command=' '.join(["doxygen","Doxyfile","&&","mv","CoolPropDoxyLink.tag","Web/_static/doxygen"]), workdir= 'build', haltOnFailure = True)) + factory.addStep(ShellCommand(command=' '.join(["doxygen","Doxyfile"]), workdir= 'build', haltOnFailure = True)) # Run sphinx apidoc #factory.addStep(ShellCommand(command=["sphinx-apidoc","-T","-f","-o","apidoc","../CoolProp"],workdir= 'build/Web', haltOnFailure = True)) # Run sphinx build From a03b3ec527119211fdf8d9f06c60e7e910069617 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Wed, 24 Sep 2014 13:07:49 +0200 Subject: [PATCH 09/54] Readded the LinearAlgebra notebook --- .../LinearAlgebra.ipynb | 306 ++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 dev/incompressible_liquids/LinearAlgebra.ipynb diff --git a/dev/incompressible_liquids/LinearAlgebra.ipynb b/dev/incompressible_liquids/LinearAlgebra.ipynb new file mode 100644 index 00000000..6c511307 --- /dev/null +++ b/dev/incompressible_liquids/LinearAlgebra.ipynb @@ -0,0 +1,306 @@ +{ + "metadata": { + "name": "", + "signature": "sha256:6de5b361bf724471b38e3a32d973641aeac571541b15819486c1f0449e310b07" + }, + "nbformat": 3, + "nbformat_minor": 0, + "worksheets": [ + { + "cells": [ + { + "cell_type": "heading", + "level": 1, + "metadata": {}, + "source": [ + "Linear algebra for multidimensional polynomial fitting" + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "import numpy as np\n", + "import itertools\n", + "# A small data set\n", + "#T_in = np.array([20,24,35,40])+273.15\n", + "#x_in = np.array([47,55,70,78,82])/100.0\n", + "#rho_in = np.array([[1047,1033,1020,1000,990],[997,983,970,950,940],[947,933,920,900,895],[987,883,870,850,845]])\n", + "#\n", + "# large data set\n", + "T_in = np.array([ -45 , -40 , -35 , -30 , -25 , -20 , -15 , -10])+273.15 # Kelvin\n", + "x_in = np.array([ 5 , 10 , 15 , 20 , 25 , 30 , 35 ])/100.0 # mass fraction\n", + " \n", + "rho_in = np.array([\n", + " [1064.0, 1054.6, 1045.3, 1036.3, 1027.4, 1018.6, 1010.0],\n", + " [1061.3, 1052.1, 1043.1, 1034.3, 1025.6, 1017.0, 1008.6],\n", + " [1057.6, 1048.8, 1040.1, 1031.5, 1023.1, 1014.8, 1006.7],\n", + " [1053.1, 1044.6, 1036.2, 1028.0, 1019.9, 1012.0, 1004.1],\n", + " [1047.5, 1039.4, 1031.5, 1023.7, 1016.0, 1008.4, 1000.9],\n", + " [1040.7, 1033.2, 1025.7, 1018.4, 1011.2, 1004.0, 997.0],\n", + " [1032.3, 1025.3, 1018.5, 1011.7, 1005.1, 998.5, 992.0],\n", + " [1021.5, 1015.3, 1009.2, 1003.1, 997.1, 991.2, 985.4]]) # kg/m3" + ], + "language": "python", + "metadata": {}, + "outputs": [], + "prompt_number": 13 + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Minimizing the squared error $\\epsilon(\\mathbf{c}) = \\sqrt{\\sum (\\mathbf{z} - \\mathbf{A} \\cdot \\mathbf{c})^2 }$ can be achieved by solving the system of orthogonal equations given by $\\mathbf{A}^\\text{T}\\mathbf{A} \\cdot \\mathbf{c} =\\mathbf{A}^\\text{T}\\mathbf{z}$. Using Python tools, we can leave this to the software and we only have to construct the Van der Monde matrix $\\mathbf{A}$ of the independent variable and equate it with the result vector of the dependent variable." + ] + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "def getCoeffs1d(x,z,order):\n", + " if (len(x)" + ] + } + ], + "prompt_number": 47 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [], + "language": "python", + "metadata": {}, + "outputs": [] + } + ], + "metadata": {} + } + ] +} \ No newline at end of file From d2c8c5d35ad7169742f90d77af71f10415d49df4 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Wed, 24 Sep 2014 15:14:10 +0200 Subject: [PATCH 10/54] Added IPython notebook again, finished documentation for incopressibles. --- Web/fluid_properties/Incompressibles.bib | 9 + Web/fluid_properties/Incompressibles.rst | 243 +++++++----------- .../CPIncomp/WriterObjects.py | 7 +- .../LinearAlgebra.ipynb | 57 +--- 4 files changed, 118 insertions(+), 198 deletions(-) diff --git a/Web/fluid_properties/Incompressibles.bib b/Web/fluid_properties/Incompressibles.bib index 75f75546..b857b7cf 100644 --- a/Web/fluid_properties/Incompressibles.bib +++ b/Web/fluid_properties/Incompressibles.bib @@ -14,6 +14,15 @@ Timestamp = {2014.09.17} } +@Manual{Jones2001, + Title = {{SciPy}: Open source scientific tools for {Python}}, + Author = {Eric Jones and Travis Oliphant and Pearu Peterson and others}, + + Owner = {jowr}, + Timestamp = {2014.09.24}, + Url = {http://www.scipy.org/} +} + @TechReport{Kauffeld2001, Title = {{RP-1166---Behavior of Ice Slurries in Thermal Storage Systems}}, Author = {Michael Kauffeld}, diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index 2d0858cf..cba49bad 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -37,16 +37,22 @@ You can read more about these reports in a dedicated All incompressible fluids have an arbitrary reference state for enthalpy and entropy. During initialisation, the reference state is defined as a temperature of 20 °C and a pressure of 1 atm according to the U.S. National Institute of Standards and -Technology ([NIST](http://www.nist.gov)). +Technology (`NIST `_). .. math:: T_\text{ref} &= 293.15\:\text{K} &= 68\:\text{°F} \\ p_\text{ref} &= 101325\:\text{Pa} &= 14.696\:\text{psi} \\ - h_\text{ref} &= 0\:\text{KJ}\,\text{kg}^{-1} & \\ - s_\text{ref} &= 0\:\text{KJ}\,\text{kg}^{-1}\,\text{K}^{-1} & \\ + h_\text{ref} &= 0\:\text{J}\,\text{kg}^{-1} & \\ + s_\text{ref} &= 0\:\text{J}\,\text{kg}^{-1}\,\text{K}^{-1} & \\ -If you use a mixture, the reference state gets updated each time you change the -composition. +.. note:: + If you use a mixture, the reference state gets updated each time you change + the composition. Furthermore, not all temperatures can be used as reference + temperature since the fraction :math:`T_\text{in,1} / T_\text{in,0}` occurs in the integral used to + calculate entropy. The centered fits have a base temperature and setting + :math:`T_\text{ref}` equal to :math:`T_\text{base}` yields :math:`T_\text{in,0}=0\:\text{K}`, + which obviously is a problem. For non-centred fits, the base temperature is + equal to 0 K. Read on :ref:`below` for more details. Pure Fluid Examples @@ -98,8 +104,8 @@ composition notation. Depending on your fluid, you have to supply either the :ref:`mass fraction` or the :ref:`volume fraction` as additional parameter. This is done via the fluid name by appending a dash and the fraction of the substance other than water. The fraction notation can be in the -form of percent, ``LiBr-23%``, or as a fraction like in ``LiBr-0.23`` or -``LiBr[0.23]``, which corresponds to the new mixture syntax in CoolProp5. +form of percent, ``LiBr-23%``, or as a fraction ``LiBr[0.23]``, which +corresponds to the new mixture syntax in CoolProp5. .. In addition to the properties available for the pure fluids (``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``,``Tmin`` and ``Tmax``, some mixtures also @@ -116,10 +122,17 @@ form of percent, ``LiBr-23%``, or as a fraction like in ``LiBr-0.23`` or #Specific heat capacity of a lithium bromide solution at 300 K and 1 atm In [1]: PropsSI('C','T',300,'P',101325,'INCOMP::LiBr-0.23%') + #Specific enthalpy of a lithium bromide solution at 300 K and 1 atm + In [1]: PropsSI('H','T',300,'P',101325,'INCOMP::LiBr-0.23%') + + In [1]: PropsSI('T','H',28627,'P',101325,'INCOMP::LiBr-0.23%') - - +.. warning:: + Some mixture function have a non-monotonic behaviour, this can lead to misleading + results when using other inputs than :math:`f(p,T)`. Keep that in mind and + implement a way to validate the results you get from these functions. At the same + time, mixture solvers are likely to produce errors due to the same reason... @@ -130,7 +143,7 @@ Fitting Reports --------------------------------------- A file with all fitting reports for the incompressible fluids can be obtained -from :download:`here `. These reports help you to +from :download:`here`. These reports help you to get an overview over the different incompressible fluids included in CoolProp. The reports start with some basic information about the fluid. There is the name by which it can be accessed through the @@ -151,7 +164,7 @@ database, a scientific publication or experimental data. If all data is available, there is a graphs for each of the basic quantities density :math:`\rho`, specific heat capacity :math:`c`, thermal conductivity :math:`\lambda`, dynamic viscosity :math:`\mu`, saturation pressure -:math:`p_{sat}`, and freezing temperature :math:`T_{freeze}`. These graphs show +:math:`p_\text{sat}`, and freezing temperature :math:`T_\text{freeze}`. These graphs show data points in dark blue, the fitted function from CoolProp as a red line and the relative error in light blue dots. Note that the relative error uses the ordinate on the right hand side while the other two data series refer to the axis on the @@ -160,152 +173,95 @@ that typically lies in the middle of the allowed range. Dashed red lines indicat the limits in terms of concentration as well as the freezing temperature. +.. _Equations: Equations ----------------------- +--------- -Exp or log for visc, other poly or log poly +There are only four different equations used to calculate the thermophysical +properties of incompressible fluids in CoolProp: .. math:: - x(T) &= \sum_{i=0}^n C[i] \cdot T^i \\ - x(T) &= \exp\left( \frac{C[0]}{T+C[1]} - C[2] \right) \\ - x(T) &= \exp\left( \log \left( \left(T+C[0]\right)^{-1} + \left( T+C[0] \right)^{-2} \right) *C[1]+C[2] \right) \\ + f(T) &= \exp \left( \frac{C[0]}{T+C[1]} - C[2] \right) \text{, } \\ + f(T) &= \exp \left( \log \left( \sum_{i=0}^l \left( T+C[0] \right)^{-i-1} \right) \cdot C[1] + C[2] \right) \text{, } \\ + f(T,x)&= \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C[i,j] \cdot T^j \text{ and } \\ + f(T,x)&= \exp \left( \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C[i,j] \cdot T^j \right) \text{. } \\ +Only the last two are suitable for mixtures with the input parameter :math:`x` +denoting the fraction of component other than water. Following the works of +Melinder :cite:`Melinder2010` and Skovrup :cite:`Skovrup2013`, the exponents are +for the polynomials are arranged in a triangular matrix to avoid overfitting. +These conditions satisfy :math:`0 \leq i \leq n`, :math:`0 \leq j \leq m` +and :math:`i + j \leq \max(n,m)`. It is only for the freezing temperature calculation +that the implemented procedures differ from what is presented in Melinder's +book :cite:`Melinder2010`. Freezing temperature is only a function of concentration +and the dependency on the fluid temperature has been removed. For mixtures, the +default values for :math:`m=5` and :math:`n=3` are chosen. +Omitting the composition term with :math:`n=0` yields the pure fluid formulations +for which we selected :math:`l=1` and :math:`m=4`. -All fluids are implemented with polynomials for density and heat capacity with typically 4 coefficients -and hence a third order polynomial. Thermal conductivity is a second order polynomial and viscosity and -vapour pressure are exponential functions. +The standard polynomials are used for the density, heat capacity and thermal +conductivity functions, while viscosity, vapour pressure and freezing temperature +are exponential functions. For exponential functions of only one variable +(:math:`\mu(T)`, :math:`p_\text{sat}(T)`, :math:`T_\text{freeze}(x)`), we start by fitting the +first equation. If the fit quality is poor, we try the second exponential function. +The exponential polynomial is used as a fall-back function for single variable +fits and it is the only function used for multivariate fits, e.g. :math:`\mu(T,x)`. + +If you would like to know more about the fitting procedures, you can have a look +at this `Python notebook `_, +which describes the basics of the multivariate polynomial fits employed in this +software. Non-polynomial functions are fitted using the minimisation routines +accessible through SciPy :cite:`Jones2001`. For the extremely curious, the +Python module `CPIncomp `_ +contains the source code for the fits used in CoolProp as well as the code to +generate the fitting reports. Feel free to browse the code. + +Using only polynomials for the heat capacity functions, we can derive internal +energy and entropy by integrating the specific heat capacity + +.. _BaseValue: .. math:: - \rho &= \sum_{i=0}^n C_{\rho}[i] \cdot T^i \\ - c &= \sum_{i=0}^n C_{c}[i] \cdot T^i \\ - u &= \int_{0}^{1} c\left( T \right) dT - = \sum_{i=0}^n \frac{1}{i+1} \cdot C_{c}[i] - \cdot \left( T_1^{i+1} - T_0^{i+1} \right) \\ - s &= \int_{0}^{1} \frac{c\left( T \right)}{T} dT - = C_{c}[0] \cdot \ln\left(\frac{T_1}{T_0}\right) - + \sum_{i=0}^{n-1} \frac{1}{i+1} \cdot C_{c}[i+1] - \cdot \left( T_1^{i+1} - T_0^{i+1} \right) \\ - \lambda &= \sum_{i=0}^n C_{\lambda}[i] \cdot T^i \\ - \mu &= \exp\left( \frac{C_{\mu}[0]}{T+C_{\mu}[1]} - C_{\mu}[2] \right) \\ - p_{sat} &= \exp\left( \frac{C_{sat}[0]}{T+C_{sat}[1]} - C_{sat}[2] \right) \\ - -In some cases, the fit quality for the - - -Brines and Solutions --------------------- -All the brines and solutions can be accessed through the Props function. To use them, the fluid name -is something like ``"MEG-20%"`` which is a 20% by mass ethylene glycol solution. Note that these fluids -have an arbitrary reference state: Be careful with enthalpy and entropy calculations. Again, only -temperature and pressure inputs are supported directly to calculate the same subset of thermophysical -properties as above , namely: density, heat capacity, internal energy, enthalpy, entropy, viscosity -and thermal conductivity. Hence, the available output keys for the ``Props`` function are: "D", "C", -"U", "H", "S", "V", "L", "Tmin", Tmax" and "Tfreeze". An internal iteration allows us to use enthalpy -and pressure as inputs, but be aware of the reduced computational efficiency. - -.. ipython:: - - In [1]: from CoolProp.CoolProp import PropsSI - - #Specific heat 20% mass ethylene glycol solution at 300 K and 1 atm. - In [1]: PropsSI('C','T',300,'P',101.325,'INCOMP::MEG-20%') - -For Lithium-Bromide, the publication by Patek and Klomfar from 2005 was implemented based on the -source code provided by the authors. The `paper `_ -covering the equations can be found in the -`International Journal of Refrigeration `_. Data is -available for temperatures from 0 C to 225 C and for the full composition range. Use ``LiBr`` to acccess -the functions. - -A number of aqueous solutions are implemented using the coefficients from Aake Melinder "Properties of -Secondary Working Fluids for Indirect Systems" published in 2010 by IIR. According to the book, 2D -polynomials are given in a form that satisfies :math:`0 \leq i \leq 5`, :math:`0 \leq j \leq 3` -and :math:`i + j \leq 5` yielding a triangular matrix of coefficients. It is only for the freezing -temperature calculation that the implemented procedures differ from what is presented in Melinder's -book the dependency on the current temperature is removed. In CoolProp, :math:`T_{freeze}` only depends -on concentration. - -========================== =================================================== ================= ================= -Melinder Fluids Description max. T max. x -========================== =================================================== ================= ================= -``MEG`` Ethylene Glycol (C2H6O2) +100 C 60 % -``MPG`` Propylene Glycol (C3H8O2) +100 C 60 % -``MEA`` Ethyl Alcohol, Ethanol (C2H6O) +40 C 60 % -``MMA`` Methyl Alcohol, Methanol (CH4O) +40 C 60 % -``MGL`` Glycerol (C3H8O3) +40 C 60 % -``MAM`` Ammonia (NH3) +30 C 30 % -``MKC`` Potassium Carbonate (K2CO3) +40 C 40 % -``MCA`` Calcium Chloride (CaCl2) +40 C 30 % -``MMG`` Magnesium Chloride (MgCl2) +40 C 30 % -``MNA`` Sodium Chloride (NaCl) +40 C 23 % -``MKA`` Potassium Acetate (CH3CO2K) +40 C 45 % -``MKF`` Potassium Formate (CHKO2) +40 C 48 % -``MLI`` Lithium Chloride (LiCl) +40 C 24 % -========================== =================================================== ================= ================= - -Furthermore, there is a number of other secondary fluids that can be accessed in the same way. Most -information is based on the data compiled by Morten Juel Skovrup in his `SecCool software `_ -provided by his employer `IPU `_. The coefficient matrix of the SecCool-based fluids -has the same structure as mentioned above. - -For slurry ice, the concentration :math:`x` refers to the solid content and the heat capacity includes the heat of fusion. -It might be necessary to adjust the solid content during heat transfer. The implementation is based on the data available -in SecCool, which was originally recorded at the `Danish Technological Institute (DTI) `_. - -========================== =================================================== ================= ================= -SecCool Fluids Description max. T max. x -========================== =================================================== ================= ================= -``ZiAC`` ZitrecAC (corrosion inhibitor) +100 C 50 % -``IceEA`` Ethanol-water mixture with slurry ice -10 C 35 % -``IcePG`` Propylene glycol-water mixture with slurry ice -10 C 35 % -``IceNA`` Sodium chloride-water mixture with slurry ice -5 C 35 % -``PK2000`` Pekasol 2000 (Potassium acetate and formate) +100 C 100 % -========================== =================================================== ================= ================= - - - -In both of the above cases, :math:`i` is the exponent for the concentration :math:`x` and :math:`j` -is used with the temperature :math:`T`. Properties are modelled with the following polynomials: - -.. math:: - - \rho &= \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{\rho}[i,j] \cdot T^j \\ - c &= \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{c}[i,j] \cdot T^j \\ + c &= \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{c}[i,j] \cdot T^j \text{ yielding } \\ u &= \int_{0}^{1} c\left( x,T \right) dT = \sum_{i=0}^n x^i \cdot \sum_{j=0}^m \frac{1}{j+1} \cdot C_{c}[i,j] - \cdot \left( T_1^{j+1} - T_0^{j+1} \right) \\ + \cdot \left( T_{1}^{j+1} - T_{0}^{j+1} \right) \text{ and } \\ s &= \int_{0}^{1} \frac{c\left( x,T \right)}{T} dT = \sum_{i=0}^n x^i \cdot \left( - C_{c}[i,0] \cdot \ln\left(\frac{T_1}{T_0}\right) - + \sum_{j=0}^{m-1} \frac{1}{j+1} \cdot C_{c}[i,j+1] \cdot \left( T_1^{j+1} - T_0^{j+1} \right) + C_{c}[i,0] \cdot \ln\left(\frac{T_{1}}{T_{0}}\right) + + \sum_{j=0}^{m-1} \frac{1}{j+1} \cdot C_{c}[i,j+1] \cdot \left( T_{1}^{j+1} - T_{0}^{j+1} \right) \right) \\ - \lambda &= \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{\lambda}[i,j] \cdot T^j \\ - \mu &= \exp \left( \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{\mu}[i,j] \cdot T^j \right) \\ - T_{freeze} &= \sum_{i=0}^n C_{freeze}[i] \cdot x^i \\ -Using a centered approach for the independent variables, -the fit quality can be enhanced. Therefore, all solutions have a reference temperature and concentration -in the original work by Melinder and Skovrup as well as in CoolProp: :math:`x = x_{real} - x_{ref}` -and :math:`T = T_{real} - T_{ref}`, this technique does not affect the calculation +According to Melinder :cite:`Melinder2010` and Skovrup :cite:`Skovrup2013`, +using a centred approach for the independent variables enhances the fit quality. +Therefore, all solutions have a base temperature and concentration in the original +works as well as in CoolProp: :math:`x_\text{in} = x - x_\text{base}` +and :math:`T_\text{in} = T - T_\text{base}`, this technique does not affect the calculation of the derived quantity internal energy since the formula contains temperature differences. -However, integrating :math:`c(x,T)T^{-1}dT` for the entropy requires some changes due to -the logarithm. To structure the problem, we introduce a variable :math:`d(j,T_{real})`, which will be expressed by a third sum. -As a first step for simplification, one has to expand the the binomial :math:`(T_{real}-T_{ref})^n` to a series. -Only containing :math:`j` and :math:`T_{real}`, :math:`d` is independent from :math:`x` and can be -computed outside the loop for enhanced computational efficiency. An integration of the expanded binomial -then yields the final factor :math:`D` to be multiplied with the other coefficients and the concentration. +However, integrating :math:`c(x_\text{in},T_\text{in})T_\text{in}^{-1}dT_\text{in}` for the entropy requires some changes due to +the logarithm. + +.. warning:: + You must **not** use the base temperature :math:`T_\text{base}` + as reference temperature for your thermodynamic states. This will lead to an + error caused by a division by zero during the integration carried out to + obtain the entropy. + +To structure the problem, we introduce a variable :math:`f(j,T)`, +which will be expressed by a third sum. As a first step for simplification, one +has to expand the the binomial :math:`(T-T_{base})^n` to a series. Only +containing :math:`j` and :math:`T`, :math:`f` is independent from :math:`x_\text{in}` and +can be computed outside the loop for enhanced computational efficiency. An +integration of the expanded binomial then yields the final factor :math:`F` to +be multiplied with the other coefficients and the concentration. .. math:: - s &= \int_{0}^{1} \frac{c\left( x,T \right)}{T} dT = \sum_{i=0}^n x^i \cdot \sum_{j=0}^m C_{c}[i,j] \cdot D(j,T_0,T_1) \\ - D &= (-1)^j \cdot \ln \left( \frac{T_1}{T_0} \right) \cdot T_{ref}^j + \sum_{k=0}^{j-1} \binom{j}{k} \cdot \frac{(-1)^k}{j-k} \cdot \left( T_1^{j-k} - T_0^{j-k} \right) \cdot T_{ref}^k - - - - + s &= \int_{0}^{1} \frac{c\left( x_\text{in},T_\text{in} \right)}{T_\text{in}} dT_\text{in} = \sum_{i=0}^n x_\text{in}^i \cdot \sum_{j=0}^m C_{c}[i,j] \cdot F(j,T_\text{in,0},T_\text{in,1}) \\ + F &= (-1)^j \cdot \ln \left( \frac{T_\text{in,1}}{T_\text{in,0}} \right) \cdot T_{base}^j + \sum_{k=0}^{j-1} \binom{j}{k} \cdot \frac{(-1)^k}{j-k} \cdot \left( T_\text{in,1}^{j-k} - T_\text{in,0}^{j-k} \right) \cdot T_{base}^k @@ -332,7 +288,7 @@ Skovrup. It is provided free of charge by his employer `IPU `_ .. _Pure: .. csv-table:: All incompressible pure fluids included in CoolProp - :widths: 10, 35, 15, 20, 20 + :widths: 10, 35, 13, 14, 14, 14 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/pure-fluids.csv @@ -340,27 +296,28 @@ Skovrup. It is provided free of charge by his employer `IPU `_ There are also a number of water-based mixtures implemented in CoolProp. Most of them are secondary heat transfer fluids, but there are also aqueous solutions of ammonia :cite:`Melinder2010`, :download:`MAM<../_static/fluid_properties/incompressible/report/MAM_fitreport.pdf>`, -and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`. +and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`, +which can be used to calculated absorption chillers. .. _MassMix: .. csv-table:: All incompressible mass-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 + :widths: 10, 30, 10, 10, 10, 10, 10, 10 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mass-based-fluids.csv .. .. _MoleMix: .. .. csv-table:: All incompressible mole-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 + :widths: 10, 30, 10, 10, 10, 10, 10, 10 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mole-based-fluids.csv .. _VoluMix: .. csv-table:: All incompressible volume-based binary mixtures included in CoolProp - :widths: 10, 30, 12, 12, 12, 12, 12 + :widths: 10, 30, 10, 10, 10, 10, 10, 10 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/volume-based-fluids.csv @@ -368,8 +325,8 @@ and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properti For slurry ice, the concentration :math:`x` refers to the solid content and the heat capacity includes the heat of fusion. It might be necessary to adjust the solid content during heat transfer. The implementation is based on the data -available in `SecCool`_, -which was originally recorded at the `Danish Technological Institute (DTI) `_. +available in `SecCool `_, +which was originally recorded at the Danish Technological Institute `(DTI) `_. References diff --git a/dev/incompressible_liquids/CPIncomp/WriterObjects.py b/dev/incompressible_liquids/CPIncomp/WriterObjects.py index 03795ecd..650f508b 100644 --- a/dev/incompressible_liquids/CPIncomp/WriterObjects.py +++ b/dev/incompressible_liquids/CPIncomp/WriterObjects.py @@ -188,7 +188,7 @@ class SolutionDataWriter(object): fluidObject.T_freeze.coeffs = np.array([+7e+2, -6e+1, +1e+1]) fluidObject.T_freeze.type = IncompressibleData.INCOMPRESSIBLE_EXPONENTIAL else: - fluidObject.specific_heat.coeffs = np.copy(std_coeffs) + fluidObject.T_freeze.coeffs = np.copy(std_coeffs) fluidObject.T_freeze.type = IncompressibleData.INCOMPRESSIBLE_EXPPOLYNOMIAL fluidObject.T_freeze.fitCoeffs(tBase,xBase) except errList as ve: @@ -1297,7 +1297,7 @@ class SolutionDataWriter(object): else: use_x = False header = [u'Name', u'Description', u'Reference', \ - self.m(u'T_\\text{min}')+u" (°C)", self.m(u'T_\\text{max}')+u" (°C)"] + self.m(u'T_\\text{min}')+u" (°C)", self.m(u'T_\\text{max}')+u" (°C)", self.m(u'T_\\text{base}')+u" (K)"] if use_x: header.extend([self.m(u'x_\\text{min}'), self.m(u'x_\\text{max}')]) testTable = [] @@ -1308,7 +1308,8 @@ class SolutionDataWriter(object): fluid.description, self.getCitation(fluid.reference), self.c(fluid.Tmin), - self.c(fluid.Tmax) + self.c(fluid.Tmax), + self.c(fluid.Tbase+273.15) ]) if use_x: testTable[-1].extend([self.x(fluid.xmin), self.x(fluid.xmax)]) diff --git a/dev/incompressible_liquids/LinearAlgebra.ipynb b/dev/incompressible_liquids/LinearAlgebra.ipynb index 6c511307..af29f9a6 100644 --- a/dev/incompressible_liquids/LinearAlgebra.ipynb +++ b/dev/incompressible_liquids/LinearAlgebra.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:6de5b361bf724471b38e3a32d973641aeac571541b15819486c1f0449e310b07" + "signature": "sha256:3d9763ad8e713bc4c7be2162464d383f293b498ef88147f61f44be6689e11eb8" }, "nbformat": 3, "nbformat_minor": 0, @@ -43,8 +43,7 @@ ], "language": "python", "metadata": {}, - "outputs": [], - "prompt_number": 13 + "outputs": [] }, { "cell_type": "markdown", @@ -80,20 +79,7 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[ 2.31559095e+02 7.75540000e+00 -1.80000000e-02]\n", - "1064.0\n", - "1064.01\n", - "1053.1\n", - "1053.09\n" - ] - } - ], - "prompt_number": 14 + "outputs": [] }, { "cell_type": "markdown", @@ -228,23 +214,7 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "[[ 4.13353531e+03 1.18712872e+03 1.46361848e+02 -8.33333333e+00]\n", - " [ -4.16716735e+01 -1.29148475e+01 -4.77324263e-01 0.00000000e+00]\n", - " [ 1.91354824e-01 3.00850340e-02 0.00000000e+00 0.00000000e+00]\n", - " [ -2.95815296e-04 0.00000000e+00 0.00000000e+00 0.00000000e+00]]\n", - "1064.0\n", - "1064.01648212\n", - "985.4\n", - "985.391852058\n" - ] - } - ], - "prompt_number": 42 + "outputs": [] }, { "cell_type": "code", @@ -272,24 +242,7 @@ ], "language": "python", "metadata": {}, - "outputs": [ - { - "output_type": "stream", - "stream": "stdout", - "text": [ - "Populating the interactive namespace from numpy and matplotlib\n" - ] - }, - { - "metadata": {}, - "output_type": "display_data", - "png": "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\neDwCZTiZMUNh2Uob9uAQm/9jgK2tc3EpNsyiyvzyVnoDFbT56ljU2IO9RMQQPXh8Im8fqsOt2Tl3\nUivXXDmCZDXjd43QeUxlWKtg/vkWPvnNOZRU5uZ3lSqMl4hsemOPF36/n2AwiNlsTlhyNFUkc32I\nh2RRQWMetVqtBfXSGgwG8fv9mEymcAngQoFxL2VZRpblnLUTz/Uhmde8cV8NLbjdbi84wmsEeYy5\nLxKbN2/mpptu4uWXX+byyy/PUw9PXxTOr/tjDONtVNO0hItTOslaydqBiY3oxtO0jrdIRS4nMONl\nwoCmaVnb+s82Eo1tIBDISRZ7JudLx6938fWTWTy1jddabHSrNVQKw1gFPxoCbs2OizJqpX6+/jUf\nN9wznz3/c5Duo4PIVpEzl9bSdNki1CEXu3+1hw/2uOntAUUFRw1MadY5Z3kVw/s7+cefNNDqWUi/\nVomCCQGdDzzTCGJiltyK1RbtFjDklrGZAwx6S3EFrARMGjazhFQu0uBQUA546GqBo2/2MP/axvEN\n8mmMbFmeZUv6YPy9aHuWOiaqb4IgjHr5iL3HsdHfyM95PJ5R0f3IZLp8IJWIbkVFxYT26eOCItHN\nA2IfdFEUwxNzLOIR3LGStcZqdyKIrhHBjdS0ZmvLP1fXEVslDMBut2d963+8/U8kpzCiBIFAIO86\n7ER+vTabLYmLhs6PN03nzmXt7O+sZkgrI6DLoUQ0YYQ6qY/PXdvDyvtmYDJJnPuVRaPalSrLOOfb\nl7Cos5feXZ0owVAJ4PLF03Ad6uFbX4F9rqmIksA0Rzc2MUBAM3HEOxmXVsKRYBOz+/qpqeOEc4OO\nxycR0EzYJB++oIBrMIjJrIXS4ESRmnqRY+0a3R8MFYluHpCp9MGA3+/H7/cXpQ8FjrES3xRFiZq7\nU0l8m8j7nArRHU8yWhGJUSS6BYB4xCcTN4JM2skVIg3FTSZTOEEuG8j2dcSLOkYmnOVqEky3//GS\nD00mE3a7PfzykMtS0qmMe6KkPbvdnlI0ZfJUC7/dPpU/PHqMp/8wxLHBUkyixvlzBlnxlRIuvKY+\nJacDqb6WyfW1UX/b+pODHBs5E02QmG7rDJ9HFhWqJCcezcaIbuOj/lrqJvWDcOJaddA0AQ0JSdCR\npGj7MpNNIuBT8Dm9+Hy+pNZJ3a1+OvcPo+s61TPKmDLHVnRuyBGSaUJVVY16CYPCcX3I90tqMhRa\ntDn2JUdRlLD1WTzbs1QS37Jte2Yg2X01ktFiNbpFZAdFopsHJIpoGcbbkQQXsufPmkuiG0nCDBia\nVpPJVFARUQPJqoQ5nc7wxJhtZDIWRhKXMUEnc9eAiV8sUyHhqaKsXOC2f6nn9gcEVFVAkkAQyqOS\n2DLBG++VMKCUUisPjyKXNimAI+hlkEo6/LWoSh+SKbSImiWdoC4hChrVDj+VNRYQBVRVQdfB7Rax\nWwJY7dIo43xjEe4/5mfbk8dpPzDC4KCArkF5eTuNs2xcsqqRqYuKkZyJQCQxCgaDaJoWnlsn2vUh\nlb4WkToiSXi2bc8iX3LGe18SRXQlScLhKCa05gJFolsAiE2OMJDtAgS5ILrxEuQMlJaWFkTxhFhk\nwwt3PEjnPsTKKYxEi0SR5oncgjMQj4Snk7SXbDyymSPkCoTsyyxiYNSxErMfe9DPkKrj0ex4gibK\nTCq6Doou4lFsVMgezmj2I0qhhCpNEAkqOt2dIs0NIjMWV2KxWEKLaDCI7najm830dGs8/69H+eCA\nieFhE9U2D6IIx4/baWkLMtB+kOvvncm0c4rRnHwgktBEouj6MBqFFtGNxFh9G0viEq/ksXGfIwNP\nseQ31fs8lr1YWVlZQY7r6YAi0c0zIh0YjIkzV6Qr20Q3luAYFmcejycr50+ETK8jHS/ciZR5xEOs\nDVsm0pVsJ9jEniue5CMZCc8W0ronuh76nyhSVStiaQ/iDcpYTbGRV50KyUmPWo1JUNjbWoEsQ1AT\nsWojzCrppMziwydY6BkwYbUJOIcFujs0amQnzTMdNF/UCEMu9j3xHq/9xU/PkA2zpOLVLAz5rZik\nAOfM8SNZQtNus+KirU1i7347jl8c4qZ/m4fJlP4CWkRmSIUYJZM+5KrgRSGTydMRyaK/8civ8e/I\n3ZtUovxjaXTLy8uL9zxHKBLdPEAQhLjb5pIkUVJSkjNboGyRt3hRxshMeq/XG54ocoF0ryNe8tZY\n2+q5JLrJzj1eG7aJiugaVmMGUi32MR6kfG5N49jjf2Xt//PydscUVF1kQfVxZi2UqZKr6fRVUa56\nkKSIRUjTGVJKmWzq47z6Npqr3LhHREwSNNYFmH9WkIBkpfuYQl+rQL8iIksKM2o1psyycuGqafg7\nB3nsrg/ZcbSOLm85Xs0G6Pg1M0HdxLXNu5HtIUsmXQfRLDBtmsbOfRqdbSpt7/TQfH7NqAU0cvHM\nhXYw1zidiFs2XR9yLX3IBQr5Xmazb8miv/Fsz1KJ8o+l0S1GdHOHItHNA1RVZWhoKPzfRolMs9mc\nU+/L8ZK3VBPkIpO5co1kUct4BQqy5YWbbaQTbc43Iv16J1LykRIUhf+4Yj3f2fM5FExohPq1rU9H\nelFlmtSOQ/Jx2NtInWkAm+QnoJroUypQRTNzq3q4/w+zmGwbxtXuwmSVqFjQiGCzovUN0PlWO50H\n3AT9GpJsom6unYaLpmGuqGDN1a/y6sFGOgK11JcM02DpZ8hr5SN3PX7dzFudMygpbWFSs/mERlhA\nkkRqKxWcThPDh73Il8ijFtBEut9saweLyAyZuj4kIkWRtmdFFBZStT1LFuUPBAKoqsq2bdvQNI2F\nCxfidDqL1mI5RJHo5gGRW2E2my0cIc31xJYp0U23mlmut/2NhSWZ/2U8WUU6XrgTFdE1krgi73+m\nSVyR58+mN2hkRNyAYWeWDRIeb6wz7fcfv/AX7ttzC0HMCGiIhO6/jkgQM0fUKcyxtFIq+xkIVNAV\nkDEJKpVWF/XVLv75pzVMm2cH7Fhn1EedW6ypovG6Kho/rYOq4lcUgooCssyhDQfYcbSGdn8t82uO\nYzGF2lXMUCU5GdDLGFDK2NdeyaQp7hN1iY2LFRF0HUkQokz440UJ42kHe3sEWncM4x1QEESdmjNK\nmH2OhbKyovQhnxiv9CEQCKAoSkGVwf24RHTTQSqJb5FSB+Pl9dFHH2Xbtm1AqJSvIAjcd999nH32\n2SxatIj333+f1157jV27drF7927cbje33HIL69atS9iXvXv38tBDD0VVRbvpppu48847R31227Zt\nbNiwgZdeeomjR4/i8/mYNm0aS5cu5b777qO+vj5OC6Fdx0cffZSNGzeye/dumpqaOP/881m9ejWN\njYVpr1gkunlCWVlZ+IdpvMHn0hoK0idvmW6j51PfOpasIlVM1DUMDw8XbLQ5UaKhyWTKSUW62LYh\nvUVLdXr4183noWBCREUi8vekIqChYqLVP5n/95023n5jiP5+Abtd5xPL7Sy/bRLV1Sncb0EIZcmd\nGBNd13nruWF6PPXUWZ1hkgtgNSnIooIJBa9m5bi3Eo/biaNUPPFd6HXKzGlyUzfdFtNMcu1gMKjx\n1oZ+Wrb10nNcw+MBUYDK6gE+miqz+MZ6pp1lzShx5uOAfBCjVKQPkQGF0036kEsUEgmPd5+NnUWj\nOuC5555LMBhk37599Pb2AvDDH/4w6hy6ruNwOGhububAgQNJr23r1q2sXLkSVVW55pprqKurY9Om\nTdx9993s3LmTxx57LOrzK1eupLe3lwsuuIAVK1YgiiLr16/nscce48knn+TNN9/krLPOivqO3+/n\n5ptvZsOGDcybN49bb72VQ4cOsXbtWjZv3szGjRtZtGi0v3m+USS6eULk9v5EkapU2xlvNbOJuJ7I\nqCVkJ3lrohBJGo3KazabLWtJXLFjkwliXxhEUcRsNuP3+wtuPA28+fP9HNUuRUeIIbkhiOho6Piw\n4t5zlEc3XBrzifTGK3IchpwSI6pMncUV9RnZrOEw+fCoFryKDUU34fNLOEp1NB2OHrNgEYI0NAo0\nX9o0dpuqCm3t4FPYvV3g4MsuWg5rTLYOUl8Bfr9Gb5uJfV0VKJ5W5LuamTzdctrpfk8nxJIiI7Jr\nsVjCxYTS1YPm4qWmKKUYH4zxM+7T97//fSC0+zh//nwWLlzIBRdcEI7gtra2ArBjxw66urpYunRp\nwnOrqspdd92F3+9n06ZN4c+6XC4uv/xyfvazn3HjjTeybNmy8HfuuecePve5zzFjxozw337+85/z\n9a9/nV/84hd88Ytf5O23345qZ926dWzYsIHly5fz7LPPhvnAunXruO2227jnnnt49dVXszBa2UWR\n6BYACoXoxtOJZrJFPVFEF0I/cJ/PF9cLdzy60VxcQ6xLASSuFpYvJHthCAaDo0z2s4HYsc50LNqP\ngY6AgEaiMwho6Agc67Jk1MYoeL0gSdjKTJglDX9w9O+kzuHBFzTRSxXDqoNj/TaGPCr9TjMOvMyb\nHeSKz9chykmmY0Xho/98hzc3uvmo3YE3INE9bEfXBZYt6KPyjCoArIpCWaNC15Fh2g+V0fJSH81z\nphd1v6cQjN+BcS9iI/rp6EFzVfCiEJ+LQoroxkOy/nV2dnL77bfzve99L/y3oaEh9uzZwxlnnEFn\nZ2fSc//5z3+mra2NG2+8MYoQl5aW8uCDD7JixQrWrFkTRXS/853vjDqPKIrcd999PP744+zcuROf\nz4fVag0f//GPf4wgCDz88MNRz+WqVatYs2YNr7/+Ojt27GDJkiUpjMjEoUh084TY5C3IH9HNxJUg\nk3ZyAbfbHf53NhOjsnkN8SQgBnIRcc6k7+l4C+crsjPWdTlqbQjoQLL7LyCgU1I5jqkvEKD/Pzfx\n1C+G2NUxCRAodaiUYOO4r4Y6xYNoOnlPLbKG3eSjXHHR7OijzuJCAOqbVBob4bKba2nedbRcAAAg\nAElEQVT85BkJm9ODClu+/QqbXymhra+BPqUSryozophxCF6kfTpLHU7K60MloJFMNEwX2bVbpeeg\nF58TympCi1UqCVKRL2KnqzfsqRqdTEUPmmohhKL0YeKQ7HlzuUK7QLHJaBUVFVx22WUpnX/Lli0A\nrFixYtSx5cuXY7Va2bp1a0rnqq6uDu/yRD5nHR0d7N+/nxkzZjB//vxR37vhhhvYtWsXW7ZsKRLd\nIkYjH5pWo6141azGW643l9djRJ0jIxfZTIzKJoy+RiZxGeVwc1l5LR3Ee8kZy1u4UHHJV2Zj/7cR\nnHrpichuzAsdoCFiJshVf9+cWSM+H3/49B/4wY5P49JKGCFEIC0jfoLIlAlOPuirZWpJPyVWBVWF\nXo+DrkANC2uO8/nP+ZgxzYKmQc00Bw2XTQdL8ujynt/sYdMrpezpmkRjlZfzy7voHTRzeKAal2Kj\nxVmDaYfOtVcHwkluosWM3aric+mMdLkoq6kGsusNm6rut9AjbYXWr3TnhLFcH7IlfSj0+1jo/TMQ\n2z+j/G95eebVEdvb2wGYNm3aqGOyLDNp0iTa2tro6+ujpqYm6bn++Mc/EggEWLp0aRQPSNYGQHNz\naE7t6OjI4ApyiyLRzRMSRXSzlSmfqE1Dv+n3+/H5fFGJUMlKyqbbDmS/AlssIYOQa4XNZkvyzcww\nnmuI11ez2YzNZsvYSSEdpNL3eNZr43V7GC9iXRfSHfvKSTKfO/9Dnnj7bBRMSChhsqsjoCEhonFJ\n/UHmX5kZ0d149yYe2HEDfVoVZoI4xBFAZ0Sz4sOCqldg0/0c8jYRdIvoCFTKHs6s7eHTN9u4/sG5\npPPz0lWNV5/zcqS3lqnVLuorQi9NkqBhlQLYpAB9gVJ6PCV0tHRTP+PkvfOrJsyigsmUfBxTSZCK\nFyWMlD/EEqSi7nf8yMY8nE3pQ6Hfz3wHDZIhGQnPBtHt6OhAEISEJLa2tpbW1lba29uTEt2PPvqI\ne+65B6vVyk9/+tNRbQBJ24CThLiQUCS6BYCJmkAiJwKv1wucrGaWi2pW2Zh4EnnhCoIQtt7JBTIh\nuun49haSM0Wq1mu56nNs1Mjn8xEIBEYlTaWCB5+ezQdLjvBG53RUJPQIta6EyhmOTn6+eXJG/VT7\nh/jJ5vkMaBWUCB5KRG/4mE3yM6L7GdLKGNGtXHFGB16/CVESmHumzpW3NbLkytK0SC7AwEf9tHZa\ncKs2zio/mehWYglilwIMBh2Um7wMB+wc67IweUaIqAwOi4hqkOo6gcqp6TtkJIsSxjPMT7ZFHukL\nm8sX+SLGRjakD7quMzIyUrDSh0LpRyRyTXSzge7ubq6//no8Hg8///nPRzkunMooEt0CQba9T2Nh\n2ERF/uAysd1KBdk6X6ISw7Ish4laobzFG+ObKnnMJdFNdO54iWa5egYygaZpDA0NRfU7NsIEIaJu\nkKjYBdZRIvDHXfU8/s9H+M/fl9HqDkUfaixOblnezdfWNFFdk9m1bv/NRxwNzENDxCF4Rx23CT7c\n2AnqJq45v5dlD12K2TymMiEpfB6NgCphkYKIwslxcdh1HHIAjyLjVm2oukhAldB0lQGnzPGjcEZT\ngJmLqxBtyTsw8FE/7z9zjPaP/GiqTuUkE/M/VcvUy5sRxOixEoTkhvnxdL8G/H4/fr8/ruNDITx/\nhYKJ3oJPVfpgVHuD+NHffOq5C2UdyAROpxOAysrKjM/R2NjI3r176evri3u8t7cXQRBoaorv7NLd\n3c2yZcs4dOgQP/nJT/jSl74Utw0gaRtAwjbyiSLRzRNiJwCD6Bp2U9lCbDUzAw6HI8qcPpsYL4mL\nV4EtlpDlOiKa6vljnRQKjTxC/GS4QnJ7iDRSh9CCaTKZRmlHDcQusrHEyWoV+Ic1DXz9R9DZ6UdV\nob5exmyeMq5+tncIBDFjwZ8wMmshQFA309EjU1KSYUO6TuC9/ex/+jA93TpeZz0jQRNKUMdkPtGw\nINBQ6UHVBFxOC37dQqenjJ173JRqw8xqUJm/xMac62YkbWrn2g948ffDHO8x0T9sQ9MFSu1Bdm/v\nYsGmHq55YBFmR/J5YizdbyAQGPXyMl7d73hxqug584nY6K+iKPh8vrDVYD5dH8bqd6Eh1xFdg1y2\ntLRwySWXRB3z+/10d3cjy3Jc2UFnZyfLli3j4MGD/Pu//ztf+cpXkrZh2J7Fwvh7kegWkRDZJm7x\nqpnZbDaCweAoa6FsI9NrycQLN19Ed7zkcSIiukYfs1VWOBfPaKzdmsPhwGQyhaP1xkufoXs25CqC\nIIy5wEqSRF2dGCF9GN8CaK12nCg6kXjsVETMgoqlMjPduHKsi99+cRvP7p9Dt/8cFF3EqZUQ1CV2\nHfFz7qxBODEmslWivtRFq6uK6fZuLp3dQ22Vn6pagblLSpj2N/MRHPaEbX30/BG2/G6YPYdKqCwJ\nMmOKD5MJBodE9raU4PV6kB/Zy/IHz0n7OiKjhIqihH1hJUkq6n6T4FSITAqCECXFKgTXh0J/cck1\n0b366qv51a9+xfr161m1alXUsc2bN+Pz+bjuuutGfa+jo4Nly5Zx+PBhfvGLX3DXXXclbKOxsZF5\n8+axb98+3n//fRYsWBB1/Omnn0YQBK666qqMryNXKBLdPCH2gTeMwcc70Y1VrtcgBBPhcZtqG4lI\nYzIv3HxtiaVjw5UvGH3Oll1ctpHIbk0QBCwWS9wKgZELoclkQpbltBfY8UYNL7j9DEp+7GUoUI6i\niZjE6POrmsAIVsrEAS65Y3rK5zWg9A6y+vp9vNB2EZ1qLZKgYRYU3HpIDvF+oATvh62cPfk4slln\n0CNzzD2Z2XVDXLzEw23fnow/6MPUWINt8mSEMZ7Hdzb08VGbjaaaERrqT16Lw65SVelm98FSKt91\nccHhQSpnZr6tGrnIx9NbZ6L7LVR9aDZRaNeUiKxNlOvDqYxka6EhXYi1F0sHN954I1OnTuW5557j\nxRdfDPvlOp1OHnzwQQRB4Fvf+lbUd9ra2li2bBmtra38+te/5tZbbx2znW9+85vcfffd3HvvvTz7\n7LPh9WTt2rXs3r2bSy+9lHPOSf/FONfI/6pXBDD+aFmq5XonIgkq1TbGU4FtoqQLBhI5KWRqa5ar\n/kdG7HVdLyg3DSPRLDLCbLFYkGUZl8uVdv9STZgyXiDjRQ1jE96SRQ1rm2SuuegYv3/VQb9eRYU6\nhCwEEQSBgCYxRAUOYYSL5vYx+7xp6Q0OsOnBXfy1fS7H1TqaLD04TP4T1wMd/hp6lSralXrkQR2T\nJOCQA8xudDN/iZlbHjkHa7mE6vGkdH963u/lWKuON2Bi8qQRYqPddhvUlPro7hE5sOU4F/195kTX\nQKJxzUT3m4wkpaL7PRUip6c6su36kEz6UOgRXQPx+ud0OsNyt0isX7+e9evXA9DV1QXAG2+8we23\n3w6EXA4eeeQRIDROTzzxBCtXruT666/n2muvpba2ls2bN3P06FG+9rWvjaqsdvnll9Pa2sqSJUto\naWnhwQcfHNW3L37xi0ydOjX836tWreL5559n/fr1LF68mKVLl3L48GFeeOEFGhoaRjk1FAqKRLdA\nkCmJSJcsFgLRjUd40rXfmiiiq2lamOAWstdwPBmALMs4HI68T/5jWZlle5chGXGKF11KVCUsNsIE\n8H/WzuDQsm52tlQyqFWGzHl1AIESwcOcyYP83z+krwXWFZVntpTSE6xksrk/THJD/YEmax+qN9SH\nhjIPi84TqaqTWPKZaSy4pJR037XcfT5GfAKl1iCiGP/5KLUrOD0m3EPpS50U1whtr7XTtmsY17Af\ni11g5vk1TLt8KpJ97Oy8sXS/2fL7zfdv41RCNshkNlwf4v0+jc8U6v0cS7pQXl4+6tju3btZu3Zt\nVF5KS0sLR44cAUJ+tgbRBbjyyivZtm0bP/jBD9i+fTuDg4MsWbKE+++/nzvuuGNUu62trQiCwI4d\nO9ixY8eo44IgsGzZsiiiK8syTz31FI888ggbN25k7dq1TJkyhVtvvZXVq1fT0NCQwejkHkWimyck\nmnBTXewzJYv5JLq6rmetQMVEEl2PxwOkbsM1kYgXyZckCVVVC0LTmIqVWSJXimze27GiS2NFDY3F\n1WYX+Y+/1vDkD538+U8j9A6HCkZUOgJcf32ALz1QR01t+v0bbh3miKsWn26lzNQd9zPVZie9gQpq\nHV7+92/PTb8RAEVh+OXdtDzTw2BPOU6PNRQyjnMPRnwislnH4kiPRQ8d7OOVXx6hvUWhu0cg4BeQ\nzToH9/Qy9eUhLv/7MyidVpV21+NF8DP1+438fiHhVIlMZhPZkj5AaD4MBoMFJ31Idl+dTidlZWWj\n/v7AAw/wwAMPpNXOvHnz+N3vfpfSZ+NJxFKBIAjce++93HvvvRl9Px8oEt08InIxT5W4xdtCT4cs\n5oPoGhG9kZGR8OSUzS31bMMgZwZy4aSQLRlAZNU1Q6oSWzkuW0inz7m0Mstm5Dde1DB2WzV2cZXl\nIHd/V+a2f4L29lDJ4WnTbJSUlCAIOpkkvSm6dKKaW+LFR0RFQ0DJcNru++v7/P77rbzT1sCQbxod\nI9W4NTvuN4/xiTm9OKpPRlqDQegZtrFglpszLkk9Qu3r9/DSz4+w5z0Vb9DC5Hodi0XB44HWThOD\ngwE0/TDL77cjl1kzuo5IpCpfSaT71XUdj8fzsdH9jgf5sD1LR/pgHI986c+H60M60HUdp9MZN6Jb\nRPZQJLoFglS2+2OjoUYxApPJlPKPZCKIbiQCgQA+ny8qopeNAhW5uI54iXwQShIolEnIeA68Xu+Y\nWuF8RKt0XQ87PRgYK7EwVUzEPUi2tRq7ZS7LMGOGCoQWWuPdKJ7sYay+V04ro6q0F3FEZ0QxY5eD\noz7jCtpxSD6mnpG+Jrxn6z5W/4OH/b3z6FGqsZv8+AQZl+5g98hsevdW8OkzD1FeJzM0CEc6bdRV\n+pk+20TDOXUpt3Porx20Htbwq2YWLNAQJVCCOiUOnUl1Gvv3WTh6KMiRl9qZ+5kz0r6OVDGW7tdw\ngjD+ng3dbzbwcYzopoNEv89gMEggEAj/1iba9WEsjCVdqKqqKt7zHKJIdPOIVCK68aKh49lCn8iI\nLoDb7Q7/LZtR0WxeRyInBSMykIsJKJP+Gy86kVHxZFXXcgldjy5sEm+noVASC8eLRFvmgUAgvE06\n1uI6ll5UMgksvzrA0f8ZpjNYwzSxE8mYnXUYCZgY1MuZIXdy7VfT1MFpGr9a3cv7vdMZwc786g5k\nMfTi2e4s58jIZLqUGp7eb2b28R6sskpjrZ85Z+pce1961ZFadrro6hGZOk1DlKKfQ0mCpiaFznaR\nlveczP1MepcxXkSSJEEI2dOJoojVas2q7vd0RaGS8KjfkSSFk7oKyfVhLOnCjBnJ/a6LGB+KRLdA\nEKkJNZCsMlimP8BckwojKhoJm82W1As3E2TjOuLpnA1yJopimOjGkrqJRjydayrPQbbvcaK2Ygl4\nIVmZ5QqRxNcgSzA+x4cbH5jNK6+3sfuYmYO+ZirEYWRBwaNZ8VBCo6WXq68KcObl6Rmyt//1EHuO\n1dCvVLCwuj3KFq2pbJgS2c+e4amYRI05jUNMnWVm3qXlnL1yKtby9Mq6eVwaI36J0rL40pnSUjjs\nl/A4M9MHZhvGfcyG7vfj5PdbaIhHJCfS9WE8SKTRLSJ7OH1XolMMkcb4scQmm9HQXBHdRN6opaWl\n43InGAuZXEeipLiJJGep3AdN0/B6vWkV0Ig8d64RW8EuW7KUUxnjcXyQbfC939fw6Ff72feBlyG/\nDZ9uxSEHaXJ0cd3faHz1RzPi5Y0lxQdvexj0l1Fhdo/y/gWosPpo8vXikPxcdKWVa76Xpg+mruPf\nd5jdfzjCuy9baemvwf5OD3Nna5irS6M+6h/RMZt0zNb05RcThfHqfo1zZLI9XqhRUyjsvqWKXLk+\njHVvE41dpEa3iNyhSHTziNi3Twi9VRoG0qkSm0zazBbRjafJlGUZRVHQNC1nk2Im5003Kc6QluQi\nopvsPsQb00yKUuQiam+MicfjSZuAp4JClS+MB+k4PtQ1ivxwfS0H9mhsf2aIEbdGdaOZpbdUM3my\ngCAoaFp6mkJVF9F0ESlJopuEFkqGM6VJQHWd3Y+8xJ/+ZKajv4ojzhoGgmV0tlbxQe8ASxq7mLrA\nAicszLqOQ02NRuNZ+V3YMyFtY+l+c+H3W0RqGA8Jz5brQzLpQ6L++Xw+/H7/uIpFFDE2ikS3AGB4\noEYiWwk8scgW0Y2nyYy0N3M6neFJIRdI9zoy3f6fSIxH5xqJXF2PQfqBMMnNRlW4RP09HUmvgbEc\nHxaeqzFvcU1ENEkhGCTKJznVQhf1i2spsbrpGSpD1wYRYnxzdU1nKOhgpqOX+sXpeaPte/wdfvNf\nDvZ21yHJIrWVAVTnCN2+CpyuEkZaZTAdo366RE8nuH0WZpypM+vKwvTbTBeJ7mM8CQuMrfst5Gf+\ndIjopoNsSh8ivx85fkb536J0IbcoEt08wvBojd3uLy8vz6jaVioYL9FN1Qs311rg2ESoRJNvPJur\nVKOPkRHdbCNyfIxIc2xBhfEWpchm1N645wZMJhMOhyNnz2k8FHrSWiZoa9F47y+DaKrOgisqmDXP\nlJLjA8RfWA0oihImwguubWDav75Pm0un0+mgodxz0jdXD/3NLGlMawiw4NrUCajuD/D8H4Ic6JlM\ndVmA5koXABWyl/LhETq9FRwaacLzocxiTxd1kwQWnA0Xr2qmvMGR4YgVPhIlL8aLECbS/aqqis/n\nK+p+U8REkfDxSh+MOf6rX/0qZ555Jk1NTdTU1BSlCzlGkejmEV6vN0xyZVkOk7FsR3ETIZ0t+Uy2\n/Y3v5QrJpAXxNMPpRskn4ho0TcPlciUtqJAusjnZxyZEGphoknu64ej+Ef55VR8bD85B56SO9fKm\nQ/zgFw4WXBaK8IxFmmIXVgORFnmiKLLyH6s5/s/9fNhfy1BfCdVySB7VHyxDFc3Mre7l5n+aTDpT\nz5EXjnK0y4ZPtzC/4mSRiwpHENnsptQVYP+AiFnSmFwT5NIVNZx5VQO1M0uTnDUaekcnx19tYcSp\nYCsz0XDpNISmUy8aHHkfI+UPiZIXgZQq9k2k9KGQI7r5fPkdS/qgKErUTkxLSwvPPPMMzzzzTPhv\n3/jGN/iv//ovzj77bAKBAP39/bS1tbFnzx7cbje33HIL69atS9iHvXv38tBDD0VVRLvpppu48847\nR322vb2dJ598kl27drFz585wpbVDhw4ldX/QNI1HH32UjRs3snv3bpqamjj//PNZvXo1jY2NKY9X\nPlAkunmEw+FAVdXw1vTg4GDONKEGjB9lOu0YBDedbf98Rd8MJ4XI6GMm2/+5hjEuBoHMZsJhNhBb\nUlgQBOx2e5R/bzaRy+h5oaFlj5urrzDTpZw56tjL7bNYfr2HZ//QzzlXx68elmxhNar4SZIUFVVa\ndHUZdwd0/ntNH13dEk5/KKJaX+qmvl7jtn+q4fy/qU7rOnraFVx+mUqLd1SCnF1WsFcrBNUe0HUW\nfkLmki/PSv0l3uvlvR+/wfa3BDq6zfgDIhZZofG/P+C8C/Zzzrc+AXZ7Wv2NRKGQtljdbyAQIBAI\nIElSuDx2UfebOgrpuo3oLxC2IbTZbDQ1NfHzn/+c999/n/fee4/33nsPt9vNiy++yIsvvhj1/blz\n53LgwIGk17V161ZWrlyJqqpcc8011NXVsWnTJu6++2527tzJY489FvX5d999l+9+97uIosj06dOp\nqKgISygSwe/3c/PNN7NhwwbmzZvHrbfeyqFDh1i7di2bN29m48aNLFq0aByjlVsUiW4eIUkSJSUl\n4f+eqMU+1XZis+rTIWMTHdEdSzOc6fkhu9cQz7M323rs8fQ7Uf9sNhuCIISrruX6vp7OuPemHrqU\nhSf+Sw/XUTtBvXDpDr52Wy9vdDKKQCZD5EusxWJBFMWo7fKLb6hm8dWVvLPJReuukL/11LNLOPdq\nB1YrcSuEJXsmJbuMKPlQlMSd1FQdi6wil6SxQ6EovPTgW7z0qpWD3eVoshWHVcE9ZOJgj4+OnmGG\nh99i6UOXwWlqYSeKImazOSu632x5whbKy0E8FHLfIiEIAtXV1dxyyy0A/OlPf+KOO+5g48aNqKrK\nrl27eOGFFzh69CgLFy7k29/+NkuXLk14PlVVueuuu/D7/WzatCn8WZfLxeWXX87PfvYzbrzxRpYt\nWxb+znnnncdrr73GokWLKCkp4YorruDVV19N2u9169axYcMGli9fzrPPPhsm8OvWreO2227jnnvu\nGfMc+cTpOUucojB+pJqm5TT6OBYRilchLJLspIOJIESBQAC/3z+qYtx4bc2ySXSNSHOkZy+clCrk\nG4kS4ex2+4RJaT4OOPzOIFuOLzjxX3pUsWAB0AmVEN7vncq23x7gklWpl9+Nh2BQwOORcDgkrFaw\n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\nrkJggg==\n", - "text": [ - "" - ] - } - ], - "prompt_number": 47 + "outputs": [] }, { "cell_type": "code", From cf4f93b355e286be1941e34782f7ae00b5369a87 Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Wed, 24 Sep 2014 15:42:44 +0200 Subject: [PATCH 11/54] Added base temperatures again, are we really sure that we need them? --- Web/fluid_properties/Incompressibles.rst | 6 +- .../CPIncomp/DataObjects.py | 5 +- .../CPIncomp/MelinderFluids.py | 8 + dev/incompressible_liquids/json/AEG.json | 146 ++++++++--------- dev/incompressible_liquids/json/AKF.json | 136 ++++++++-------- dev/incompressible_liquids/json/AL.json | 134 ++++++++-------- dev/incompressible_liquids/json/AN.json | 132 +++++++-------- dev/incompressible_liquids/json/APG.json | 146 ++++++++--------- dev/incompressible_liquids/json/DowJ.json | 20 +-- dev/incompressible_liquids/json/DowJ2.json | 20 +-- dev/incompressible_liquids/json/DowQ.json | 20 +-- dev/incompressible_liquids/json/DowQ2.json | 20 +-- .../json/ExampleDigital.json | 64 ++++---- .../json/ExampleDigitalPure.json | 20 +-- .../json/ExamplePure.json | 20 +-- .../json/ExampleSolution.json | 60 +++---- dev/incompressible_liquids/json/GKN.json | 138 ++++++++-------- dev/incompressible_liquids/json/HC10.json | 26 +-- dev/incompressible_liquids/json/HC20.json | 28 ++-- dev/incompressible_liquids/json/HC30.json | 26 +-- dev/incompressible_liquids/json/HC40.json | 26 +-- dev/incompressible_liquids/json/HC50.json | 26 +-- dev/incompressible_liquids/json/HFE2.json | 22 +-- dev/incompressible_liquids/json/IceEA.json | 116 +++++++------- dev/incompressible_liquids/json/IceNA.json | 120 +++++++------- dev/incompressible_liquids/json/IcePG.json | 116 +++++++------- dev/incompressible_liquids/json/LiBr.json | 88 +++++----- dev/incompressible_liquids/json/MAM2.json | 96 +++++------ dev/incompressible_liquids/json/MCA2.json | 136 ++++++++-------- dev/incompressible_liquids/json/MEA2.json | 132 +++++++-------- dev/incompressible_liquids/json/MEG2.json | 128 +++++++-------- dev/incompressible_liquids/json/MGL2.json | 126 +++++++-------- dev/incompressible_liquids/json/MKA2.json | 132 +++++++-------- dev/incompressible_liquids/json/MKC2.json | 132 +++++++-------- dev/incompressible_liquids/json/MMA2.json | 134 ++++++++-------- dev/incompressible_liquids/json/MMG2.json | 132 +++++++-------- dev/incompressible_liquids/json/MNA2.json | 148 ++++++++--------- dev/incompressible_liquids/json/MPG2.json | 134 ++++++++-------- dev/incompressible_liquids/json/NBS.json | 20 +-- dev/incompressible_liquids/json/PCL.json | 20 +-- dev/incompressible_liquids/json/PCR.json | 20 +-- dev/incompressible_liquids/json/PGLT.json | 26 +-- dev/incompressible_liquids/json/PHE.json | 26 +-- dev/incompressible_liquids/json/PHR.json | 26 +-- dev/incompressible_liquids/json/PK2.json | 150 +++++++++--------- dev/incompressible_liquids/json/PKL.json | 146 ++++++++--------- dev/incompressible_liquids/json/PLR.json | 26 +-- dev/incompressible_liquids/json/PMR.json | 26 +-- dev/incompressible_liquids/json/PNF.json | 32 ++-- dev/incompressible_liquids/json/PNF2.json | 20 +-- dev/incompressible_liquids/json/T66.json | 20 +-- dev/incompressible_liquids/json/T72.json | 28 ++-- dev/incompressible_liquids/json/TD12.json | 20 +-- dev/incompressible_liquids/json/TVP1.json | 20 +-- dev/incompressible_liquids/json/TX22.json | 26 +-- dev/incompressible_liquids/json/TY10.json | 20 +-- dev/incompressible_liquids/json/TY15.json | 20 +-- dev/incompressible_liquids/json/TY20.json | 20 +-- dev/incompressible_liquids/json/TY24.json | 20 +-- dev/incompressible_liquids/json/VCA.json | 104 ++++++------ dev/incompressible_liquids/json/VKC.json | 136 ++++++++-------- dev/incompressible_liquids/json/VMA.json | 134 ++++++++-------- dev/incompressible_liquids/json/VMG.json | 96 +++++------ dev/incompressible_liquids/json/VNA.json | 132 +++++++-------- dev/incompressible_liquids/json/XLT.json | 22 +-- dev/incompressible_liquids/json/XLT2.json | 20 +-- dev/incompressible_liquids/json/ZAC.json | 118 +++++++------- dev/incompressible_liquids/json/ZFC.json | 58 +++---- dev/incompressible_liquids/json/ZLC.json | 98 ++++++------ dev/incompressible_liquids/json/ZM.json | 136 ++++++++-------- dev/incompressible_liquids/json/ZMC.json | 104 ++++++------ dev/incompressible_liquids/json/ZS10.json | 22 +-- dev/incompressible_liquids/json/ZS25.json | 24 +-- dev/incompressible_liquids/json/ZS40.json | 22 +-- dev/incompressible_liquids/json/ZS45.json | 22 +-- dev/incompressible_liquids/json/ZS55.json | 28 ++-- 76 files changed, 2568 insertions(+), 2559 deletions(-) diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index cba49bad..33ce3588 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -303,21 +303,21 @@ which can be used to calculated absorption chillers. .. _MassMix: .. csv-table:: All incompressible mass-based binary mixtures included in CoolProp - :widths: 10, 30, 10, 10, 10, 10, 10, 10 + :widths: 10, 30, 11, 11, 11, 11, 8, 8 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mass-based-fluids.csv .. .. _MoleMix: .. .. csv-table:: All incompressible mole-based binary mixtures included in CoolProp - :widths: 10, 30, 10, 10, 10, 10, 10, 10 + :widths: 10, 30, 11, 11, 11, 11, 8, 8 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/mole-based-fluids.csv .. _VoluMix: .. csv-table:: All incompressible volume-based binary mixtures included in CoolProp - :widths: 10, 30, 10, 10, 10, 10, 10, 10 + :widths: 10, 30, 11, 11, 11, 11, 8, 8 :header-rows: 1 :file: ../_static/fluid_properties/incompressible/table/volume-based-fluids.csv diff --git a/dev/incompressible_liquids/CPIncomp/DataObjects.py b/dev/incompressible_liquids/CPIncomp/DataObjects.py index caef8aa1..23b945e5 100644 --- a/dev/incompressible_liquids/CPIncomp/DataObjects.py +++ b/dev/incompressible_liquids/CPIncomp/DataObjects.py @@ -33,8 +33,8 @@ class SolutionData(object): self.xmin = 0.0 # Minimum concentration self.xid = self.ifrac_undefined # Concentration is mole, mass or volume-based self.TminPsat = None # Minimum saturation temperature in K - self.Tbase = 0.0 # Base value for temperature fits - self.xbase = 0.0 # Base value for concentration fits + self.Tbase = None # Base value for temperature fits + self.xbase = None # Base value for concentration fits self.temperature = IncompressibleData() # Temperature for data points in K self.concentration = IncompressibleData() # Concentration data points in weight fraction @@ -248,6 +248,7 @@ class PureData(SolutionData): __metaclass__ = ABCMeta def __init__(self): SolutionData.__init__(self) + self.xbase = 0.0 self.xid = self.ifrac_pure self.concentration.data = np.array([ 0 ]) # mass fraction diff --git a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py index e62de801..9e150e7f 100644 --- a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py +++ b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py @@ -18,6 +18,7 @@ class DEBLiquidClass(CoefficientData,PureData): 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])) @@ -51,6 +52,7 @@ class HCMLiquidClass(CoefficientData,PureData): 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])) @@ -84,6 +86,7 @@ class HFELiquidClass(CoefficientData,PureData): 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])) @@ -117,6 +120,7 @@ class PMS1LiquidClass(CoefficientData,PureData): 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])) @@ -150,6 +154,7 @@ class PMS2LiquidClass(CoefficientData,PureData): 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])) @@ -183,6 +188,7 @@ class SABLiquidClass(CoefficientData,PureData): 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])) @@ -216,6 +222,7 @@ class HCBLiquidClass(CoefficientData,PureData): 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])) @@ -249,6 +256,7 @@ class TCOLiquidClass(CoefficientData,PureData): 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])) diff --git a/dev/incompressible_liquids/json/AEG.json b/dev/incompressible_liquids/json/AEG.json index 4ce8eac2..4b60ad3d 100644 --- a/dev/incompressible_liquids/json/AEG.json +++ b/dev/incompressible_liquids/json/AEG.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.609719e+00, - -6.509781e-02, - -9.158159e-01, - 3.290908e+00, - -7.040655e+00, + 5.534468e+00, + -3.574293e-01, + -6.535113e-01, + -9.039166e-01, + 1.048048e+00, 4.622116e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 3.056500e+02, "Tmax": 3.731500e+02, "Tmin": 2.381500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -9.620599e-01, - 2.536522e+00, - -2.430821e+00, - 1.895452e+00, - -2.121385e+00, + 4.453745e-01, + -4.067857e-01, + 2.325883e-01, + -1.569133e-01, + -1.074279e-01, 1.192263e+00 ], [ - 9.358664e-03, - -2.056497e-02, - 1.696771e-02, - -3.191382e-03, - -2.372098e-04, + 8.706814e-04, + -1.560464e-03, + 7.909360e-04, + -2.926925e-05, + -2.372089e-04, 0.000000e+00 ], [ - -1.553655e-05, - 4.325203e-05, - -4.127655e-05, + -5.352757e-06, + 1.082907e-05, + -6.117302e-06, 5.716025e-06, 0.000000e+00, 0.000000e+00 ], [ - 5.888192e-09, - -2.839873e-08, + -1.560761e-10, + -6.139943e-09, 3.179827e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 9.077633e+02, - 4.596569e+01, - 4.900762e+02, - -9.721284e+02, - 1.286740e+03, + 1.047337e+03, + 1.404485e+02, + -4.870559e+01, + 7.141693e+01, + 5.245850e+01, -6.933962e+02 ], [ - 8.291604e-01, - 1.250161e+00, - -2.112929e+00, - 6.693382e-01, - -6.817555e-02, + -4.505054e-01, + -3.001582e-01, + -3.952614e-02, + 2.496264e-02, + -6.817575e-02, 0.000000e+00 ], [ - -1.516859e-03, - -4.344982e-03, - 5.280183e-03, + -2.432696e-03, + -2.084384e-05, + 3.108352e-04, -8.979712e-04, 0.000000e+00, 0.000000e+00 ], [ - -9.073173e-07, - 4.118599e-06, + -3.725220e-09, + 1.044785e-06, -4.391164e-06, 0.000000e+00, 0.000000e+00, @@ -94,11 +94,11 @@ "mass2input": { "coeffs": [ [ - -8.676772e-05, - 8.711163e-01, - 2.899710e-01, - -7.174562e-01, - 1.423645e+00, + 3.256146e-01, + 9.786794e-01, + 1.492694e-01, + 3.635665e-02, + -3.467691e-01, -1.011665e+00 ] ], @@ -117,33 +117,33 @@ "specific_heat": { "coeffs": [ [ - 3.692583e+03, - -2.599098e+03, - -2.952576e+03, - 9.103510e+03, - -1.434572e+04, + 3.596551e+03, + -1.707073e+03, + -4.447538e+02, + -5.527923e+02, + -7.159059e+02, 7.905301e+03 ], [ - 1.858464e+00, - 3.985896e+00, - -2.054894e+00, - 5.007963e+00, - -6.689408e-01, + 3.096886e+00, + 5.184379e+00, + -7.061384e-01, + 7.949891e-01, + -6.689394e-01, 0.000000e+00 ], [ - -2.493095e-03, - 9.117152e-03, - -6.471693e-03, + -3.388641e-05, + 3.639717e-04, + 9.169943e-04, -5.359818e-03, 0.000000e+00, 0.000000e+00 ], [ - 2.916138e-06, - -1.239414e-05, - 1.419542e-05, + 3.171279e-07, + -2.457344e-06, + 1.419543e-05, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -154,32 +154,32 @@ "viscosity": { "coeffs": [ [ - -9.083209e+00, - 2.959049e+02, - -3.535370e+02, - 1.915320e+02, - -3.745697e+02, + -6.319551e+00, + 2.881296e+00, + 8.374394e-01, + -1.929626e+01, + -1.310981e+01, 2.528586e+02 ], [ - 7.656353e-02, - -2.655212e+00, - 2.746159e+00, - 4.594102e-01, - -2.651484e-01, + -2.410848e-02, + -1.593008e-02, + -6.961209e-03, + -6.322254e-02, + -2.651482e-01, 0.000000e+00 ], [ - -3.961536e-04, - 8.362834e-03, - -9.286506e-03, + 1.764482e-04, + 1.708786e-04, + -4.014337e-04, -2.477100e-04, 0.000000e+00, 0.000000e+00 ], [ - 5.171920e-07, - -8.726741e-06, + -1.315418e-06, + -1.745316e-06, 9.973463e-06, 0.000000e+00, 0.000000e+00, @@ -192,7 +192,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/AKF.json b/dev/incompressible_liquids/json/AKF.json index 471226bf..761a8f67 100644 --- a/dev/incompressible_liquids/json/AKF.json +++ b/dev/incompressible_liquids/json/AKF.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.611339e+00, - -5.447347e-02, - -3.086402e-01, - 3.437472e-01, - -2.043836e-01, + 5.491549e+00, + -2.563759e-01, + -1.725168e-01, + -2.068954e-01, + -1.889326e-01, 4.414577e-03 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.781500e+02, "Tmax": 3.231500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.231500e+02, "conductivity": { "coeffs": [ [ - 5.162231e-01, - -1.568203e+00, - 4.324693e+00, - -4.673081e+00, - 1.814474e+00, - -2.691981e-01 + 5.030335e-01, + -1.181244e-01, + 1.226043e-02, + -4.815543e-02, + -6.864346e-02, + -2.691980e-01 ], [ - 4.765092e-04, - 2.448935e-03, - -1.468343e-02, - 1.689155e-02, + 9.822309e-04, + -5.709125e-04, + 4.631874e-04, + -1.211066e-03, -3.382793e-03, 0.000000e+00 ], [ - -3.100137e-06, - 2.042795e-05, - -4.793186e-06, + 8.303214e-08, + -4.469422e-07, + 5.512794e-08, -1.551464e-05, 0.000000e+00, 0.000000e+00 ], [ - 1.059927e-08, - -5.244005e-08, + -4.129921e-09, + 1.035664e-08, 4.485478e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 1.239898e+03, - 1.670949e+03, - -1.724790e+02, - -3.982146e+02, - 1.454873e+02, - 3.888992e+01 + 1.263793e+03, + 3.108288e+02, + -4.958571e+01, + 2.447501e+02, + 2.087026e+02, + 3.888993e+01 ], [ - -2.416920e+00, - -1.246293e+01, - 2.096144e+00, - 1.284863e+00, + -3.576042e-01, + -1.632312e-01, + 1.735164e-02, + -2.271690e-01, -2.620867e-01, 0.000000e+00 ], [ - 8.150833e-03, - 4.480500e-02, - -1.062392e-02, + -1.114542e-04, + 2.964505e-04, + -8.424457e-04, -1.398866e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.006985e-05, - -5.438967e-05, + -4.067380e-05, + -3.305018e-05, 1.524249e-05, 0.000000e+00, 0.000000e+00, @@ -141,32 +141,32 @@ "specific_heat": { "coeffs": [ [ - -6.084094e+01, - 1.465268e+03, - 2.490918e+04, - -6.173925e+04, - 5.703203e+04, + 2.866685e+03, + -1.203955e+03, + 1.010111e+03, + 3.365947e+03, + -3.835525e+03, -1.964478e+04 ], [ - 4.948687e+01, - -1.401216e+02, - 1.432057e+02, - -7.516805e+01, + 1.318229e+00, + -1.752212e+00, + -6.870128e+00, + 7.794962e+00, 2.836306e+01, 0.000000e+00 ], [ - -1.548064e-01, - 4.010536e-01, - -2.712080e-01, - 6.375053e-03, + 1.662977e-04, + 3.291863e-03, + -1.401271e-02, + 6.375054e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.721081e-04, - -4.419349e-04, + 5.920685e-06, + -3.288615e-05, 2.921777e-04, 0.000000e+00, 0.000000e+00, @@ -178,32 +178,32 @@ "viscosity": { "coeffs": [ [ - 7.004535e+02, - -1.444416e+03, - 1.022365e+03, - -9.435722e+01, - -5.951135e-01, - 2.501285e+00 + -5.822490e+00, + 1.366171e+00, + 5.637190e-01, + 5.387414e-01, + 1.544313e+00, + 2.501283e+00 ], [ - -7.171988e+00, - 1.449700e+01, - -9.926988e+00, - 6.380187e-01, - -2.378239e-02, + -2.390904e-02, + -8.583916e-03, + 2.513363e-03, + 3.476283e-02, + -2.378238e-02, 0.000000e+00 ], [ - 2.427051e-02, - -4.840019e-02, - 3.206158e-02, + 1.669641e-04, + -5.076385e-04, + 1.097073e-03, -9.647047e-04, 0.000000e+00, 0.000000e+00 ], [ - -2.741895e-05, - 5.385407e-05, + -6.714242e-06, + 5.302231e-06, -3.467989e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 7.000000e-01, "xid": "volume", "xmax": 1.000000e+00, "xmin": 4.000000e-01 diff --git a/dev/incompressible_liquids/json/AL.json b/dev/incompressible_liquids/json/AL.json index 77eebf22..f4fcfe43 100644 --- a/dev/incompressible_liquids/json/AL.json +++ b/dev/incompressible_liquids/json/AL.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.607183e+00, - -4.362296e-02, - -3.686590e-01, - -1.178196e-02, - -1.956900e-01, + 5.543667e+00, + -3.345180e-01, + -4.959651e-01, + -2.031848e-01, + -7.774264e-02, 6.739851e-02 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.931500e+02, "Tmax": 3.531500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.531500e+02, "conductivity": { "coeffs": [ [ - -3.234601e-01, - 1.477402e-01, - 2.288707e-01, - 1.797143e-01, - -5.425758e-01, + 4.393085e-01, + -4.182483e-01, + 2.079417e-01, + 2.440718e-02, + -3.870481e-01, 4.482925e-01 ], [ - 4.404651e-03, - 8.070159e-03, - -7.757383e-03, - -9.566999e-04, + 2.439168e-04, + -3.647236e-03, + 1.993104e-03, + 4.336741e-03, -2.145605e-03, 0.000000e+00 ], [ - -3.020081e-06, - -6.558440e-05, - 4.877221e-05, + -9.437478e-07, + 7.250457e-06, + -2.156441e-05, 1.415195e-05, 0.000000e+00, 0.000000e+00 ], [ - -4.218241e-09, - 1.058966e-07, + 2.097847e-08, + 3.808457e-08, -9.687437e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 4.870066e+02, - 4.200432e+02, - -1.701353e+02, - 3.620762e+02, - -2.008337e+02, + 1.034271e+03, + 9.925415e+01, + -2.929743e+01, + -8.070544e+01, + -5.518701e+01, -1.357672e+02 ], [ - 4.798775e+00, - -1.492185e+00, - 1.668268e+00, - -2.320435e+00, + -5.256492e-01, + -6.915636e-01, + -9.581055e-02, + 5.222622e-01, 1.307315e+00, 0.000000e+00 ], [ - -1.383905e-02, - 8.775384e-04, - -3.971103e-03, + -2.861570e-03, + 2.159270e-03, + 1.173771e-03, 1.726857e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.170219e-05, - 1.244769e-06, + 1.260193e-05, + 3.896622e-06, 3.788361e-06, 0.000000e+00, 0.000000e+00, @@ -141,32 +141,32 @@ "specific_heat": { "coeffs": [ [ - 6.613605e+03, - -6.143201e+03, - -1.104169e+04, - 6.023155e+03, - 3.335835e+03, - -4.301301e+02 + 3.807565e+03, + -1.529162e+03, + -1.264555e+03, + 1.311929e+02, + 6.292460e+02, + -4.301310e+02 ], [ - -2.135246e+01, - 4.579957e+01, - 6.519001e+01, - -4.852597e+01, - -6.665056e+00, + 2.199624e+00, + 8.684643e+00, + 1.968051e+00, + -1.060771e+01, + -6.665057e+00, 0.000000e+00 ], [ - 6.203987e-02, - -1.392285e-01, - -1.136647e-01, + 3.015936e-03, + -2.836171e-02, + 3.902559e-03, 8.058901e-02, 0.000000e+00, 0.000000e+00 ], [ - -5.921261e-05, - 1.566337e-04, + 1.986851e-07, + 1.828594e-04, 3.746526e-05, 0.000000e+00, 0.000000e+00, @@ -178,32 +178,32 @@ "viscosity": { "coeffs": [ [ - 1.306378e+02, - -4.902204e+02, - 8.143005e+02, - 4.134562e+01, - 7.551146e+01, - -4.040996e+01 + -7.795892e+00, + 4.285853e+00, + -8.099077e-01, + 1.397681e+00, + -1.479558e+01, + -4.040993e+01 ], [ - -1.236887e+00, - 4.841963e+00, - -7.942505e+00, - -6.569609e-01, - -6.682455e-02, + -3.876554e-02, + -3.415291e-02, + -1.098128e-02, + 9.445676e-02, + -6.682453e-02, 0.000000e+00 ], [ - 3.660993e-03, - -1.581792e-02, - 2.644966e-02, + 2.979889e-04, + -3.176006e-05, + 1.613925e-03, 1.441194e-03, 0.000000e+00, 0.000000e+00 ], [ - -3.656800e-06, - 1.726767e-05, + -1.283308e-06, + -3.704857e-06, -2.996075e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/AN.json b/dev/incompressible_liquids/json/AN.json index 1f7b8659..d19ef047 100644 --- a/dev/incompressible_liquids/json/AN.json +++ b/dev/incompressible_liquids/json/AN.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.614991e+00, - -2.569168e-01, - 3.523056e-01, - -9.528259e-01, - 4.450972e-01, + 5.531086e+00, + -3.265486e-01, + -5.633940e-01, + -1.022201e+00, + -5.442042e-01, -5.653151e-01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.931500e+02, "Tmax": 3.531500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.531500e+02, "conductivity": { "coeffs": [ [ - 1.740323e+00, - -3.203681e+00, - -2.760820e-01, - 9.182195e-01, - 3.816379e+00, + 4.577828e-01, + -3.177363e-01, + 2.906749e-01, + -2.302762e-02, + -6.603982e-01, -1.289564e+00 ], [ - -1.310902e-02, - 3.251159e-02, - 5.027436e-03, - -2.816082e-02, + 2.024976e-04, + -3.150058e-03, + 1.411912e-03, + 6.667158e-03, -7.573055e-03, 0.000000e+00 ], [ - 4.603417e-05, - -1.265562e-04, - 2.673792e-05, + 6.604258e-07, + -1.455771e-05, + -5.784429e-07, 7.748637e-05, 0.000000e+00, 0.000000e+00 ], [ - -4.965789e-08, - 1.601906e-07, + -8.728988e-09, + 7.368888e-08, -1.235739e-07, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 3.184810e+02, - 1.771980e+03, - -1.405540e+03, - 7.599503e+02, - -1.531948e+03, + 1.057935e+03, + 1.702643e+02, + -3.875524e+01, + -1.986961e+02, + 1.606686e+02, 1.135048e+03 ], [ - 6.037589e+00, - -1.393020e+01, - 1.366108e+01, - -2.722328e-01, + -4.015549e-01, + -6.801561e-01, + -1.316689e-01, + 2.807523e-01, -1.001938e+00, 0.000000e+00 ], [ - -1.674479e-02, - 4.059992e-02, - -4.710465e-02, + -2.789097e-03, + 4.653070e-03, + 3.923599e-05, 3.335662e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.385969e-05, - -3.951158e-05, + 6.109526e-06, + -4.775087e-06, 4.962356e-05, 0.000000e+00, 0.000000e+00, @@ -141,32 +141,32 @@ "specific_heat": { "coeffs": [ [ - 8.233662e+02, - 2.487885e+04, - -4.867669e+04, - -1.732208e+03, - 4.349565e+04, - -1.782889e+04 + 3.629767e+03, + -2.070881e+03, + -5.083840e+02, + 4.623703e+03, + 1.640936e+03, + -1.782890e+04 ], [ - 3.115316e+01, - -2.251358e+02, - 3.900433e+02, - -1.315117e+02, + 1.865004e+00, + 9.423820e+00, + 6.039887e+00, + -4.068479e+01, -3.634368e+01, 0.000000e+00 ], [ - -9.595903e-02, - 6.224148e-01, - -9.152562e-01, + 6.862924e-03, + -1.566375e-02, + -8.627962e-02, 2.416989e-01, 0.000000e+00, 0.000000e+00 ], [ - 9.934867e-05, - -5.558684e-04, + -1.508576e-05, + -9.804260e-05, 6.540369e-04, 0.000000e+00, 0.000000e+00, @@ -178,32 +178,32 @@ "viscosity": { "coeffs": [ [ - -5.487207e+01, - 5.001094e+02, - -3.016441e+02, - -1.217833e+02, - -4.355182e+01, - -4.960145e+01 + -8.174832e+00, + 2.740506e+00, + 1.484015e+00, + 6.395219e+00, + -8.827851e+00, + -4.960149e+01 ], [ - 5.496402e-01, - -5.030502e+00, - 3.469559e+00, - 1.057624e+00, - 4.145542e-01, + -3.013333e-02, + -1.792475e-02, + -5.964553e-02, + 6.701725e-02, + 4.145541e-01, 0.000000e+00 ], [ - -2.057066e-03, - 1.700346e-02, - -1.340328e-02, + 2.652149e-04, + 6.093756e-04, + -6.497305e-04, -2.679485e-03, 0.000000e+00, 0.000000e+00 ], [ - 2.438217e-06, - -1.924382e-05, + -2.128767e-06, + -6.853230e-06, 1.770085e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/APG.json b/dev/incompressible_liquids/json/APG.json index d37cb1a0..f9c0d5d0 100644 --- a/dev/incompressible_liquids/json/APG.json +++ b/dev/incompressible_liquids/json/APG.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.610137e+00, - -1.400121e-01, - 2.741257e-01, - -1.677910e+00, - 2.211202e+00, + 5.546103e+00, + -3.262770e-01, + -6.666873e-01, + -8.800598e-01, + -1.071417e+00, -1.875782e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 3.056500e+02, "Tmax": 3.731500e+02, "Tmin": 2.381500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -7.066293e-01, - 1.057523e+00, - -3.858121e-02, - 1.345427e+00, - -2.749392e+00, - 1.891362e+00 + 4.329771e-01, + -4.535551e-01, + 1.845012e-01, + -2.435214e-01, + 6.266485e-02, + 1.891363e+00 ], [ - 6.957430e-03, - -6.691632e-03, - -3.747552e-03, - 1.927287e-03, + 7.338869e-04, + -1.966849e-03, + 9.861397e-04, + -1.817568e-05, -1.628752e-03, 0.000000e+00 ], [ - -8.031197e-06, - 2.541121e-07, - 1.596291e-05, + -5.424175e-06, + 1.100798e-05, + -3.754805e-06, 5.476691e-07, 0.000000e+00, 0.000000e+00 ], [ - -1.885836e-09, - 1.481379e-08, + 5.879755e-10, + -6.777231e-10, -2.213073e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 8.727958e+02, - 2.287317e+02, - 8.420910e+00, - -1.841627e+02, - 3.498562e+02, - -2.139880e+02 + 1.026177e+03, + 7.253677e+01, + -6.532547e+01, + 3.466575e+01, + -1.582785e+01, + -2.139879e+02 ], [ - 1.116471e+00, - -8.081160e-02, - -4.582634e-01, - -5.761951e-03, - 2.877434e-02, + -5.350059e-01, + -5.056296e-01, + 1.751278e-01, + -9.233300e-02, + 2.877433e-02, 0.000000e+00 ], [ - -2.384802e-03, - -8.553792e-04, - 1.074877e-03, + -2.566157e-03, + -1.703579e-04, + 1.165892e-03, -2.075170e-04, 0.000000e+00, 0.000000e+00 ], [ - 3.270563e-08, - -2.261472e-07, + -5.177322e-09, + 9.673177e-09, 3.368862e-07, 0.000000e+00, 0.000000e+00, @@ -94,11 +94,11 @@ "mass2input": { "coeffs": [ [ - 9.310648e-05, - 9.430494e-01, - 2.380008e-01, - -8.206156e-01, - 1.900167e+00, + 3.444914e-01, + 1.017458e+00, + 1.072974e-01, + -6.232392e-02, + -8.168932e-01, -1.552606e+00 ] ], @@ -117,32 +117,32 @@ "specific_heat": { "coeffs": [ [ - 3.649324e+03, - -9.855412e+02, - -4.273760e+03, - 4.766662e+03, - -6.646880e+03, - 4.054146e+03 + 3.815392e+03, + -1.391877e+03, + -1.121400e+03, + -4.193939e+02, + -2.435300e+02, + 4.054145e+03 ], [ - 2.727805e+00, - -4.922308e+00, - 1.659522e+01, - -2.902824e+00, + 3.025751e+00, + 5.558605e+00, + -1.073388e-01, + 5.290725e-01, -2.262081e+00, 0.000000e+00 ], [ - -4.813564e-03, - 3.019053e-02, - -4.717659e-02, + 4.165345e-05, + -9.032070e-05, + -3.392169e-03, 1.079472e-02, 0.000000e+00, 0.000000e+00 ], [ - 4.371521e-06, - -2.610750e-05, + -4.309480e-07, + -1.335181e-06, 3.538903e-05, 0.000000e+00, 0.000000e+00, @@ -154,32 +154,32 @@ "viscosity": { "coeffs": [ [ - 1.697644e+01, - 1.123530e+02, - 1.648881e+02, - -5.382122e+02, - 2.858507e+02, - 5.350875e+01 + -8.328410e+00, + 3.573663e+00, + -1.995205e+00, + -6.425110e+00, + 3.601949e+01, + 5.350879e+01 ], [ - -1.762428e-01, - -1.159501e+00, - 3.671638e-02, - 1.990210e+00, + -3.284399e-02, + -3.838339e-02, + 8.223532e-02, + 1.520795e-02, -1.123741e+00, 0.000000e+00 ], [ - 3.976481e-04, - 3.658635e-03, - -2.783727e-03, + 2.492009e-04, + 3.529886e-04, + -5.119547e-04, -6.572286e-04, 0.000000e+00, 0.000000e+00 ], [ - -3.342920e-07, - -3.477626e-06, + -1.155771e-06, + -1.216539e-06, 3.230125e-06, 0.000000e+00, 0.000000e+00, @@ -192,7 +192,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/DowJ.json b/dev/incompressible_liquids/json/DowJ.json index e9cece69..50962afa 100644 --- a/dev/incompressible_liquids/json/DowJ.json +++ b/dev/incompressible_liquids/json/DowJ.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.056500e+02, "Tmax": 6.181500e+02, "Tmin": 1.931500e+02, "TminPsat": 3.231500e+02, "conductivity": { "coeffs": [ [ - 1.878999e-01 + 1.045182e-01 ], [ - -1.923678e-04 + -2.128427e-04 ], [ - -4.702107e-08 + -3.453265e-09 ], [ 3.580082e-11 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.141334e+03 + 7.754589e+02 ], [ - -1.431334e+00 + -8.534277e-01 ], [ - 2.490447e-03 + -1.065804e-03 ], [ -2.922265e-06 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 9.606950e+02 + 2.200296e+03 ], [ - 3.646233e+00 + 3.581551e+00 ], [ - -4.206839e-03 + 4.047386e-03 ], [ 6.782715e-06 diff --git a/dev/incompressible_liquids/json/DowJ2.json b/dev/incompressible_liquids/json/DowJ2.json index 6a050a71..8cf3dabd 100644 --- a/dev/incompressible_liquids/json/DowJ2.json +++ b/dev/incompressible_liquids/json/DowJ2.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.941500e+02, "Tmax": 5.881500e+02, "Tmin": 2.001500e+02, "TminPsat": 5.881500e+02, "conductivity": { "coeffs": [ [ - 1.560412e-01 + 1.244832e-01 ], [ - -7.580656e-05 + -8.228663e-05 ], [ - -1.597822e-08 + -4.623924e-10 ], [ 1.312176e-11 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.115217e+03 + 7.844671e+02 ], [ - -1.169420e+00 + -8.449387e-01 ], [ - 1.690565e-03 + -8.673233e-04 ], [ -2.163211e-06 @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 1.225943e+03 + 2.166752e+03 ], [ - 1.153546e+00 + 3.623602e+00 ], [ - 3.120896e-03 + 3.145896e-03 ], [ 2.114289e-08 diff --git a/dev/incompressible_liquids/json/DowQ.json b/dev/incompressible_liquids/json/DowQ.json index c864842d..c89c8efd 100644 --- a/dev/incompressible_liquids/json/DowQ.json +++ b/dev/incompressible_liquids/json/DowQ.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.356500e+02, "Tmax": 6.331500e+02, "Tmin": 2.381500e+02, "TminPsat": 3.931500e+02, "conductivity": { "coeffs": [ [ - 1.395058e-01 + 1.024267e-01 ], [ - 1.832583e-05 + -1.502677e-04 ], [ - -3.253075e-07 + -6.168555e-08 ], [ 2.017078e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.203328e+03 + 8.575028e+02 ], [ - -8.682983e-01 + -7.530279e-01 ], [ - 2.483288e-04 + 1.626521e-05 ], [ -1.775612e-07 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 6.802415e+02 + 2.095464e+03 ], [ - 3.451081e+00 + 3.029662e+00 ], [ - -4.274880e-04 + -5.398472e-04 ], [ -8.597050e-08 diff --git a/dev/incompressible_liquids/json/DowQ2.json b/dev/incompressible_liquids/json/DowQ2.json index bfa69c8a..3d1885d9 100644 --- a/dev/incompressible_liquids/json/DowQ2.json +++ b/dev/incompressible_liquids/json/DowQ2.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.206500e+02, "Tmax": 6.031500e+02, "Tmin": 2.381500e+02, "TminPsat": 6.031500e+02, "conductivity": { "coeffs": [ [ - 5.355676e-03 + 1.129635e-01 ], [ - 9.932372e-04 + -1.667470e-04 ], [ - -2.501575e-06 + -2.560241e-07 ], [ 1.779430e-09 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.185696e+03 + 8.736856e+02 ], [ - -6.988772e-01 + -7.653404e-01 ], [ - -1.476539e-04 + -1.034704e-05 ], [ 1.088053e-07 @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 6.849266e+02 + 2.052103e+03 ], [ - 3.405514e+00 + 3.052463e+00 ], [ - -2.687178e-04 + -5.705814e-04 ], [ -2.392041e-07 diff --git a/dev/incompressible_liquids/json/ExampleDigital.json b/dev/incompressible_liquids/json/ExampleDigital.json index 5129879e..a1273e37 100644 --- a/dev/incompressible_liquids/json/ExampleDigital.json +++ b/dev/incompressible_liquids/json/ExampleDigital.json @@ -7,7 +7,7 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 3.865000e+02, "Tmax": 5.000000e+02, "Tmin": 2.730000e+02, "TminPsat": 2.730000e+02, @@ -51,33 +51,33 @@ "density": { "coeffs": [ [ - 2.219503e-02, - 9.981861e+01, - 2.242712e-01, - -5.908558e-02, - -4.808674e-03, + 8.229999e+02, + 4.865001e+02, + 1.452455e-03, + -6.440350e-03, + -8.477387e-03, 1.756515e-02 ], [ - 1.499820e+00, - 1.001456e+00, - -1.699049e-03, - 4.012311e-04, + 1.999995e+00, + 1.000003e+00, + 4.239281e-05, + -6.006049e-05, -1.231089e-04, 0.000000e+00 ], [ - 4.755719e-07, - -3.764317e-06, - 3.949868e-06, + 1.022318e-08, + 4.058105e-08, + -1.062292e-07, -2.782326e-07, 0.000000e+00, 0.000000e+00 ], [ - -4.117538e-10, - 3.193145e-09, - -3.138209e-09, + 4.001641e-10, + 5.493741e-11, + -3.138218e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -136,33 +136,33 @@ "specific_heat": { "coeffs": [ [ - 7.872613e-03, - 4.996316e+01, - -8.665149e-04, - -1.808375e-02, - 4.488460e-02, + 8.366499e+02, + 4.364991e+02, + 4.205855e-04, + 1.299601e-02, + 2.128749e-03, -3.598992e-02 ], [ - 1.599936e+00, - 1.000334e+00, - -8.059443e-06, - -7.956734e-05, + 2.099997e+00, + 9.999919e-01, + -3.646977e-05, + -2.883583e-06, 1.221706e-04, 0.000000e+00 ], [ - 1.722480e-07, - -9.767605e-07, - 2.526821e-07, + 1.642442e-08, + 1.864578e-08, + -1.661903e-07, -2.168919e-07, 0.000000e+00, 0.000000e+00 ], [ - -1.548841e-10, - 8.615147e-10, - -8.067086e-11, + 2.556074e-10, + 7.808459e-10, + -8.067911e-11, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -211,7 +211,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 5.000000e-01, "xid": "mass", "xmax": 1.000000e+00, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/ExampleDigitalPure.json b/dev/incompressible_liquids/json/ExampleDigitalPure.json index 179a614f..aacb484a 100644 --- a/dev/incompressible_liquids/json/ExampleDigitalPure.json +++ b/dev/incompressible_liquids/json/ExampleDigitalPure.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.900000e+02, "Tmax": 5.000000e+02, "Tmin": 2.800000e+02, "TminPsat": 2.800000e+02, "conductivity": { "coeffs": [ [ - -9.604103e-01 + 1.054674e+00 ], [ - 9.133079e-03 + 1.726354e-03 ], [ - -1.151759e-05 + -7.474010e-06 ], [ 3.456054e-09 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.431138e+03 + 1.192776e+03 ], [ - -8.334748e-01 + -4.853294e-01 ], [ - 8.172273e-04 + 7.545341e-05 ], [ -6.339948e-07 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - -5.924333e+03 + 3.688015e+03 ], [ - 7.625648e+01 + -1.955930e+00 ], [ - -1.964510e-01 + -4.093648e-03 ], [ 1.644080e-04 diff --git a/dev/incompressible_liquids/json/ExamplePure.json b/dev/incompressible_liquids/json/ExamplePure.json index a19ce6cd..402fd9d8 100644 --- a/dev/incompressible_liquids/json/ExamplePure.json +++ b/dev/incompressible_liquids/json/ExamplePure.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.731500e+02, "Tmax": 4.231500e+02, "Tmin": 3.231500e+02, "TminPsat": 4.231500e+02, "conductivity": { "coeffs": [ [ - 1.979160e-01 + 9.648019e-02 ], [ - -4.988216e-04 + -1.800894e-04 ], [ - 9.707168e-07 + -1.165501e-07 ], [ -9.712510e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.197837e+03 + 7.024452e+02 ], [ - -2.642201e+00 + -7.703186e-01 ], [ - 5.552564e-03 + -5.361305e-04 ], [ -5.439005e-06 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 6.191392e+02 + 2.446529e+03 ], [ - 5.725429e+00 + 4.096018e+00 ], [ - -2.292045e-03 + -2.074592e-03 ], [ 1.942502e-07 diff --git a/dev/incompressible_liquids/json/ExampleSolution.json b/dev/incompressible_liquids/json/ExampleSolution.json index 88ec0926..c1ec3f29 100644 --- a/dev/incompressible_liquids/json/ExampleSolution.json +++ b/dev/incompressible_liquids/json/ExampleSolution.json @@ -7,7 +7,7 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 2.456500e+02, "Tmax": 2.631500e+02, "Tmin": 2.281500e+02, "TminPsat": 2.631500e+02, @@ -51,32 +51,32 @@ "density": { "coeffs": [ [ - 5.067237e+03, - -2.641767e+03, - -3.637280e+03, - 1.712350e+03, - -1.143095e+03, + 1.026081e+03, + -1.590171e+02, + 2.363231e+01, + -5.555556e+01, + 3.787879e+01, 1.500000e+03 ], [ - -5.315202e+01, - 3.485265e+01, - 4.135341e+01, - -1.137638e+01, + -8.565823e-01, + 1.584395e+00, + -4.885161e-01, + 5.820106e-01, -1.298701e+00, 0.000000e+00 ], [ - 2.383530e-01, - -1.682924e-01, - -1.538609e-01, + -2.059637e-02, + 2.962207e-02, + -3.287982e-03, 2.645503e-02, 0.000000e+00, 0.000000e+00 ], [ - -3.598846e-04, - 2.746513e-04, + -2.976431e-04, + 3.477633e-04, 1.827802e-04, 0.000000e+00, 0.000000e+00, @@ -136,32 +136,32 @@ "specific_heat": { "coeffs": [ [ - 5.067237e+03, - -2.641767e+03, - -3.637280e+03, - 1.712350e+03, - -1.143095e+03, + 1.026081e+03, + -1.590171e+02, + 2.363231e+01, + -5.555556e+01, + 3.787879e+01, 1.500000e+03 ], [ - -5.315202e+01, - 3.485265e+01, - 4.135341e+01, - -1.137638e+01, + -8.565823e-01, + 1.584395e+00, + -4.885161e-01, + 5.820106e-01, -1.298701e+00, 0.000000e+00 ], [ - 2.383530e-01, - -1.682924e-01, - -1.538609e-01, + -2.059637e-02, + 2.962207e-02, + -3.287982e-03, 2.645503e-02, 0.000000e+00, 0.000000e+00 ], [ - -3.598846e-04, - 2.746513e-04, + -2.976431e-04, + 3.477633e-04, 1.827802e-04, 0.000000e+00, 0.000000e+00, @@ -211,7 +211,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 2.000000e-01, "xid": "mass", "xmax": 3.500000e-01, "xmin": 5.000000e-02 diff --git a/dev/incompressible_liquids/json/GKN.json b/dev/incompressible_liquids/json/GKN.json index ec7a0761..f6e57691 100644 --- a/dev/incompressible_liquids/json/GKN.json +++ b/dev/incompressible_liquids/json/GKN.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.599443e+00, - 1.153757e-01, - -1.339570e+00, - 1.486540e+00, - -2.475048e-01, + 5.530273e+00, + -3.966935e-01, + -4.076282e-01, + -1.371355e-01, + -2.072032e+00, -1.042587e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.966500e+02, "Tmax": 3.731500e+02, "Tmin": 2.201500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - 3.292319e-01, - 3.179368e-01, - 3.251194e-02, - 2.695014e-01, - -1.084209e-01, + 4.602765e-01, + -3.818989e-01, + 3.091732e-01, + -7.338636e-03, + 2.487536e-02, 5.953247e-02 ], [ - 1.133558e-03, - -3.814812e-03, - 1.755812e-03, - -1.424391e-03, + 1.113132e-04, + -2.530961e-03, + 1.246007e-05, + -4.776917e-05, 9.814404e-05, 0.000000e+00 ], [ - -6.928000e-07, - 3.075708e-06, - -2.844517e-06, + 4.059629e-07, + 4.037556e-08, + -4.269076e-07, 2.088691e-06, 0.000000e+00, 0.000000e+00 ], [ - 1.059366e-09, - -2.212375e-09, + 3.159344e-10, + -2.035804e-09, 2.522430e-10, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 9.625999e+02, - 4.691832e+02, - -2.892412e+02, - 9.379180e+01, - 4.972348e+01, + 1.050043e+03, + 1.560282e+02, + -2.663210e+01, + 4.001638e+00, + 1.791943e+01, -4.300655e+01 ], [ - 5.943116e-01, - -1.780844e+00, - 2.119210e+00, - -8.373034e-01, + -5.159333e-01, + -4.677766e-01, + -1.471416e-03, + -8.728920e-02, 1.464939e-01, 0.000000e+00 ], [ - -1.819845e-03, - 3.567888e-03, - -5.067762e-03, - 9.184607e-04, + -1.250499e-03, + 2.025591e-05, + -4.446931e-04, + 9.184606e-04, 0.000000e+00, 0.000000e+00 ], [ - 5.263246e-07, - -3.257276e-06, + -1.101107e-07, + -3.794966e-07, 4.111114e-06, 0.000000e+00, 0.000000e+00, @@ -94,11 +94,11 @@ "mass2input": { "coeffs": [ [ - 7.385735e-03, - 7.584324e-01, - 9.023950e-01, - -2.271174e+00, - 3.070747e+00, + 3.237641e-01, + 9.632257e-01, + 9.546135e-02, + 8.729954e-02, + 2.985003e-01, -1.584141e+00 ] ], @@ -117,32 +117,32 @@ "specific_heat": { "coeffs": [ [ - 4.415445e+03, - -3.957051e+03, - 4.567390e+02, - -3.173228e+02, - -4.251050e+01, + 3.631385e+03, + -1.883715e+03, + 2.895015e+01, + -5.881215e+01, + 1.458754e+02, 7.882411e+02 ], [ - -1.179734e+00, - 9.048629e+00, - -3.599405e+00, - 1.280500e+00, + 2.197127e+00, + 6.002962e+00, + 4.102206e-01, + -2.545013e-02, -4.014954e+00, 0.000000e+00 ], [ - 3.547048e-03, - -1.214626e-02, - 1.239745e-02, + 1.085383e-03, + -2.433413e-04, + -1.102241e-03, 7.272856e-03, 0.000000e+00, 0.000000e+00 ], [ - -3.172474e-06, - 1.724508e-05, + -4.605376e-08, + 6.201753e-07, -2.374986e-05, 0.000000e+00, 0.000000e+00, @@ -154,32 +154,32 @@ "viscosity": { "coeffs": [ [ - 7.091125e+01, - 1.599485e+01, - 1.197391e+01, - 7.748677e+00, - -9.153233e+00, + -8.317626e+00, + 2.779043e+00, + -7.371079e-01, + 9.685055e-01, + -1.942121e-01, 3.780937e+00 ], [ - -7.042339e-01, - -7.567879e-02, - -9.898674e-02, - -2.850751e-03, + -2.764130e-02, + -7.148198e-03, + -3.019872e-02, + 1.253178e-03, 7.896108e-03, 0.000000e+00 ], [ - 2.105532e-03, - 5.606966e-05, - 2.259133e-04, + 2.586265e-04, + 2.536553e-04, + 8.796752e-06, -1.171519e-05, 0.000000e+00, 0.000000e+00 ], [ - -2.173274e-06, - 2.102619e-07, + -2.127875e-06, + 4.916195e-08, -2.301429e-07, 0.000000e+00, 0.000000e+00, @@ -192,7 +192,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/HC10.json b/dev/incompressible_liquids/json/HC10.json index 9dd35aa6..9ffc3dd1 100644 --- a/dev/incompressible_liquids/json/HC10.json +++ b/dev/incompressible_liquids/json/HC10.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.771500e+02, "Tmax": 4.911500e+02, "Tmin": 2.631500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.308500e-01 + 6.080000e-01 ], [ 1.000000e-03 ], [ - 3.103056e-17 + -1.200140e-19 ], [ - -5.156313e-20 + 9.423242e-21 ] ], "type": "polynomial" @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.321057e+03 + 1.151987e+03 ], [ - -4.269036e-01 + -4.536123e-01 ], [ - -9.924692e-05 + 2.842971e-05 ], [ 1.128434e-07 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -2.745776e+01 + 1.144459e+01 ], [ - 1.955148e-01 + 3.624262e-02 ], [ - -3.124157e-04 + -1.098890e-04 ], [ 1.789975e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 2.599116e+03 + 3.528715e+03 ], [ - 2.434056e+00 + 2.480640e+00 ], [ - 1.210223e-04 + 2.493117e-06 ], [ -1.047586e-07 diff --git a/dev/incompressible_liquids/json/HC20.json b/dev/incompressible_liquids/json/HC20.json index 7ebecfa0..1107d74f 100644 --- a/dev/incompressible_liquids/json/HC20.json +++ b/dev/incompressible_liquids/json/HC20.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.681500e+02, "Tmax": 4.831500e+02, "Tmin": 2.531500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.298500e-01 + 5.980000e-01 ], [ 1.000000e-03 ], [ - 4.945410e-17 + 0.000000e+00 ], [ - 4.446923e-20 + -6.255525e-20 ] ], "type": "polynomial" @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.391892e+03 + 1.198285e+03 ], [ - -5.373752e-01 + -5.182763e-01 ], [ - 4.169274e-05 + 1.018547e-05 ], [ -2.852756e-08 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -2.548498e+01 + 1.101947e+01 ], [ - 1.798326e-01 + 3.824312e-02 ], [ - -2.728207e-04 + -1.117766e-04 ], [ 1.458139e-07 @@ -72,16 +72,16 @@ "specific_heat": { "coeffs": [ [ - 2.518668e+03 + 3.388620e+03 ], [ - 2.366344e+00 + 2.359984e+00 ], [ - -9.673941e-06 + -7.601095e-06 ], [ - 1.876813e-09 + 1.876814e-09 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/HC30.json b/dev/incompressible_liquids/json/HC30.json index 71cfef68..ed6db06a 100644 --- a/dev/incompressible_liquids/json/HC30.json +++ b/dev/incompressible_liquids/json/HC30.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.631500e+02, "Tmax": 4.831500e+02, "Tmin": 2.431500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.258500e-01 + 5.890000e-01 ], [ 1.000000e-03 ], [ - 3.613676e-17 + 1.057732e-19 ], [ - 3.832824e-20 + 5.940455e-20 ] ], "type": "polynomial" @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.415303e+03 + 1.239436e+03 ], [ - -4.432743e-01 + -5.102214e-01 ], [ - -1.544364e-04 + -2.991453e-05 ], [ 1.142979e-07 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -2.882608e+01 + 1.073982e+01 ], [ - 2.036943e-01 + 3.952906e-02 ], [ - -3.306125e-04 + -1.214467e-04 ], [ 1.919922e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 2.384602e+03 + 3.238461e+03 ], [ - 2.437687e+00 + 2.307300e+00 ], [ - -3.549573e-04 + -4.087700e-06 ], [ 3.220612e-07 diff --git a/dev/incompressible_liquids/json/HC40.json b/dev/incompressible_liquids/json/HC40.json index 9a2a6a61..4f38ac93 100644 --- a/dev/incompressible_liquids/json/HC40.json +++ b/dev/incompressible_liquids/json/HC40.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.531500e+02, "Tmax": 4.731500e+02, "Tmin": 2.331500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.158500e-01 + 5.690000e-01 ], [ 1.000000e-03 ], [ - 9.107021e-17 + -1.572305e-20 ], [ - 1.979940e-20 + 5.982170e-21 ] ], "type": "polynomial" @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.472078e+03 + 1.281449e+03 ], [ - -5.038847e-01 + -5.604562e-01 ], [ - -1.448753e-04 + -1.531593e-05 ], [ 1.222892e-07 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -3.544247e+01 + 1.023251e+01 ], [ - 2.601181e-01 + 4.175479e-02 ], [ - -4.926612e-04 + -1.256691e-04 ], [ 3.463987e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 2.284944e+03 + 3.071230e+03 ], [ - 2.136372e+00 + 2.289047e+00 ], [ - 3.332279e-04 + 9.909498e-05 ], [ -2.209948e-07 diff --git a/dev/incompressible_liquids/json/HC50.json b/dev/incompressible_liquids/json/HC50.json index 9494d331..8a7d9290 100644 --- a/dev/incompressible_liquids/json/HC50.json +++ b/dev/incompressible_liquids/json/HC50.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.531500e+02, "Tmax": 4.831500e+02, "Tmin": 2.231500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.154376e-01 + 5.650230e-01 ], [ - 9.657760e-04 + 1.000763e-03 ], [ - 1.059136e-07 + -6.841817e-09 ], [ -1.064283e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.498945e+03 + 1.306294e+03 ], [ - -5.279648e-01 + -5.553180e-01 ], [ - -7.168674e-05 + -5.768178e-06 ], [ 6.221960e-08 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -2.384110e+01 + 1.009944e+01 ], [ - 1.632103e-01 + 4.207959e-02 ], [ - -2.270317e-04 + -1.159692e-04 ], [ 1.048304e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 2.128783e+03 + 2.818936e+03 ], [ - 1.922464e+00 + 1.970979e+00 ], [ - 1.328728e-04 + 4.505073e-06 ], [ -1.211645e-07 diff --git a/dev/incompressible_liquids/json/HFE2.json b/dev/incompressible_liquids/json/HFE2.json index 28de4644..a1a74fc7 100644 --- a/dev/incompressible_liquids/json/HFE2.json +++ b/dev/incompressible_liquids/json/HFE2.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.651200e+02, "Tmax": 3.374200e+02, "Tmin": 1.928200e+02, "TminPsat": 3.374200e+02, "conductivity": { "coeffs": [ [ - 1.271093e-01 + 7.528370e-02 ], [ - -1.954798e-04 + -1.954800e-04 ], [ - -5.750985e-13 + -2.465230e-14 ], [ - 6.920713e-16 + 6.920682e-16 ] ], "type": "polynomial" @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 2.158077e+03 + 1.556520e+03 ], [ -2.269000e+00 ], [ - -1.493085e-13 + 5.221518e-16 ], [ - 1.637145e-16 + 2.402592e-16 ] ], "type": "polynomial" @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 5.867000e+02 + 1.116940e+03 ], [ 2.000000e+00 ], [ - 1.348812e-13 + -6.642229e-16 ], [ - -2.528359e-16 + -3.339343e-16 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/IceEA.json b/dev/incompressible_liquids/json/IceEA.json index d052fcd6..26ad9dca 100644 --- a/dev/incompressible_liquids/json/IceEA.json +++ b/dev/incompressible_liquids/json/IceEA.json @@ -3,39 +3,39 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.525000e+02, "Tmax": 2.650000e+02, "Tmin": 2.400000e+02, "TminPsat": 2.650000e+02, "conductivity": { "coeffs": [ [ - -2.417069e+01, - -5.124877e+01, - 5.197466e+01, - 9.542401e-01, - 3.286003e+00, + 5.582565e-01, + 9.962700e-01, + 6.859591e-01, + 4.615741e-01, + 2.727273e-01, 2.222222e-01 ], [ - 2.907291e-01, - 6.044053e-01, - -6.341754e-01, - -1.047908e-02, + 6.360627e-03, + 5.938113e-03, + -7.701339e-04, + -4.698413e-03, -1.281385e-02, 0.000000e+00 ], [ - -1.167878e-03, - -2.363779e-03, - 2.603099e-03, + 3.218367e-05, + -4.019841e-05, + -7.653061e-05, 3.174603e-05, 0.000000e+00, 0.000000e+00 ], [ - 1.590476e-06, - 3.112875e-06, + 2.070547e-06, + 1.687831e-06, -3.562610e-06, 0.000000e+00, 0.000000e+00, @@ -47,32 +47,32 @@ "density": { "coeffs": [ [ - -1.156118e+04, - 1.699463e+04, - -1.271725e+04, - 4.681787e+03, - 7.041847e+01, + 9.604950e+02, + -6.123692e+01, + 2.608225e+00, + -8.564815e+00, + 3.030303e+01, 2.222222e+02 ], [ - 1.455143e+02, - -1.982399e+02, - 1.419644e+02, - -3.835931e+01, + 4.441443e-01, + -4.220370e-01, + 7.287157e-03, + 8.888889e-01, -1.038961e+00, 0.000000e+00 ], [ - -5.648673e-01, - 7.687358e-01, - -5.231293e-01, + -7.370748e-03, + 7.896825e-03, + 5.442177e-03, 7.936508e-02, 0.000000e+00, 0.000000e+00 ], [ - 7.333333e-04, - -9.947090e-04, + 5.597884e-04, + -7.407407e-04, 6.349206e-04, 0.000000e+00, 0.000000e+00, @@ -99,32 +99,32 @@ "specific_heat": { "coeffs": [ [ - -7.912312e+05, - 1.198187e+08, - -2.016732e+08, - 2.553542e+07, - -1.016492e+06, + 8.194079e+04, + 4.098169e+05, + -1.062762e+04, + -7.053218e+04, + -7.150505e+04, -6.177778e+04 ], [ - 9.319527e+03, - -1.441948e+06, - 2.348519e+06, - -1.971789e+05, + -2.842661e+02, + -2.371855e+03, + -5.436087e+03, + -2.193397e+03, 3.987186e+03, 0.000000e+00 ], [ - -3.657274e+01, - 5.804897e+03, - -9.099112e+03, + -2.519892e+01, + -1.367578e+02, + 1.339728e+01, 3.797937e+02, 0.000000e+00, 0.000000e+00 ], [ - 4.781905e-02, - -7.790677e+00, + -1.041161e+00, + -3.099122e+00, 1.172889e+01, 0.000000e+00, 0.000000e+00, @@ -136,32 +136,32 @@ "viscosity": { "coeffs": [ [ - -5.581439e+01, - -7.937636e+01, - 1.825603e+02, - -6.365797e-02, - -1.799123e+01, + -3.087316e+00, + 2.175017e+00, + -2.512979e+00, + 3.880552e+00, + -6.779982e+00, 6.900146e+00 ], [ - 5.051216e-01, - 9.728902e-01, - -2.194671e+00, - 1.104746e-01, + -8.462508e-02, + 2.759457e-04, + -5.590346e-04, + -7.503359e-04, 1.707366e-02, 0.000000e+00 ], [ - -1.211882e-03, - -3.786167e-03, - 8.447155e-03, + -1.128967e-03, + 7.081811e-06, + 1.120295e-04, -2.472949e-04, 0.000000e+00, 0.000000e+00 ], [ - 1.161167e-07, - 4.909256e-06, + 6.656644e-07, + 5.862205e-07, -1.080759e-05, 0.000000e+00, 0.000000e+00, @@ -174,7 +174,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 2.000000e-01, "xid": "mass", "xmax": 3.500000e-01, "xmin": 5.000000e-02 diff --git a/dev/incompressible_liquids/json/IceNA.json b/dev/incompressible_liquids/json/IceNA.json index d6581960..b1dd9599 100644 --- a/dev/incompressible_liquids/json/IceNA.json +++ b/dev/incompressible_liquids/json/IceNA.json @@ -3,39 +3,39 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.625000e+02, "Tmax": 2.700000e+02, "Tmin": 2.550000e+02, "TminPsat": 2.700000e+02, "conductivity": { "coeffs": [ [ - 7.403431e-01, - 1.650430e+02, - -1.531121e+02, - 2.839975e+01, - 1.878788e+00, + 7.598080e-01, + 1.235272e+00, + 5.741071e-01, + 2.444444e-01, + -8.492104e-14, 6.666667e-01 ], [ - 1.497147e-04, - -1.886981e+00, - 1.697210e+00, - -2.229091e-01, + 1.030686e-03, + -5.864524e-03, + 1.136797e-03, + 2.666667e-03, -9.696970e-03, 0.000000e+00 ], [ - -1.857143e-05, - 7.258413e-03, - -6.238095e-03, + 2.142857e-06, + -1.334921e-04, + 2.857143e-05, 4.444444e-04, 0.000000e+00, 0.000000e+00 ], [ - 5.714286e-08, - -9.333333e-06, + -1.504762e-06, + -6.285714e-06, 7.619048e-06, 0.000000e+00, 0.000000e+00, @@ -47,32 +47,32 @@ "density": { "coeffs": [ [ - 1.267341e+05, - -1.567353e+05, - 5.337429e+04, - 2.698232e+04, - 3.515152e+03, + 1.070914e+03, + -2.270867e+02, + 5.455087e+01, + -6.388889e+01, + -2.424242e+02, 1.333333e+03 ], [ - -1.456799e+03, - 1.809971e+03, - -6.611048e+02, - -2.169293e+02, + -5.978032e+00, + 1.029397e+01, + -3.416883e+00, + 8.888889e-01, -1.939394e+01, 0.000000e+00 ], [ - 5.661714e+00, - -7.023968e+00, - 2.742857e+00, + -1.148095e-01, + 1.265079e-01, + 9.523810e-03, 4.444444e-01, 0.000000e+00, 0.000000e+00 ], [ - -7.371429e-03, - 9.142857e-03, + -5.695238e-03, + 7.619048e-03, -3.809524e-03, 0.000000e+00, 0.000000e+00, @@ -99,32 +99,32 @@ "specific_heat": { "coeffs": [ [ - 1.292541e+07, - -6.761585e+07, - 6.861809e+07, - 3.921498e+06, - 1.084848e+04, - -1.666666e+03 + 7.290671e+04, + 3.608634e+05, + -1.533370e+04, + 6.622222e+03, + -4.545455e+01, + -1.666667e+03 ], [ - -1.486754e+05, - 8.145020e+05, - -8.332041e+05, - -2.862455e+04, - -3.515151e+01, + -7.512994e+02, + -3.270198e+03, + 3.139012e+03, + -1.236000e+03, + -3.515152e+01, 0.000000e+00 ], [ - 5.698839e+02, - -3.228096e+03, - 3.345181e+03, + 1.229471e+01, + 5.116825e+01, + -1.249857e+02, 5.222222e+01, 0.000000e+00, 0.000000e+00 ], [ - -7.279238e-01, - 4.235587e+00, + -5.866032e-02, + 2.457048e+00, -4.446349e+00, 0.000000e+00, 0.000000e+00, @@ -136,32 +136,32 @@ "viscosity": { "coeffs": [ [ - -4.068884e+02, - 2.537300e+02, - -3.579907e+02, - -1.463306e+02, - -1.036445e+02, + -5.111147e+00, + 2.155306e+00, + -2.763300e+00, + 4.413803e+00, + -9.403120e+00, 1.850344e+01 ], [ - 4.867796e+00, - -2.968342e+00, - 4.407114e+00, - 1.563564e+00, + -6.971797e-02, + -3.012097e-03, + 2.247915e-02, + -7.050899e-02, 2.885255e-01, 0.000000e+00 ], [ - -1.936569e-02, - 1.186688e-02, - -1.890092e-02, + 5.078165e-04, + -4.930767e-05, + 4.912011e-04, -3.552178e-03, 0.000000e+00, 0.000000e+00 ], [ - 2.530976e-05, - -1.592245e-05, + 2.321852e-05, + -4.989919e-06, 2.733134e-05, 0.000000e+00, 0.000000e+00, @@ -174,7 +174,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 2.000000e-01, "xid": "mass", "xmax": 3.500000e-01, "xmin": 5.000000e-02 diff --git a/dev/incompressible_liquids/json/IcePG.json b/dev/incompressible_liquids/json/IcePG.json index d37758eb..0dcf9369 100644 --- a/dev/incompressible_liquids/json/IcePG.json +++ b/dev/incompressible_liquids/json/IcePG.json @@ -3,39 +3,39 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.475000e+02, "Tmax": 2.650000e+02, "Tmin": 2.300000e+02, "TminPsat": 2.650000e+02, "conductivity": { "coeffs": [ [ - -3.346821e+01, - -1.902109e+01, - 2.491205e+01, - 1.494715e+00, - -2.227273e+00, + 5.381718e-01, + 1.033758e+00, + 6.969264e-01, + 4.402778e-01, + 2.727273e-01, 1.000000e+00 ], [ - 4.256816e-01, - 2.472531e-01, - -3.113323e-01, - 1.712362e-03, + 4.069909e-03, + 3.265393e-03, + -1.187109e-03, + -3.915344e-03, 6.060606e-03, 0.000000e+00 ], [ - -1.797109e-03, - -1.039358e-03, - 1.305669e-03, + 9.986281e-05, + 3.537037e-05, + -4.988662e-05, -2.116402e-05, 0.000000e+00, 0.000000e+00 ], [ - 2.542857e-06, - 1.470899e-06, + 2.764695e-06, + 7.474747e-07, -1.808562e-06, 0.000000e+00, 0.000000e+00, @@ -47,32 +47,32 @@ "density": { "coeffs": [ [ - 5.524155e+03, - 2.061727e+03, - -1.842333e+04, - -5.220238e+02, - -2.571429e+03, + 1.024418e+03, + -1.563366e+02, + 2.333333e+01, + -2.500000e+01, + 4.181595e-10, 1.000000e+03 ], [ - -5.860073e+01, - -2.376484e+01, - 2.274836e+02, - 1.148148e+01, + -9.246891e-01, + 1.678705e+00, + -9.965127e-01, + 8.465608e-01, 6.349206e+00, 0.000000e+00 ], [ - 2.599796e-01, - 7.521542e-02, - -9.380952e-01, + -2.218367e-02, + 3.259637e-02, + -1.033896e-13, -3.174603e-02, 0.000000e+00, 0.000000e+00 ], [ - -3.884560e-04, - -6.253006e-05, + -3.493987e-04, + 4.531025e-04, 1.289081e-03, 0.000000e+00, 0.000000e+00, @@ -99,32 +99,32 @@ "specific_heat": { "coeffs": [ [ - -1.767124e+06, - -5.589130e+07, - 1.849732e+08, - -1.760948e+07, - 3.743028e+06, + 8.962249e+04, + 4.193248e+05, + -1.107012e+05, + 1.794153e+05, + 4.424242e+04, -3.180000e+05 ], [ - 2.136151e+04, - 7.201156e+05, - -2.280244e+06, - 1.410648e+05, + -1.303357e+03, + -3.800908e+03, + 1.173844e+04, + -9.557778e+03, -1.365974e+04, 0.000000e+00 ], [ - -8.599391e+01, - -3.021100e+03, - 9.300944e+03, + 1.100001e+01, + 2.828670e+01, + -1.998118e+02, -2.822116e+02, 0.000000e+00, 0.000000e+00 ], [ - 1.152886e-01, - 4.168951e+00, + 4.463757e-01, + -8.580808e-01, -1.256758e+01, 0.000000e+00, 0.000000e+00, @@ -136,32 +136,32 @@ "viscosity": { "coeffs": [ [ - 8.155640e+01, - 3.705538e+01, - -9.568168e+01, - 2.063654e+01, - 8.319204e-01, + -6.356003e+00, + 1.784234e+00, + -1.858887e+00, + 2.766323e+00, + -4.389988e+00, -5.443018e+00 ], [ - -8.364044e-01, - -4.170065e-01, - 1.085750e+00, - -1.188864e-01, + -1.523129e-01, + -6.324624e-04, + 3.426715e-03, + -1.401858e-02, 8.933696e-04, 0.000000e+00 ], [ - 3.044771e-03, - 1.714786e-03, - -4.339065e-03, + -2.865050e-04, + -1.931122e-05, + 1.271372e-04, 2.104104e-04, 0.000000e+00, 0.000000e+00 ], [ - -4.476783e-06, - -2.369970e-06, + -4.716975e-06, + -3.194624e-08, 5.845059e-06, 0.000000e+00, 0.000000e+00, @@ -174,7 +174,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 2.000000e-01, "xid": "mass", "xmax": 3.500000e-01, "xmin": 5.000000e-02 diff --git a/dev/incompressible_liquids/json/LiBr.json b/dev/incompressible_liquids/json/LiBr.json index cf5c685a..c0fcb3f7 100644 --- a/dev/incompressible_liquids/json/LiBr.json +++ b/dev/incompressible_liquids/json/LiBr.json @@ -7,7 +7,7 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 3.865000e+02, "Tmax": 5.000000e+02, "Tmin": 2.730000e+02, "TminPsat": 2.730000e+02, @@ -51,32 +51,32 @@ "density": { "coeffs": [ [ - 6.182359e+02, - 2.066414e+03, - -6.247042e+03, - 8.376532e+03, - -4.399037e+03, + 1.300435e+03, + 1.277503e+03, + 1.188416e+03, + 1.079937e+03, + 1.348022e+03, 1.191868e+03 ], [ - 3.122519e+00, - -8.527740e+00, - 4.021324e+01, - -3.140840e+01, + -8.175040e-01, + 4.808491e-02, + 1.134731e+00, + 5.492054e+00, 9.087468e+00, 0.000000e+00 ], [ - -7.474718e-03, - 1.723288e-02, - -7.973312e-02, + -2.093536e-03, + 3.345910e-03, + 1.634225e-02, 3.010252e-02, 0.000000e+00, 0.000000e+00 ], [ - 4.171761e-06, - -1.159479e-05, + 7.368593e-06, + 2.864456e-05, 5.365247e-05, 0.000000e+00, 0.000000e+00, @@ -99,32 +99,32 @@ "saturation_pressure": { "coeffs": [ [ - -3.549211e+01, - 3.260604e+00, - 3.190114e+01, - -1.150460e+02, - 9.403030e+00, + 1.152444e+01, + -3.377036e+00, + -1.102726e+01, + -1.515936e+01, + 1.679880e+01, 4.914147e+01 ], [ - 2.618857e-01, - -5.994650e-02, - -5.754412e-03, - 3.925398e-01, + 3.339003e-02, + 1.034649e-02, + 5.967655e-02, + 2.264936e-02, -2.192613e-01, 0.000000e+00 ], [ - -4.850041e-04, - 1.856199e-04, - -3.354426e-04, + -1.079100e-04, + -2.742834e-05, + -9.951966e-05, -5.303812e-05, 0.000000e+00, 0.000000e+00 ], [ - 3.244344e-07, - -1.386667e-07, + 3.082839e-07, + 5.253051e-08, 2.549296e-07, 0.000000e+00, 0.000000e+00, @@ -136,32 +136,32 @@ "specific_heat": { "coeffs": [ [ - 4.229832e+03, - -3.646342e+04, - 1.762285e+04, - 2.428247e+04, - -2.072505e+04, + 2.641343e+03, + -3.426990e+03, + 3.324197e+03, + -1.540026e+03, + -1.179867e+04, 2.486313e+03 ], [ - 2.982396e+00, - 2.431900e+02, - -1.953864e+02, - -8.631114e+00, + 5.857653e-01, + -1.308166e+00, + 2.465627e+00, + 1.232915e+00, 1.103372e+01, 0.000000e+00 ], [ - -1.964064e-02, - -5.903138e-01, - 5.055584e-01, + -8.168738e-05, + -3.525622e-02, + 1.711573e-02, -8.650137e-03, 0.000000e+00, 0.000000e+00 ], [ - 3.074005e-05, - 4.644860e-04, + 1.468639e-04, + 1.548410e-04, -4.128601e-04, 0.000000e+00, 0.000000e+00, @@ -211,7 +211,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.750000e-01, "xid": "mass", "xmax": 7.500000e-01, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MAM2.json b/dev/incompressible_liquids/json/MAM2.json index 69d28336..43ddf9eb 100644 --- a/dev/incompressible_liquids/json/MAM2.json +++ b/dev/incompressible_liquids/json/MAM2.json @@ -2,42 +2,42 @@ "T_freeze": { "coeffs": [ [ - 5.582814e+00, - 1.512284e-01, + 5.514485e+00, + -1.021669e+00, -3.735343e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.586500e+02, "Tmax": 2.931500e+02, "Tmin": 2.241500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - -3.840951e-01, - -1.223014e+00, - 3.385417e+01, - -1.286385e+02, + 4.403579e-01, + -4.876109e-01, + -1.876266e-01, + -4.002971e+00, 1.799604e+02 ], [ - 9.506111e-03, - -3.783282e-02, - -1.706567e-02, - 4.492704e-02, + 1.730987e-03, + 5.573518e-04, + -4.621880e-03, + 4.492705e-02, 0.000000e+00 ], [ - -3.295259e-05, - 1.693562e-04, + 6.371979e-07, + -7.766720e-06, -1.685066e-05, 0.000000e+00, 0.000000e+00 ], [ - 4.432478e-08, + 9.557594e-09, -2.214470e-07, 0.000000e+00, 0.000000e+00, @@ -49,28 +49,28 @@ "density": { "coeffs": [ [ - 1.958792e+02, - 3.023260e+03, - -3.922649e+03, - -1.102240e+04, + 9.480402e+02, + -2.701630e+02, + 1.485642e+02, + -2.810086e+02, 1.356295e+04 ], [ - 6.223005e+00, - -2.077423e+01, - 4.948456e+01, - 8.597945e+00, + -1.968549e-01, + -3.072037e+00, + 2.579357e+00, + 8.597944e+00, 0.000000e+00 ], [ - -1.312607e-02, - 1.306021e-02, + -3.551602e-03, + 2.377781e-02, -9.850151e-02, 0.000000e+00, 0.000000e+00 ], [ - 4.398985e-06, + 1.282555e-05, 5.367236e-05, 0.000000e+00, 0.000000e+00, @@ -97,28 +97,28 @@ "specific_heat": { "coeffs": [ [ - -1.149856e+04, - 1.110414e+05, - -6.437122e+04, - 2.684498e+04, - -5.539073e+04 + 4.250898e+03, + 8.804232e+01, + 4.451144e+02, + 7.206926e+02, + -5.539075e+04 ], [ - 1.747475e+02, - -1.144890e+03, - 4.153746e+02, - 3.348577e+01, + -1.951550e+00, + 5.870720e-01, + 3.561805e+01, + 3.348576e+01, 0.000000e+00 ], [ - -6.417259e-01, - 3.943283e+00, + 1.317832e-02, + 2.116420e-01, -7.646014e-01, 0.000000e+00, 0.000000e+00 ], [ - 7.768926e-04, + 7.043688e-05, -4.499718e-03, 0.000000e+00, 0.000000e+00, @@ -130,28 +130,28 @@ "viscosity": { "coeffs": [ [ - 5.404998e+01, - 2.590235e+01, - 1.809801e+02, - 2.480929e+02, + -5.709274e+00, + 8.963759e-01, + 5.886981e+00, + 1.169959e+01, -8.183996e+02 ], [ - -5.115932e-01, - -5.248190e-01, - -1.780008e+00, + -3.895883e-02, + -2.724116e-03, + -4.697299e-02, 1.073117e+00, 0.000000e+00 ], [ - 1.421449e-03, - 3.107498e-03, + 3.316326e-04, + 2.001364e-05, 2.373085e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.333159e-06, + -2.108625e-06, -4.939278e-06, 0.000000e+00, 0.000000e+00, @@ -197,7 +197,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.570000e-01, "xid": "mass", "xmax": 2.360000e-01, "xmin": 7.800000e-02 diff --git a/dev/incompressible_liquids/json/MCA2.json b/dev/incompressible_liquids/json/MCA2.json index ce63f684..0619af8c 100644 --- a/dev/incompressible_liquids/json/MCA2.json +++ b/dev/incompressible_liquids/json/MCA2.json @@ -2,47 +2,47 @@ "T_freeze": { "coeffs": [ [ - 5.653313e+00, - -1.078524e+00, - 5.849055e+00, + 5.547347e+00, + -6.216891e-01, + -3.469707e+00, -1.617841e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.661500e+02, "Tmax": 3.031500e+02, "Tmin": 2.291500e+02, "TminPsat": 3.031500e+02, "conductivity": { "coeffs": [ [ - -5.928988e-01, - 3.278061e+01, - -1.873794e+02, - 4.284676e+02, - -6.253869e+02, - 4.103980e+02 + 5.353256e-01, + -9.901893e-02, + 3.060594e-01, + -4.618248e+00, + -3.794040e+01, + 4.104000e+02 ], [ - 4.864171e-03, - -2.450773e-01, - 1.129603e+00, - -1.274810e+00, - 7.268998e-01, + 1.465756e-03, + -2.425217e-04, + -6.771097e-03, + -6.554803e-02, + 7.268999e-01, 0.000000e+00 ], [ - -3.020467e-06, - 6.818341e-04, - -2.733178e-03, + 1.968134e-06, + -2.502916e-05, + -8.610123e-05, 1.223000e-03, 0.000000e+00, 0.000000e+00 ], [ - -2.550038e-09, - -6.744899e-07, + -4.236196e-08, + 2.597821e-07, 2.433000e-06, 0.000000e+00, 0.000000e+00, @@ -54,32 +54,32 @@ "density": { "coeffs": [ [ - 3.732166e+03, - -5.454385e+04, - 2.268305e+05, - -1.606911e+05, - -4.924651e+05, - 6.015028e+05 + 1.179788e+03, + 1.035099e+03, + 4.178538e+02, + -8.152386e+03, + 6.809273e+03, + 6.014998e+05 ], [ - -1.691733e+01, - 4.301640e+02, - -1.891598e+03, - 2.416082e+03, - -2.936999e+02, + -2.411585e-01, + -1.477495e+00, + -1.758552e+01, + 1.315834e+02, + -2.937001e+02, 0.000000e+00 ], [ - 1.472855e-02, - -8.644334e-01, - 3.680146e+00, + -5.457842e-03, + 1.371750e-02, + 6.042223e-01, -3.868001e+00, 0.000000e+00, 0.000000e+00 ], [ - 3.360405e-05, - 2.734794e-04, + 4.696243e-05, + -1.343294e-04, -1.062002e-03, 0.000000e+00, 0.000000e+00, @@ -106,32 +106,32 @@ "specific_heat": { "coeffs": [ [ - -2.486324e+03, - 5.721305e+04, - -2.614874e+05, - 4.673536e+04, - 1.522643e+06, - -1.423003e+06 + 3.070664e+03, + -4.454738e+03, + 8.416571e+03, + 1.790870e+04, + 6.726670e+04, + -1.423000e+06 ], [ - 7.753586e+01, - -8.146981e+02, - 3.408540e+03, - -4.534336e+03, - -3.355001e+02, + 3.159332e+00, + 4.623496e+00, + -9.360627e+01, + -2.701123e+02, + -3.355000e+02, 0.000000e+00 ], [ - -2.847496e-01, - 2.891351e+00, - -9.678080e+00, + -1.528970e-02, + -3.403383e-02, + 1.718414e+00, 8.494999e+00, 0.000000e+00, 0.000000e+00 ], [ - 3.496968e-04, - -3.313642e-03, + 1.373482e-05, + -1.859622e-04, 8.144999e-03, 0.000000e+00, 0.000000e+00, @@ -143,32 +143,32 @@ "viscosity": { "coeffs": [ [ - -1.314167e+02, - 1.397046e+03, - -2.864119e+03, - -2.078716e+00, - 3.753227e+03, - -1.240633e+02 + -5.575889e+00, + 4.366186e+00, + 8.330385e+00, + 1.584539e+01, + 1.821609e+02, + -1.240000e+02 ], [ - 1.410119e+00, - -1.462160e+01, - 3.049819e+01, - -9.085716e+00, + -3.153334e-02, + 1.181036e-02, + 7.616519e-02, + -2.135506e+00, -1.297000e+01, 0.000000e+00 ], [ - -5.156391e-03, - 5.015074e-02, - -9.996543e-02, + 2.026017e-04, + 8.566798e-04, + -2.196179e-03, 3.177000e-02, 0.000000e+00, 0.000000e+00 ], [ - 6.122720e-06, - -5.628057e-05, + -1.014076e-06, + -1.806105e-05, 9.953000e-05, 0.000000e+00, 0.000000e+00, @@ -214,7 +214,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.920000e-01, "xid": "mass", "xmax": 2.940000e-01, "xmin": 9.000000e-02 diff --git a/dev/incompressible_liquids/json/MEA2.json b/dev/incompressible_liquids/json/MEA2.json index 6f66cfd6..1f33b9a8 100644 --- a/dev/incompressible_liquids/json/MEA2.json +++ b/dev/incompressible_liquids/json/MEA2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.560946e+00, - 8.163801e-01, - -6.550702e+00, - 1.735535e+01, - -2.213509e+01, + 5.512301e+00, + -3.582781e-01, + 1.300199e-01, + -1.758430e-01, + -2.556726e+00, 1.103006e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.611500e+02, "Tmax": 2.931500e+02, "Tmin": 2.291500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 1.062121e+00, - -4.291912e+00, - 1.379803e+01, - -2.702465e+01, - 2.753511e+01, + 3.659957e-01, + -4.351228e-01, + 1.945179e-01, + 7.669444e-01, + 4.684235e-01, -1.012000e+01 ], [ - -7.257971e-03, - 2.814830e-02, - -5.394164e-02, - 5.879414e-02, + 5.182845e-04, + -2.294380e-03, + 4.147783e-03, + 1.777048e-03, -3.486000e-02, 0.000000e+00 ], [ - 2.948347e-05, - -8.467398e-05, - 8.582089e-05, + -4.279157e-09, + -1.966452e-06, + 1.310795e-05, -1.438998e-05, 0.000000e+00, 0.000000e+00 ], [ - -3.381701e-08, - 8.674502e-08, + -1.225384e-08, + 3.473761e-08, -7.324987e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 1.245944e+03, - -1.267746e+04, - 4.570371e+04, - -5.277056e+04, - 2.381623e+04, + 9.639157e+02, + -1.385271e+02, + -3.147226e+02, + 4.275957e+02, + 1.620709e+03, -6.412000e+03 ], [ - -1.572911e+00, - 9.689791e+01, - -3.020362e+02, - 2.543097e+02, + -5.188234e-01, + -2.659211e+00, + 4.932398e+00, + 1.479174e+01, -4.141000e+01, 0.000000e+00 ], [ - 2.983615e-03, - -2.349294e-01, - 6.102338e-01, + -3.985602e-03, + 3.261505e-02, + 1.650197e-02, -3.460000e-01, 0.000000e+00, 0.000000e+00 ], [ - -1.261407e-06, - 1.595687e-04, + 1.915331e-05, + -4.455626e-05, -2.874999e-04, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 1.222865e+04, - -3.633596e+04, - 1.783043e+04, - 6.419046e+04, - -8.474853e+04, - 2.235002e+03 + 3.996428e+03, + -2.846249e+03, + -1.531426e+03, + 9.307371e+03, + -1.431873e+04, + 2.235001e+03 ], [ - -5.979757e+01, - 3.088936e+02, - -4.395588e+02, - 1.174104e+02, + 3.218122e+00, + 2.065606e+01, + -4.368677e+01, + 9.481276e-01, 2.545000e+02, 0.000000e+00 ], [ - 1.244364e-01, - -5.941706e-01, - 9.925998e-01, + 2.617675e-04, + -1.772782e-02, + 2.819403e-01, -9.149000e-01, 0.000000e+00, 0.000000e+00 ], [ - -5.286637e-05, - 3.875732e-05, + 3.312447e-06, + 2.777430e-04, 3.365996e-04, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - 6.715424e+02, - -2.849136e+03, - 3.604263e+03, - -5.067038e+02, - -3.748620e+02, - 7.654008e+01 + -4.268143e+00, + 3.631931e-01, + -7.445959e+00, + -1.350047e+00, + -1.488443e+01, + 7.654000e+01 ], [ - -6.960744e+00, - 2.993746e+01, - -3.727398e+01, - 5.607999e+00, - 8.581999e-01, + -6.533397e-02, + 4.100097e-02, + -2.985020e-02, + 3.814608e-01, + 8.582000e-01, 0.000000e+00 ], [ - 2.384017e-02, - -1.035360e-01, - 1.238328e-01, + 5.436594e-04, + -1.568477e-03, + 6.570190e-03, -1.234000e-02, 0.000000e+00, 0.000000e+00 ], [ - -2.726353e-05, - 1.182427e-04, + -2.036115e-06, + 2.388365e-05, -1.329000e-04, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 3.550000e-01, "xid": "mass", "xmax": 6.000000e-01, "xmin": 1.100000e-01 diff --git a/dev/incompressible_liquids/json/MEG2.json b/dev/incompressible_liquids/json/MEG2.json index 3bb25b39..5823cc78 100644 --- a/dev/incompressible_liquids/json/MEG2.json +++ b/dev/incompressible_liquids/json/MEG2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.609985e+00, - -1.226327e-01, - 1.052044e-01, - -1.442369e+00, - 1.737685e+00, + 5.561002e+00, + -2.845158e-01, + -5.327994e-01, + -3.669494e-01, + 1.827083e-01, -1.110697e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.711500e+02, "Tmax": 3.131500e+02, "Tmin": 2.291500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 4.228446e+00, - -1.711684e+01, - 2.367432e+01, - -1.337478e+01, - 5.941651e+00, + 4.519714e-01, + -3.794743e-01, + 5.349392e-02, + 4.365099e-01, + 3.784628e-01, -1.820000e+00 ], [ - -4.283931e-02, - 1.787776e-01, - -2.189674e-01, - 7.464187e-02, + 1.008804e-03, + -2.353147e-03, + 2.682044e-03, + 1.124495e-03, -1.112000e-02, 0.000000e+00 ], [ - 1.596430e-04, - -6.267421e-04, - 6.727678e-04, + 1.917118e-07, + -4.498165e-07, + 2.731548e-05, -1.126000e-04, 0.000000e+00, 0.000000e+00 ], [ - -1.901924e-07, - 7.185594e-07, + -4.208826e-08, + 3.393274e-07, -6.772000e-07, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 5.592873e+02, - -1.492310e+03, - 7.073339e+03, - -7.243491e+03, - 2.376760e+03, + 1.042886e+03, + 1.594755e+02, + 8.950418e+00, + -4.038614e+01, + -2.458249e+02, -1.128000e+03 ], [ - 3.401396e+00, - 1.666905e+01, - -5.259350e+01, - 3.929454e+01, + -2.281015e-01, + -1.252875e+00, + 5.368405e-01, + 5.033554e+00, -3.847999e+00, 0.000000e+00 ], [ - -7.208624e-03, - -5.656027e-02, - 1.267333e-01, + -4.163846e-03, + 8.265311e-03, + 5.488274e-04, -5.522999e-02, 0.000000e+00, 0.000000e+00 ], [ - 2.441364e-06, - 6.334518e-05, + 1.248777e-05, + 8.414822e-06, -9.808993e-05, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 2.465364e+04, - -1.096121e+05, - 1.636710e+05, - -8.539210e+04, - 4.201075e+04, + 3.716958e+03, + -2.330310e+03, + -1.779415e+03, + 5.431898e+03, + 8.763437e+03, -3.380000e+04 ], [ - -1.970963e+02, - 9.829123e+02, - -1.369710e+03, - 4.119051e+02, + 2.791511e+00, + 1.309755e+01, + -2.197181e+01, + 4.828634e+01, 5.190000e+01, 0.000000e+00 ], [ - 6.324349e-01, - -2.972185e+00, - 3.777308e+00, + 4.412513e-03, + -8.213426e-02, + 4.803276e-01, -7.777000e-01, 0.000000e+00, 0.000000e+00 ], [ - -6.764952e-04, - 2.997298e-03, + -9.205186e-05, + 1.177298e-03, -3.250000e-03, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - 2.705642e+01, - -4.379830e+01, - 2.744348e+02, - -1.638405e+02, - 1.805273e+02, + -5.423845e+00, + 2.969962e+00, + -5.999319e-01, + 4.725822e+00, + 1.292546e+01, -3.655000e+01 ], [ - -2.448088e-01, - 5.884887e-01, - -2.623935e+00, - 4.873229e-01, + -4.063542e-02, + -2.031272e-02, + 4.034746e-02, + -4.304658e-02, -4.294000e-01, 0.000000e+00 ], [ - 5.695796e-04, - -2.408915e-03, - 9.007903e-03, - -9.116999e-05, + 2.749548e-04, + 2.761711e-04, + 1.297916e-04, + -9.117000e-05, 0.000000e+00, 0.000000e+00 ], [ - -4.422838e-07, - 3.185149e-06, + -3.987302e-07, + -2.874051e-06, -1.082000e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 2.800000e-01, "xid": "mass", "xmax": 5.600000e-01, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MGL2.json b/dev/incompressible_liquids/json/MGL2.json index c558f094..83d1a31a 100644 --- a/dev/incompressible_liquids/json/MGL2.json +++ b/dev/incompressible_liquids/json/MGL2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.643904e+00, - -5.983132e-01, - 3.208226e+00, - -1.038046e+01, - 1.531831e+01, + 5.548673e+00, + -2.738275e-01, + -4.186118e-01, + -6.690283e-01, + -3.546883e+00, -9.146761e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.731500e+02, "Tmax": 3.131500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 3.047883e+00, - -1.081690e+01, - 1.684705e+01, - -1.441256e+01, - 5.185474e+00, + 4.291509e-01, + -3.082795e-01, + 1.531242e-01, + 1.994135e-03, + -1.988858e+00, 6.019004e-01 ], [ - -2.756987e-02, - 9.496891e-02, - -1.161763e-01, - 8.023131e-02, + 8.501494e-04, + -2.152375e-03, + 1.947581e-03, + 6.002253e-03, -3.081000e-02, 0.000000e+00 ], [ - 9.735344e-05, - -2.810301e-04, - 2.158919e-04, + 4.891674e-07, + 1.836798e-06, + 2.121903e-05, -4.281999e-05, 0.000000e+00, 0.000000e+00 ], [ - -1.110573e-07, - 2.971541e-07, + -1.790126e-08, + 1.545115e-07, -1.729002e-07, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - -9.606240e+02, - 1.104851e+03, - 1.092130e+04, - -3.920190e+03, - -2.343881e+04, + 1.110879e+03, + 2.963760e+02, + -4.478374e+01, + -8.413875e+02, + 1.501625e+03, 1.224000e+04 ], [ - 2.398618e+01, - -3.569543e+01, - -7.937866e+01, - 1.479653e+02, + -3.531719e-01, + -1.035845e+00, + -6.375120e-01, + 7.092212e+00, -1.115003e+00, 0.000000e+00 ], [ - -9.724503e-02, - 2.548314e-01, - -6.302011e-02, + -2.942086e-03, + 1.833694e-02, + 4.849420e-05, -2.545000e-01, 0.000000e+00, 0.000000e+00 ], [ - 1.276593e-04, - -4.471887e-04, + 2.168705e-05, + -6.661618e-05, 4.613001e-04, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 2.652914e+04, - -7.823460e+04, - -1.009345e+05, - 4.327585e+05, - -2.949043e+05, + 3.322537e+03, + -2.429877e+03, + 1.505936e+03, + 1.638618e+03, + -2.685987e+04, 2.625000e+04 ], [ - -2.667706e+02, - 1.230079e+03, - -8.793479e+02, - -1.136410e+03, + 4.993126e+00, + 1.936657e+01, + -4.873046e+01, + -7.658223e+01, 7.831000e+02, 0.000000e+00 ], [ - 9.609288e-01, - -4.788980e+00, - 5.537076e+00, + -3.698358e-03, + -1.971791e-02, + 2.515255e-01, -4.252001e-01, 0.000000e+00, 0.000000e+00 ], [ - -1.078590e-03, - 5.301973e-03, + 1.202066e-04, + 5.103728e-04, -5.808000e-03, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - -2.277295e+02, - 1.556945e+03, - -1.503294e+03, - -3.716986e+02, - -3.458020e+01, + -7.076829e+00, + 5.610696e+00, + 3.236870e+00, + -2.216118e+01, + 5.178803e+01, 4.123000e+02 ], [ - 2.505308e+00, - -1.706576e+01, - 1.815800e+01, - 2.429494e+00, + -4.592118e-02, + -5.315955e-02, + 4.008000e-02, + 2.586680e-02, -2.797000e+00, 0.000000e+00 ], [ - -9.251777e-03, - 6.122376e-02, - -7.035985e-02, + 4.778308e-04, + 5.314097e-04, + -1.531683e-03, 4.048000e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.094106e-05, - -7.000102e-05, + -4.682595e-06, + -5.750020e-06, 7.788000e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 4.125000e-01, "xid": "mass", "xmax": 6.300000e-01, "xmin": 1.950000e-01 diff --git a/dev/incompressible_liquids/json/MKA2.json b/dev/incompressible_liquids/json/MKA2.json index 0d6ef223..5de24808 100644 --- a/dev/incompressible_liquids/json/MKA2.json +++ b/dev/incompressible_liquids/json/MKA2.json @@ -2,48 +2,48 @@ "T_freeze": { "coeffs": [ [ - 5.643432e+00, - -8.156028e-01, - 4.484583e+00, - -1.364947e+01, + 5.544472e+00, + -4.849410e-01, + -1.738208e+00, + -2.306404e+00, 1.090680e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.661500e+02, "Tmax": 3.031500e+02, "Tmin": 2.291500e+02, "TminPsat": 3.031500e+02, "conductivity": { "coeffs": [ [ - 1.054765e+00, - -1.047359e+01, - 7.075194e+00, - 6.684570e+01, - -1.017941e+02, - 5.136002e+01 + 4.762927e-01, + -2.681424e-01, + 3.309686e-01, + -1.378120e+00, + -9.920166e+00, + 5.136000e+01 ], [ - -1.127939e-02, - 1.464636e-01, - -2.802004e-01, - -6.667083e-02, + 1.336278e-03, + -1.668735e-03, + -1.675831e-03, + -9.469646e-03, 9.432997e-02, 0.000000e+00 ], [ - 5.221191e-05, - -5.731531e-04, - 1.147556e-03, + -1.143038e-06, + 8.768654e-06, + 1.051090e-05, -7.684010e-05, 0.000000e+00, 0.000000e+00 ], [ - -6.709714e-08, - 7.024522e-07, + 2.434799e-08, + 9.719589e-10, -1.349000e-06, 0.000000e+00, 0.000000e+00, @@ -55,32 +55,32 @@ "density": { "coeffs": [ [ - 5.390628e+03, - -3.676342e+04, - 6.722345e+04, - 1.733039e+03, - -1.788712e+04, - -7.482948e+03 + 1.144474e+03, + 5.778116e+02, + 1.790105e+02, + 2.379092e+02, + -4.233673e+03, + -7.483009e+03 ], [ - -4.679383e+01, - 3.960228e+02, - -7.243791e+02, - 7.189764e+01, - 8.784999e+01, + -2.915586e-01, + -8.087743e-01, + -1.638729e+00, + 3.305653e+00, + 8.785000e+01, 0.000000e+00 ], [ - 1.647658e-01, - -1.370492e+00, - 2.461043e+00, + -3.942397e-03, + -2.025002e-03, + 1.442967e-01, -3.004997e-01, 0.000000e+00, 0.000000e+00 ], [ - -1.918037e-04, - 1.543604e-03, + 3.323279e-05, + 1.874454e-04, -2.607998e-03, 0.000000e+00, 0.000000e+00, @@ -107,32 +107,32 @@ "specific_heat": { "coeffs": [ [ - 5.560051e+03, - 1.081818e+03, - 9.452263e+04, - -6.076456e+05, - 8.173724e+05, + 3.287139e+03, + -2.981833e+03, + 5.228915e+02, + 5.197550e+03, + 1.808841e+04, -2.109000e+05 ], [ - -4.353126e+00, - -2.903010e+02, - 6.648523e+02, - 1.267770e+03, + 1.760510e+00, + 3.702872e+00, + 4.124613e+01, + 7.285336e+01, -1.973000e+03, 0.000000e+00 ], [ - 6.239652e-03, - 1.274556e+00, - -4.202907e+00, + 6.046413e-03, + -5.471618e-02, + -1.046247e-01, 1.610000e+00, 0.000000e+00, 0.000000e+00 ], [ - -2.672305e-05, - -1.187751e-03, + -9.488221e-05, + 6.634494e-04, 3.560000e-03, 0.000000e+00, 0.000000e+00, @@ -144,32 +144,32 @@ "viscosity": { "coeffs": [ [ - 1.021138e+02, - -1.615096e+02, - 2.794961e+02, - 3.995378e+02, - -6.012111e+02, - 5.435003e+02 + -5.364930e+00, + 3.803271e+00, + 4.156606e+00, + -1.576467e+01, + 3.390462e+01, + 5.435000e+02 ], [ - -1.018467e+00, - 1.705006e+00, - -3.405348e+00, - -9.142095e-01, + -3.999135e-02, + -2.180374e-02, + -1.024865e-01, + 1.018473e-02, -2.684000e-01, 0.000000e+00 ], [ - 3.222691e-03, - -5.810059e-03, - 1.181014e-02, + 3.905315e-04, + 1.429708e-04, + 1.924336e-03, 2.261000e-03, 0.000000e+00, 0.000000e+00 ], [ - -3.480476e-06, - 6.776762e-06, + -2.704802e-06, + -8.100379e-07, -1.459000e-05, 0.000000e+00, 0.000000e+00, @@ -215,7 +215,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 2.600000e-01, "xid": "mass", "xmax": 4.100000e-01, "xmin": 1.100000e-01 diff --git a/dev/incompressible_liquids/json/MKC2.json b/dev/incompressible_liquids/json/MKC2.json index cb990ea0..eafb782a 100644 --- a/dev/incompressible_liquids/json/MKC2.json +++ b/dev/incompressible_liquids/json/MKC2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.610043e+00, - 1.018931e-01, - -3.926708e+00, - 2.335889e+01, - -6.343317e+01, + 5.577778e+00, + -2.438604e-01, + -6.069220e-01, + -4.954293e+00, + -9.164727e+00, 5.565994e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.706500e+02, "Tmax": 3.031500e+02, "Tmin": 2.381500e+02, "TminPsat": 3.031500e+02, "conductivity": { "coeffs": [ [ - 1.295535e+00, - -3.656206e+00, - -2.993905e+01, - 1.043610e+02, - -5.120613e+01, + 5.427225e-01, + -9.534722e-02, + 4.307585e-02, + -8.747632e-01, + -4.006193e+00, 2.245000e+01 ], [ - -1.217556e-02, - 7.925041e-02, - 7.176022e-02, - -5.872404e-01, + 1.597840e-03, + 5.396203e-04, + -2.006276e-04, + -3.129273e-02, 9.352001e-02, 0.000000e+00 ], [ - 5.289547e-05, - -4.119023e-04, - 4.672508e-04, + 2.339881e-06, + -2.907597e-05, + -6.466406e-05, 8.923001e-04, 0.000000e+00, 0.000000e+00 ], [ - -6.645843e-08, - 6.279136e-07, + 6.628310e-09, + 1.216939e-07, -1.297999e-06, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - -3.307751e+03, - 1.982341e+04, - -2.969877e+04, - 2.294492e+03, - 1.198219e+04, + 1.192423e+03, + 1.085743e+03, + 4.118598e+02, + -1.953489e+03, + -1.129442e+03, 3.241000e+04 ], [ - 4.364702e+01, - -1.823581e+02, - 2.904924e+02, - -6.044267e+01, + -3.466579e-01, + -1.586767e+00, + 1.117067e+01, + -2.225377e+00, -1.652000e+02, 0.000000e+00 ], [ - -1.467186e-01, - 5.802158e-01, - -8.824480e-01, + -4.866706e-03, + 1.741718e-02, + -8.186493e-02, 3.456000e-01, 0.000000e+00, 0.000000e+00 ], [ - 1.635323e-04, - -6.052675e-04, + 7.352951e-05, + -3.178376e-04, 7.369999e-04, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 6.605172e+04, - -4.765044e+05, - 1.095240e+06, - -9.503287e+05, - 7.148131e+05, - -4.062999e+05 + 3.298666e+03, + -3.949494e+03, + 1.659975e+03, + 1.608195e+04, + 6.942917e+04, + -4.063000e+05 ], [ - -6.274437e+02, - 4.527269e+03, - -9.169748e+03, - 4.488906e+03, - -9.208997e+02, + 1.565001e+00, + 2.109905e+00, + -4.534145e+01, + 3.923513e+02, + -9.209000e+02, 0.000000e+00 ], [ - 2.122351e+00, - -1.459681e+01, - 2.626269e+01, + 4.134291e-03, + -2.309987e-01, + 2.174921e+00, -6.241000e+00, 0.000000e+00, 0.000000e+00 ], [ - -2.394475e-03, - 1.577148e-02, + -2.761260e-04, + 5.955181e-03, -2.517000e-02, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - 4.947527e+01, - -3.941214e+02, - 1.027978e+03, - 7.176753e+02, - -6.561021e+02, - 1.149001e+02 + -5.818014e+00, + 3.346480e+00, + 8.306167e+00, + 3.115053e+00, + -2.090798e+01, + 1.149000e+02 ], [ - -4.708573e-01, - 4.182172e+00, - -1.187676e+01, - -3.128665e+00, + -3.022094e-02, + 6.366136e-03, + -2.120264e-01, + -2.005531e-01, 1.933000e+00, 0.000000e+00 ], [ - 1.327842e-03, - -1.471781e-02, - 4.410575e-02, + 2.044310e-04, + 9.402654e-06, + 2.591200e-03, 2.624000e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.288466e-06, - 1.726212e-05, + 6.156066e-08, + -3.415684e-06, -5.302000e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.950000e-01, "xid": "mass", "xmax": 3.900000e-01, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MMA2.json b/dev/incompressible_liquids/json/MMA2.json index accf6fcc..e06807db 100644 --- a/dev/incompressible_liquids/json/MMA2.json +++ b/dev/incompressible_liquids/json/MMA2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.612846e+00, - -2.775615e-01, - 1.946035e-01, - -2.014309e+00, - 3.148512e+00, + 5.522851e+00, + -4.405407e-01, + -5.766531e-01, + -5.037680e-01, + -4.120239e-01, -2.580098e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.581500e+02, "Tmax": 2.931500e+02, "Tmin": 2.231500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 2.880283e+00, - -2.172541e+01, - 3.005327e+01, - 7.506849e+00, - 7.805368e+00, - 4.459999e+00 + 4.159515e-01, + -3.740471e-01, + 6.934859e-02, + -1.131264e-01, + -3.981361e-01, + 4.460000e+00 ], [ - -3.634820e-02, - 2.918634e-01, - -4.242088e-01, - -7.346080e-02, + 8.009435e-04, + -3.763070e-03, + 1.290052e-02, + -1.725210e-02, -5.562000e-02, 0.000000e+00 ], [ - 1.641476e-04, - -1.256257e-03, - 1.883722e-03, + -1.433474e-06, + 9.443017e-06, + -4.500611e-05, 2.278001e-04, 0.000000e+00, 0.000000e+00 ], [ - -2.277812e-07, - 1.733619e-06, + 4.243259e-08, + 2.244515e-07, -2.734000e-06, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - -1.484192e+03, - 1.048447e+04, - -1.263278e+04, - 4.149170e+03, - -6.397519e+02, - 9.182004e+02 + 9.683060e+02, + -9.776205e+01, + -1.409960e+02, + -3.973546e+02, + 9.368865e+02, + 9.181999e+02 ], [ - 2.510689e+01, - -1.065126e+02, - 1.288095e+02, - -3.903195e+01, + -2.676461e-01, + -2.032022e+00, + 1.496415e+00, + 2.537330e+00, 1.199000e+00, 0.000000e+00 ], [ - -8.422161e-02, - 3.551020e-01, - -4.099837e-01, + -3.468482e-03, + 1.685367e-02, + -2.466397e-02, 7.794999e-02, 0.000000e+00, 0.000000e+00 ], [ - 9.372309e-05, - -3.961780e-04, + 1.593007e-05, + -1.675396e-04, 4.141999e-04, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 7.961085e+04, - -4.942364e+05, - 1.006865e+06, - -7.790187e+05, - 3.082588e+05, - -4.758005e+04 + 3.898713e+03, + -2.563669e+03, + 6.456844e+02, + 1.889530e+03, + -1.069847e+04, + -4.758000e+04 ], [ - -7.275755e+02, - 4.507371e+03, - -8.118500e+03, - 4.300113e+03, + 1.551418e+00, + 2.275702e+01, + -6.807280e+01, + 4.773801e+02, -9.812000e+02, 0.000000e+00 ], [ - 2.360764e+00, - -1.378112e+01, - 2.129239e+01, + 5.288454e-03, + -2.591530e-01, + 2.230934e+00, -5.306000e+00, 0.000000e+00, 0.000000e+00 ], [ - -2.585640e-03, - 1.430424e-02, + -8.044332e-05, + 3.849360e-03, -1.894000e-02, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - -9.251437e+01, - 7.866605e+02, - -1.121814e+03, - 5.770041e+02, - -4.966106e+02, - -2.371995e+01 + -4.979901e+00, + 3.975934e-01, + -5.123298e+00, + 1.143779e+01, + -3.498689e+01, + -2.372000e+01 ], [ - 1.107636e+00, - -8.403481e+00, - 1.040854e+01, - -1.865196e+00, + -4.783525e-02, + 1.748072e-02, + -5.336371e-03, + -2.430703e-01, 1.915000e+00, 0.000000e+00 ], [ - -4.538832e-03, - 3.081654e-02, - -3.544055e-02, + 2.992684e-04, + 3.556757e-04, + -1.518789e-03, -9.529999e-04, 0.000000e+00, 0.000000e+00 ], [ - 5.996868e-06, - -3.853093e-05, + -1.223460e-06, + -1.379029e-05, 4.482000e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 2.760000e-01, "xid": "mass", "xmax": 4.740000e-01, "xmin": 7.800000e-02 diff --git a/dev/incompressible_liquids/json/MMG2.json b/dev/incompressible_liquids/json/MMG2.json index 6771f6ce..3ccc648d 100644 --- a/dev/incompressible_liquids/json/MMG2.json +++ b/dev/incompressible_liquids/json/MMG2.json @@ -2,48 +2,48 @@ "T_freeze": { "coeffs": [ [ - 5.609983e+00, - -1.321822e-01, - -1.458488e+00, + 5.577597e+00, + -5.340326e-01, + -2.462004e+00, -3.263464e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.731500e+02, "Tmax": 3.031500e+02, "Tmin": 2.431500e+02, "TminPsat": 3.031500e+02, "conductivity": { "coeffs": [ [ - -3.103402e-01, - 5.617354e+00, - -1.813746e+01, - 3.603916e+01, - -3.015220e+02, + 5.393056e-01, + -2.399618e-01, + 1.591276e-01, + -5.664203e+00, + -3.543441e+01, 5.167999e+02 ], [ - 4.502183e-03, - -3.805843e-02, - 6.596057e-02, - 2.602295e-01, - 4.494321e-03, + 1.742287e-03, + -2.432144e-04, + 4.981236e-03, + -5.980711e-02, + 4.494295e-03, 0.000000e+00 ], [ - -4.791732e-06, - 6.386543e-05, - -7.744029e-05, + 3.063421e-07, + 2.941950e-05, + -2.586178e-04, -5.891988e-04, 0.000000e+00, 0.000000e+00 ], [ - -3.116864e-14, - -8.496811e-14, - 1.264271e-12, + -2.466452e-14, + 1.651323e-13, + 1.210943e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -54,33 +54,33 @@ "density": { "coeffs": [ [ - 5.745124e+02, - 4.650584e+03, - -3.996080e+04, - 2.509696e+05, - -5.735280e+05, + 1.089261e+03, + 9.047136e+02, + 7.579582e+02, + -4.921827e+03, + -4.370563e+04, 4.374000e+05 ], [ - 3.088015e+00, - -2.084591e+01, - 1.725609e+02, - -8.800038e+02, + -1.389717e-01, + -6.556494e-01, + -9.188621e+00, + -6.715717e+01, 1.119000e+03, 0.000000e+00 ], [ - -5.602210e-03, - 2.770846e-02, - -1.657696e-01, + -3.805784e-03, + 1.415281e-02, + 3.352158e-02, 6.480992e-01, 0.000000e+00, 0.000000e+00 ], [ - 1.984946e-11, - -3.372422e-10, - 7.093277e-10, + -4.639233e-12, + -1.988772e-10, + 7.022887e-10, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -106,33 +106,33 @@ "specific_heat": { "coeffs": [ [ - 8.731303e+03, - -8.916306e+04, - 2.801098e+05, - 1.022370e+06, - -6.131357e+06, + 3.554767e+03, + -5.797737e+03, + 1.333350e+04, + -6.249903e+04, + -6.518176e+05, 6.000000e+06 ], [ - -3.027604e+01, - 5.700485e+02, - -2.773758e+03, - 1.917056e+03, + 1.815494e+00, + 2.337575e+01, + -2.689766e+02, + 3.211400e+02, 8.803000e+03, 0.000000e+00 ], [ - 5.033027e-02, - -9.506313e-01, - 5.420005e+00, + -4.261263e-04, + -1.398411e-01, + 2.490148e+00, -9.527999e+00, 0.000000e+00, 0.000000e+00 ], [ - 5.482548e-11, - -6.893357e-10, - 1.956098e-09, + 1.081224e-11, + -3.754571e-10, + 1.830871e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -143,33 +143,33 @@ "viscosity": { "coeffs": [ [ - 1.973076e+01, - 7.397300e+01, - -6.595228e+02, - 1.734140e+03, - -4.491455e+03, + -5.855497e+00, + 5.414954e+00, + 1.697481e+01, + -1.465946e+02, + -7.674162e+02, 1.484000e+04 ], [ - -1.571739e-01, - -4.185229e-01, - 3.892806e+00, - -4.573453e+00, + -3.772996e-02, + -4.688719e-03, + 3.611074e-01, + -1.303658e+00, -1.421000e+01, 0.000000e+00 ], [ - 2.261647e-04, - 6.588470e-04, - -7.370652e-03, + 2.341888e-04, + -3.273495e-04, + -2.250775e-03, 1.665000e-02, 0.000000e+00, 0.000000e+00 ], [ - -9.388323e-15, - -4.140820e-13, - 1.454213e-12, + 4.885285e-14, + -3.489433e-13, + -1.347446e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -214,7 +214,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.025000e-01, "xid": "mass", "xmax": 2.050000e-01, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MNA2.json b/dev/incompressible_liquids/json/MNA2.json index 419bf94a..612dfb66 100644 --- a/dev/incompressible_liquids/json/MNA2.json +++ b/dev/incompressible_liquids/json/MNA2.json @@ -7,40 +7,40 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 2.781500e+02, "Tmax": 3.031500e+02, "Tmin": 2.531500e+02, "TminPsat": 3.031500e+02, "conductivity": { "coeffs": [ [ - -4.776749e-01, - 2.909397e+00, - 1.454672e-01, - -3.146160e-01, - 4.977432e-06, - 5.855007e-06 + 5.626726e-01, + -7.677242e-02, + -8.095244e-02, + -3.147002e-01, + -1.558002e-06, + 2.876556e-06 ], [ - 5.624734e-03, - -1.973716e-02, - -4.230043e-04, - -5.879369e-07, - -3.524573e-08, + 1.714960e-03, + -1.788022e-03, + -4.240990e-04, + -2.354598e-08, + -3.509706e-08, 0.000000e+00 ], [ - -6.668657e-06, - 3.244104e-05, - -3.437225e-09, - 1.043696e-09, + -2.938005e-06, + 3.243999e-05, + -1.191084e-10, + 1.043738e-09, 0.000000e+00, 0.000000e+00 ], [ - 5.963914e-14, - -1.171287e-12, - 3.544939e-12, + -2.818512e-14, + -3.558079e-13, + 3.544929e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -51,33 +51,33 @@ "density": { "coeffs": [ [ - 8.612787e+02, - 2.031918e+03, - -2.864694e+03, - 6.133042e+03, - -6.852166e-02, - 2.290980e-02 + 1.089533e+03, + 6.993472e+02, + 1.185142e+02, + 6.133000e+03, + -9.315349e-04, + 2.244398e-02 ], [ - 1.105978e+00, - -5.609842e+00, - 3.118515e+00, - -1.819925e-04, - 1.957351e-04, + -3.356935e-01, + -1.701107e+00, + 3.117996e+00, + -7.831144e-06, + 1.962618e-04, 0.000000e+00 ], [ - -2.165763e-03, - 5.737366e-03, - -1.768808e-06, - 1.512791e-07, + -1.505988e-03, + 5.737000e-03, + 1.837337e-08, + 1.511629e-07, 0.000000e+00, 0.000000e+00 ], [ - 2.382339e-11, - -4.369353e-10, - 2.078946e-09, + 1.354306e-12, + 4.125951e-11, + 2.079022e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -103,33 +103,33 @@ "specific_heat": { "coeffs": [ [ - 5.938649e+03, - -2.995708e+04, - 5.642765e+04, - -1.959013e+04, - 3.450128e-02, - 2.724929e-02 + 3.640729e+03, + -3.565598e+03, + 9.114668e+03, + -1.959000e+04, + 2.165664e-03, + 2.840276e-02 ], [ - -1.120976e+01, - 1.253559e+02, - -1.458016e+02, - 8.268912e-04, - -1.714158e-04, + 1.818816e+00, + 1.021230e+01, + -1.458000e+02, + 3.283456e-05, + -1.828503e-04, 0.000000e+00 ], [ - 1.784284e-02, - -1.467013e-01, - 4.974155e-06, - -1.287562e-06, + 9.722705e-04, + -1.467000e-01, + 1.425267e-07, + -1.285208e-06, 0.000000e+00, 0.000000e+00 ], [ - -7.407941e-11, - 1.506720e-09, - -5.256161e-09, + 2.554823e-11, + 3.008778e-10, + -5.254276e-09, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -140,33 +140,33 @@ "viscosity": { "coeffs": [ [ - 1.859308e+01, - 2.951399e+01, - 3.400975e+01, - -2.523909e+00, - -9.014707e-05, - 6.155826e-05 + -4.008082e+00, + 2.197643e+00, + 5.396360e+00, + -2.524000e+00, + -1.278584e-06, + 1.504825e-05 ], [ - -1.333813e-01, - -2.259441e-01, - -9.973935e-02, - -4.999314e-07, - 1.987906e-07, + -2.943797e-02, + -3.055149e-03, + -9.974000e-02, + -1.293123e-08, + 1.945217e-07, 0.000000e+00 ], [ - 1.851081e-04, - 4.419005e-04, - -1.978641e-09, - 7.099672e-10, + 2.359266e-04, + 4.419000e-04, + -4.047657e-11, + 7.119033e-10, 0.000000e+00, 0.000000e+00 ], [ - 1.141968e-14, - -5.033025e-13, - 2.031147e-12, + -1.972272e-14, + -3.352522e-14, + 2.031765e-12, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -211,7 +211,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.150000e-01, "xid": "mass", "xmax": 2.300000e-01, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/MPG2.json b/dev/incompressible_liquids/json/MPG2.json index 482871af..01d66f3d 100644 --- a/dev/incompressible_liquids/json/MPG2.json +++ b/dev/incompressible_liquids/json/MPG2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.551677e+00, - 9.351475e-01, - -6.934728e+00, - 2.055368e+01, - -2.940299e+01, + 5.544413e+00, + -3.076637e-01, + -6.770462e-01, + -2.554765e+00, + -2.692079e+00, 1.483940e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.706500e+02, "Tmax": 3.131500e+02, "Tmin": 2.281500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - -7.039575e+00, - 3.922386e+01, - -6.909268e+01, - 5.214889e+01, - -3.103757e+01, - 1.289999e+01 + 4.017953e-01, + -3.947097e-01, + 2.673757e-01, + -6.062051e-01, + -3.928354e+00, + 1.290000e+01 ], [ - 7.151456e-02, - -3.561826e-01, - 5.185300e-01, - -1.935782e-01, + 6.835028e-04, + -1.656349e-03, + 2.689752e-03, + -1.022471e-02, 1.437000e-02, 0.000000e+00 ], [ - -2.298759e-04, - 1.104210e-03, - -1.427916e-03, + -3.579661e-07, + 5.710679e-06, + -7.138804e-05, 3.005000e-04, 0.000000e+00, 0.000000e+00 ], [ - 2.514811e-07, - -1.145718e-06, + 3.744296e-09, + -2.305978e-07, 1.271000e-06, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - -3.931742e+03, - 2.076556e+04, - -1.488435e+04, - -2.341653e+04, - 1.984964e+04, - -6.033005e+03 + 1.039228e+03, + 1.028391e+02, + -1.235976e+02, + 1.444155e+02, + 1.100783e+03, + -6.033000e+03 ], [ - 5.152967e+01, - -2.306940e+02, - 2.422971e+02, - 6.049743e+01, + -3.643274e-01, + -1.363253e+00, + 2.190903e+00, + 2.141699e+00, -2.915000e+01, 0.000000e+00 ], [ - -1.767344e-01, - 8.229716e-01, - -9.578107e-01, + -3.519521e-03, + 1.436973e-02, + -5.431317e-02, -3.025999e-02, 0.000000e+00, 0.000000e+00 ], [ - 2.000303e-04, - -9.622039e-04, + 3.065674e-06, + -1.320439e-04, 1.153000e-03, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 2.293408e+04, - -4.917558e+04, - 8.854884e+02, - -3.875118e+04, - 2.021948e+05, + 3.800663e+03, + -1.873360e+03, + -1.929321e+03, + 7.895204e+03, + 7.505431e+03, -1.068000e+05 ], [ - -1.906619e+02, - 5.426073e+02, - 5.455786e+01, - -7.270480e+02, - -9.049996e+00, + 4.621305e-01, + 1.336663e+01, + 1.929735e+00, + -4.396823e+01, + -9.049997e+00, 0.000000e+00 ], [ - 6.673473e-01, - -2.301825e+00, - 1.255508e+00, + 2.279298e-02, + -1.520443e-01, + 8.836986e-02, 1.286000e+00, 0.000000e+00, 0.000000e+00 ], [ - -7.862125e-04, - 3.185111e-03, + -4.755331e-05, + 9.185510e-04, -3.148000e-03, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - -1.149873e+02, - 1.436798e+03, - -1.682408e+03, - -5.669269e+02, - 2.291593e+02, - 1.091996e+02 + -6.821849e+00, + 5.137488e+00, + -1.330753e+00, + -5.819563e+00, + 3.868910e+01, + 1.092000e+02 ], [ - 1.240249e+00, - -1.518346e+01, - 1.958846e+01, - 2.718265e+00, + -5.858686e-02, + -6.918172e-02, + 1.133354e-01, + 3.009531e-03, -1.430000e+00, 0.000000e+00 ], [ - -4.647746e-03, - 5.315977e-02, - -7.279827e-02, + 6.387540e-04, + 5.412841e-04, + -4.588068e-03, -1.212000e-03, 0.000000e+00, 0.000000e+00 ], [ - 5.608192e-06, - -6.131695e-05, + -5.369558e-06, + 3.294494e-07, 8.562000e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 3.600000e-01, "xid": "mass", "xmax": 5.700000e-01, "xmin": 1.500000e-01 diff --git a/dev/incompressible_liquids/json/NBS.json b/dev/incompressible_liquids/json/NBS.json index bfea1065..b6783163 100644 --- a/dev/incompressible_liquids/json/NBS.json +++ b/dev/incompressible_liquids/json/NBS.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.236500e+02, "Tmax": 3.731500e+02, "Tmin": 2.741500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -1.284679e+00 + 6.411327e-01 ], [ - 1.300595e-02 + 1.092154e-03 ], [ - -2.859009e-05 + -8.220646e-06 ], [ 2.097888e-08 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 2.252244e+02 + 9.879064e+02 ], [ - 6.843004e+00 + -4.619898e-01 ], [ - -1.901595e-02 + -3.554712e-03 ], [ 1.592382e-05 @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 9.708029e+03 + 4.179527e+03 ], [ - -4.792021e+01 + 3.638603e-01 ], [ - 1.366642e-01 + 1.252184e-02 ], [ -1.278566e-04 diff --git a/dev/incompressible_liquids/json/PCL.json b/dev/incompressible_liquids/json/PCL.json index b3d851cf..afdb309e 100644 --- a/dev/incompressible_liquids/json/PCL.json +++ b/dev/incompressible_liquids/json/PCL.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.431500e+02, "Tmax": 4.531500e+02, "Tmin": 2.331500e+02, "TminPsat": 4.531500e+02, "conductivity": { "coeffs": [ [ - 1.659956e-01 + 1.438018e-01 ], [ - -4.397311e-05 + -7.510210e-05 ], [ - -9.028515e-08 + -4.302648e-10 ], [ 8.728436e-11 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 9.859365e+02 + 7.423000e+02 ], [ -7.100000e-01 ], [ - -5.944976e-14 + -1.110223e-16 ], [ - -2.672558e-17 + -1.056114e-17 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 8.251688e+02 + 2.190680e+03 ], [ - 3.923498e+00 + 4.012155e+00 ], [ - 2.298494e-04 + 2.851482e-05 ], [ -1.955749e-07 diff --git a/dev/incompressible_liquids/json/PCR.json b/dev/incompressible_liquids/json/PCR.json index 93cc2066..0007c914 100644 --- a/dev/incompressible_liquids/json/PCR.json +++ b/dev/incompressible_liquids/json/PCR.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.331500e+02, "Tmax": 4.931500e+02, "Tmin": 1.731500e+02, "TminPsat": 3.581500e+02, "conductivity": { "coeffs": [ [ - 1.631059e-01 + 1.366907e-01 ], [ - -7.723938e-05 + -8.029757e-05 ], [ - -9.279440e-09 + 9.982291e-11 ], [ 9.384425e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.122801e+03 + 7.876979e+02 ], [ - -9.963599e-01 + -1.008440e+00 ], [ - -4.931404e-05 + 1.305365e-05 ], [ 6.240201e-08 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 7.239249e+02 + 2.065827e+03 ], [ - 4.715865e+00 + 3.657941e+00 ], [ - -3.019390e-03 + -1.561304e-04 ], [ 2.864835e-06 diff --git a/dev/incompressible_liquids/json/PGLT.json b/dev/incompressible_liquids/json/PGLT.json index 440802db..81ef12b3 100644 --- a/dev/incompressible_liquids/json/PGLT.json +++ b/dev/incompressible_liquids/json/PGLT.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.231500e+02, "Tmax": 5.881500e+02, "Tmin": 2.581500e+02, "TminPsat": 4.731500e+02, "conductivity": { "coeffs": [ [ - 1.570900e-01 + 1.228766e-01 ], [ - -8.237954e-05 + -7.996282e-05 ], [ - 5.104634e-09 + 6.066426e-10 ], [ -3.543260e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.081655e+03 + 7.866099e+02 ], [ - -6.968367e-01 + -6.973919e-01 ], [ - -1.680946e-06 + 3.689239e-07 ], [ 1.614770e-09 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - 1.029911e+01 + 6.503475e+00 ], [ - -7.539220e-02 + 2.738860e-02 ], [ - 2.280184e-04 + 1.487609e-05 ], [ -1.679013e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 1.158514e+03 + 2.346560e+03 ], [ - 2.031880e+00 + 3.229713e+00 ], [ - 2.669012e-03 + 1.617412e-04 ], [ -1.975084e-06 diff --git a/dev/incompressible_liquids/json/PHE.json b/dev/incompressible_liquids/json/PHE.json index 2a3b8004..3ab7cfd5 100644 --- a/dev/incompressible_liquids/json/PHE.json +++ b/dev/incompressible_liquids/json/PHE.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.381500e+02, "Tmax": 6.031500e+02, "Tmin": 2.731500e+02, "TminPsat": 5.591500e+02, "conductivity": { "coeffs": [ [ - 1.563268e-01 + 1.208766e-01 ], [ - -8.253507e-05 + -7.996282e-05 ], [ - 5.264080e-09 + 6.066426e-10 ], [ -3.543260e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.049547e+03 + 7.697189e+02 ], [ - -6.336424e-01 + -6.410901e-01 ], [ - -1.734667e-05 + 3.485364e-07 ], [ 1.346206e-08 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - 2.095865e+03 + 3.490217e+01 ], [ - -1.084546e+01 + -6.232761e-01 ], [ - 1.872153e-02 + 4.608793e-03 ], [ -1.073661e-05 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 5.783817e+02 + 2.401998e+03 ], [ - 5.381708e+00 + 3.562322e+00 ], [ - -4.198314e-03 + 4.588556e-05 ], [ 3.228878e-06 diff --git a/dev/incompressible_liquids/json/PHR.json b/dev/incompressible_liquids/json/PHR.json index 3ab2ca75..d631277c 100644 --- a/dev/incompressible_liquids/json/PHR.json +++ b/dev/incompressible_liquids/json/PHR.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.506500e+02, "Tmax": 6.431500e+02, "Tmin": 2.581500e+02, "TminPsat": 4.701500e+02, "conductivity": { "coeffs": [ [ - 1.057443e-01 + 1.083524e-01 ], [ - 1.094539e-04 + -9.155677e-05 ], [ - -2.440677e-07 + -2.019783e-07 ], [ 3.113233e-11 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.184850e+03 + 8.387187e+02 ], [ - -7.644911e-01 + -7.697404e-01 ], [ - -1.218437e-05 + 5.360820e-07 ], [ 9.408965e-09 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -2.614839e+01 + 7.198158e+00 ], [ - 1.237943e-01 + 3.545824e-02 ], [ - -1.354870e-04 + -6.053227e-05 ], [ 5.544196e-08 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 1.582541e+03 + 2.289350e+03 ], [ - 1.287975e-01 + 2.349866e+00 ], [ - 4.655061e-03 + 2.735279e-04 ], [ -3.240899e-06 diff --git a/dev/incompressible_liquids/json/PK2.json b/dev/incompressible_liquids/json/PK2.json index 68197524..0151b6bd 100644 --- a/dev/incompressible_liquids/json/PK2.json +++ b/dev/incompressible_liquids/json/PK2.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.546892e+00, - 4.300794e-01, - -1.796232e+00, - 2.796408e+00, - -2.357258e+00, + 5.499778e+00, + -2.956811e-01, + -3.055256e-01, + -2.349852e-01, + 2.541789e-02, 7.331312e-01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.921500e+02, "Tmax": 3.731500e+02, "Tmin": 2.111500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - 8.629425e-03, - 6.284187e-01, - -6.301665e-01, - 2.717129e-01, - -5.642152e-02, - 8.612313e-04 + 4.968935e-01, + -1.469524e-01, + 4.162480e-02, + -1.568699e-04, + -3.099237e-03, + 8.612376e-04 ], [ - 3.372716e-03, - -5.998777e-03, - 4.463043e-03, - -1.247235e-03, + 9.185409e-04, + -4.119322e-04, + 1.089860e-04, + -8.422360e-05, 1.729361e-04, 0.000000e+00 ], [ - -6.376032e-06, - 1.496146e-05, - -9.724807e-06, + -1.687368e-08, + 1.578926e-07, + -7.351806e-07, 1.220910e-06, 0.000000e+00, 0.000000e+00 ], [ - 6.401531e-09, - -1.403426e-08, + 4.651129e-10, + -4.231640e-09, 7.540478e-09, 0.000000e+00, 0.000000e+00, @@ -56,33 +56,33 @@ "density": { "coeffs": [ [ - 7.548397e+02, - 6.865656e+02, - 4.164430e+01, - -1.028601e+02, - -2.691466e+01, - 2.265697e+01 + 1.197418e+03, + 2.817317e+02, + -4.588907e+01, + -2.209869e+01, + 4.303910e+00, + 2.265698e+01 ], [ - 1.999370e+00, - -2.394704e+00, - -2.233499e-01, - 7.103790e-01, + -4.514320e-01, + -2.858873e-01, + 9.736053e-02, + 4.372224e-02, -1.451877e-01, 0.000000e+00 ], [ - -4.203272e-03, - 4.497365e-03, - -6.181830e-04, + -1.639883e-03, + 2.609593e-03, + -8.007399e-04, -4.948977e-04, 0.000000e+00, 0.000000e+00 ], [ - 7.584599e-07, - -1.681891e-06, - 8.927989e-07, + 4.243847e-08, + -5.212523e-07, + 8.927990e-07, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -94,11 +94,11 @@ "mass2input": { "coeffs": [ [ - 1.239604e-02, - 6.459927e-01, - 5.822694e-01, - -5.715120e-01, - 3.955522e-01, + 5.844672e-01, + 1.055450e+00, + 2.932683e-01, + 1.841891e-01, + 1.857563e-01, -6.455258e-02 ] ], @@ -117,33 +117,33 @@ "specific_heat": { "coeffs": [ [ - 1.770196e+04, - -5.032935e+04, - 4.251482e+04, - -1.233846e+04, - 5.638066e+02, - 2.339337e+02 + 3.012817e+03, + -1.157103e+03, + 5.687646e+02, + -4.621484e+02, + 5.650203e+02, + 2.339332e+02 ], [ - -1.295330e+02, - 4.146066e+02, - -3.164486e+02, - 7.112059e+01, + 2.265682e+00, + -4.303788e-01, + -2.131786e+00, + 1.362096e-01, -2.598223e+00, 0.000000e+00 ], [ - 4.084723e-01, - -1.189400e+00, - 7.821837e-01, + -1.459187e-02, + 5.952691e-04, + 5.588400e-02, -1.099247e-01, 0.000000e+00, 0.000000e+00 ], [ - -4.217606e-04, - 1.115884e-03, - -5.841137e-04, + 5.677576e-05, + 3.565359e-04, + -5.841138e-04, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -154,32 +154,32 @@ "viscosity": { "coeffs": [ [ - 5.189811e+01, - -5.924829e+01, - 1.077569e+02, - -2.232879e+01, - -1.993176e+00, - 7.494835e-02 + -8.372931e+00, + 1.510648e+00, + 9.696885e-02, + -7.075620e-01, + 1.094691e+00, + 7.494773e-02 ], [ - -4.952263e-01, - 4.572575e-01, - -8.815385e-01, - 1.650621e-01, - 9.735699e-03, + -2.412315e-02, + -3.129296e-03, + -1.148051e-02, + -9.051432e-03, + 9.735698e-03, 0.000000e+00 ], [ - 1.329843e-03, - -1.035061e-03, - 2.283933e-03, + 1.806594e-04, + 9.260834e-05, + 1.735292e-04, -3.413081e-04, 0.000000e+00, 0.000000e+00 ], [ - -1.189265e-06, - 5.356535e-07, + -1.537594e-06, + -1.607434e-06, -1.648529e-06, 0.000000e+00, 0.000000e+00, @@ -192,7 +192,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 6.500000e-01, "xid": "volume", "xmax": 1.000000e+00, "xmin": 3.000000e-01 diff --git a/dev/incompressible_liquids/json/PKL.json b/dev/incompressible_liquids/json/PKL.json index a4439993..086b86b6 100644 --- a/dev/incompressible_liquids/json/PKL.json +++ b/dev/incompressible_liquids/json/PKL.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.603040e+00, - 5.188294e-02, - -4.535048e-01, - -1.131973e+00, - 2.783170e+00, + 5.547064e+00, + -3.730055e-01, + -5.607241e-01, + 9.387112e-03, + -1.152655e+00, -2.249043e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.986500e+02, "Tmax": 3.731500e+02, "Tmin": 2.241500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - 1.912920e-01, - 4.148522e-01, - 1.100867e-01, - -5.186554e-01, - 3.593931e-01, + 4.448091e-01, + -4.830969e-01, + 2.948909e-01, + 1.603110e-02, + 1.326783e-02, -1.580251e-01 ], [ - 2.046826e-03, - -6.439422e-03, - 3.757610e-03, - 1.795484e-03, + 3.817440e-04, + -2.578571e-03, + -4.707961e-05, + 3.825988e-05, -2.329863e-04, 0.000000e+00 ], [ - -2.529958e-06, - 1.404324e-05, - -1.604172e-05, + -1.334371e-07, + 1.111111e-07, + 7.853573e-08, -2.395854e-06, 0.000000e+00, 0.000000e+00 ], [ - 2.756822e-09, - -1.659421e-08, + -5.031311e-10, + -2.034095e-09, 2.080016e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 9.801103e+02, - 5.314154e+02, - -4.369846e+02, - 4.308797e+02, - -6.531052e+01, - -5.164505e+01 + 1.029935e+03, + 9.124888e+01, + -7.389928e+01, + 1.247132e+00, + -1.495660e+00, + -5.164504e+01 ], [ - 2.586756e-01, - -1.504498e+00, - 1.917062e+00, - -2.458888e+00, - 5.163023e-01, + -5.397773e-01, + -9.211927e-01, + -8.075285e-03, + -1.051048e-01, + 5.163024e-01, 0.000000e+00 ], [ - -7.384648e-04, - 3.952248e-04, - -1.575063e-03, + -6.936267e-04, + -1.071171e-04, + -3.637974e-04, 2.730555e-03, 0.000000e+00, 0.000000e+00 ], [ - -8.851905e-08, - 8.435685e-07, + -1.966394e-08, + -4.501106e-07, -1.848113e-06, 0.000000e+00, 0.000000e+00, @@ -94,11 +94,11 @@ "mass2input": { "coeffs": [ [ - 5.771115e-03, - 9.109043e-01, - -1.071370e-01, - 6.491345e-01, - -7.407224e-01, + 3.296366e-01, + 9.682466e-01, + 1.489667e-01, + -4.803858e-02, + -2.552392e-01, 2.774190e-01 ] ], @@ -117,32 +117,32 @@ "specific_heat": { "coeffs": [ [ - 3.649656e+03, - -8.789923e+02, - -4.148339e+03, - 4.482605e+03, - -2.858467e+03, - 2.949238e+01 + 3.881161e+03, + -1.689970e+03, + -9.308359e+02, + -1.508314e+01, + -1.024750e+01, + 2.949236e+01 ], [ - 3.258758e+00, - -5.645140e+00, - 1.705311e+01, - -1.639888e+01, + 3.294741e+00, + 3.758203e+00, + -5.516933e-01, + -2.733981e-01, 9.364164e+00, 0.000000e+00 ], [ - -4.876740e-03, - 2.422700e-02, - -2.828519e-02, + 1.270929e-03, + 3.496142e-05, + -1.354376e-03, 5.048808e-03, 0.000000e+00, 0.000000e+00 ], [ - 6.421178e-06, - -2.387247e-05, + 1.023147e-06, + -6.973423e-06, 2.414149e-05, 0.000000e+00, 0.000000e+00, @@ -154,32 +154,32 @@ "viscosity": { "coeffs": [ [ - 7.605290e+01, - 4.385050e+01, - -7.920765e+00, - 1.074118e+01, - 6.141920e+00, - -3.155023e+00 + -1.035298e+01, + 3.032922e+00, + -2.151449e+00, + 9.334087e+00, + 1.263888e-01, + -3.155022e+00 ], [ - -7.752215e-01, - -2.377004e-01, - 1.935427e-02, - -3.816547e-02, - -1.654919e-03, + -3.301917e-02, + -3.136466e-02, + -3.443700e-02, + -6.418970e-04, + -1.654918e-03, 0.000000e+00 ], [ - 2.315722e-03, - 4.004054e-04, - -9.946321e-05, + 3.148455e-04, + 3.381513e-04, + -1.243167e-05, 6.670092e-05, 0.000000e+00, 0.000000e+00 ], [ - -2.370235e-06, - -3.241178e-08, + -2.379256e-06, + -1.913324e-08, 1.896934e-08, 0.000000e+00, 0.000000e+00, @@ -192,7 +192,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 3.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/PLR.json b/dev/incompressible_liquids/json/PLR.json index b14c2fe2..f0731282 100644 --- a/dev/incompressible_liquids/json/PLR.json +++ b/dev/incompressible_liquids/json/PLR.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.456500e+02, "Tmax": 5.031500e+02, "Tmin": 1.881500e+02, "TminPsat": 3.681500e+02, "conductivity": { "coeffs": [ [ - 1.752725e-01 + 1.473157e-01 ], [ - -8.246367e-05 + -7.994325e-05 ], [ - 6.437195e-09 + 8.546542e-10 ], [ -5.383617e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 9.779182e+02 + 7.232116e+02 ], [ - -7.391660e-01 + -7.358775e-01 ], [ - 1.022684e-05 + -7.129164e-07 ], [ -1.054994e-08 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - 9.986393e+01 + 7.337254e+00 ], [ - -7.381715e-01 + 1.929331e-02 ], [ - 1.892038e-03 + 2.993835e-04 ], [ -1.535903e-06 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 6.687819e+02 + 2.206237e+03 ], [ - 5.676328e+00 + 3.835768e+00 ], [ - -5.336007e-03 + 1.108308e-05 ], [ 5.156555e-06 diff --git a/dev/incompressible_liquids/json/PMR.json b/dev/incompressible_liquids/json/PMR.json index 01286de1..9cdcb911 100644 --- a/dev/incompressible_liquids/json/PMR.json +++ b/dev/incompressible_liquids/json/PMR.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.106500e+02, "Tmax": 5.881500e+02, "Tmin": 2.331500e+02, "TminPsat": 4.651500e+02, "conductivity": { "coeffs": [ [ - 1.134095e-01 + 1.276047e-01 ], [ - 1.536496e-04 + -8.571502e-05 ], [ - -2.870616e-07 + -2.958305e-07 ], [ -7.117922e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.296943e+03 + 7.074414e+02 ], [ - -2.418344e+00 + -5.439500e-01 ], [ - 2.615453e-03 + 1.949003e-03 ], [ -5.409719e-07 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -1.233687e+01 + 5.963107e+00 ], [ - 4.439058e-02 + 3.741577e-02 ], [ - 1.824763e-05 + -3.523243e-05 ], [ -4.341090e-08 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 1.561140e+03 + 2.612758e+03 ], [ - 3.575435e+00 + 2.067666e+00 ], [ - -3.740280e-03 + 6.861459e-05 ], [ 3.091760e-06 diff --git a/dev/incompressible_liquids/json/PNF.json b/dev/incompressible_liquids/json/PNF.json index aee0f1b6..968404a0 100644 --- a/dev/incompressible_liquids/json/PNF.json +++ b/dev/incompressible_liquids/json/PNF.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.256500e+02, "Tmax": 5.881500e+02, "Tmin": 2.631500e+02, "TminPsat": 4.661500e+02, "conductivity": { "coeffs": [ [ - 1.249024e-01 + 9.755338e-02 ], [ - -7.883376e-05 + -5.079925e-05 ], [ - 3.690718e-08 + 2.895566e-08 ], [ -6.226963e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.076543e+03 + 7.962994e+02 ], [ - -6.492110e-01 + -6.633203e-01 ], [ - -3.154808e-05 + -1.599625e-06 ], [ 2.345312e-08 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - 3.701951e+01 + 7.454724e+00 ], [ - -1.977911e-01 + 9.086822e-03 ], [ - 4.184691e-04 + 6.755908e-05 ], [ -2.748032e-07 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 6.490715e+02 + 2.519448e+03 ], [ - 2.766590e+00 + 5.190252e+00 ], [ - 5.777205e-03 + -8.317855e-05 ], [ -4.589360e-06 @@ -89,13 +89,13 @@ "viscosity": { "coeffs": [ [ - 4.078752e+01 + -1.358055e+01 ], [ - -3.356326e-01 + -1.134548e-02 ], [ - 7.034467e-04 + 5.841657e-05 ], [ -5.051335e-07 diff --git a/dev/incompressible_liquids/json/PNF2.json b/dev/incompressible_liquids/json/PNF2.json index 6e03a9f0..8ea5f307 100644 --- a/dev/incompressible_liquids/json/PNF2.json +++ b/dev/incompressible_liquids/json/PNF2.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.281500e+02, "Tmax": 5.931500e+02, "Tmin": 2.631500e+02, "TminPsat": 5.931500e+02, "conductivity": { "coeffs": [ [ - 1.252004e-01 + 9.743428e-02 ], [ - -7.963016e-05 + -5.076714e-05 ], [ - 3.613946e-08 + 3.127387e-08 ], [ -3.788073e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.058840e+03 + 7.972963e+02 ], [ - -5.464228e-01 + -6.647276e-01 ], [ - -1.752530e-04 + -1.010632e-04 ], [ 5.776002e-08 @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 2.932522e+02 + 2.531432e+03 ], [ - 5.411624e+00 + 5.136381e+00 ], [ - -6.468458e-04 + 3.978864e-06 ], [ 5.066952e-07 diff --git a/dev/incompressible_liquids/json/T66.json b/dev/incompressible_liquids/json/T66.json index 0b31d2a4..4f586891 100644 --- a/dev/incompressible_liquids/json/T66.json +++ b/dev/incompressible_liquids/json/T66.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.631500e+02, "Tmax": 6.531500e+02, "Tmin": 2.731500e+02, "TminPsat": 3.431500e+02, "conductivity": { "coeffs": [ [ - 1.139842e-01 + 1.065831e-01 ], [ - 6.274883e-05 + -9.178790e-05 ], [ - -1.762916e-07 + -1.573730e-07 ], [ 1.361587e-11 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.226233e+03 + 8.924651e+02 ], [ - -8.825220e-01 + -7.182484e-01 ], [ - 6.938379e-04 + -3.391502e-04 ], [ -7.434511e-07 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 5.734665e+02 + 2.157819e+03 ], [ - 3.426990e+00 + 3.630114e+00 ], [ - -4.785383e-04 + 9.171095e-04 ], [ 1.004461e-06 diff --git a/dev/incompressible_liquids/json/T72.json b/dev/incompressible_liquids/json/T72.json index 7f7a2605..b1325092 100644 --- a/dev/incompressible_liquids/json/T72.json +++ b/dev/incompressible_liquids/json/T72.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.581500e+02, "Tmax": 6.531500e+02, "Tmin": 2.631500e+02, "TminPsat": 2.631500e+02, "conductivity": { "coeffs": [ [ - 1.752847e-01 + 1.195537e-01 ], [ - -1.223256e-04 + -1.213120e-04 ], [ - 2.253531e-09 + -4.098105e-11 ], [ -1.669404e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.357181e+03 + 9.293047e+02 ], [ - -9.896157e-01 + -9.031913e-01 ], [ - 1.760508e-04 + 1.258704e-05 ], [ -1.189303e-07 @@ -55,16 +55,16 @@ "saturation_pressure": { "coeffs": [ [ - 2.282584e+00 + 1.012430e+01 ], [ - 1.784785e-02 + 1.638719e-02 ], [ - -1.603757e-06 + -1.584429e-06 ], [ - 1.406211e-11 + 1.406210e-11 ] ], "type": "exppolynomial" @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 7.573247e+02 + 1.999376e+03 ], [ - 2.713118e+00 + 2.709808e+00 ], [ - -6.548023e-06 + -6.767728e-07 ], [ 4.271709e-09 diff --git a/dev/incompressible_liquids/json/TD12.json b/dev/incompressible_liquids/json/TD12.json index 06977b70..36c282b9 100644 --- a/dev/incompressible_liquids/json/TD12.json +++ b/dev/incompressible_liquids/json/TD12.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.456500e+02, "Tmax": 5.031500e+02, "Tmin": 1.881500e+02, "TminPsat": 1.881500e+02, "conductivity": { "coeffs": [ [ - 1.412101e-01 + 1.014253e-01 ], [ - -5.841742e-05 + -1.712412e-04 ], [ - -1.655672e-07 + -1.608432e-07 ], [ 4.555712e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 9.835111e+02 + 7.240174e+02 ], [ - -9.298087e-01 + -7.568357e-01 ], [ - 1.053753e-03 + -5.533244e-04 ], [ -1.549811e-06 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 9.836448e+02 + 2.300991e+03 ], [ - 3.872605e+00 + 4.029816e+00 ], [ - -9.876631e-04 + 1.442489e-03 ], [ 2.343558e-06 diff --git a/dev/incompressible_liquids/json/TVP1.json b/dev/incompressible_liquids/json/TVP1.json index 3fd44306..35fe3784 100644 --- a/dev/incompressible_liquids/json/TVP1.json +++ b/dev/incompressible_liquids/json/TVP1.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.776500e+02, "Tmax": 6.701500e+02, "Tmin": 2.851500e+02, "TminPsat": 2.851500e+02, "conductivity": { "coeffs": [ [ - 1.486426e-01 + 1.130679e-01 ], [ - 9.755062e-06 + -1.579086e-04 ], [ - -1.780334e-07 + -1.729844e-07 ], [ 3.523508e-12 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.402713e+03 + 9.094493e+02 ], [ - -1.613256e+00 + -8.926962e-01 ], [ - 2.137839e-03 + -6.292874e-04 ], [ -1.931069e-06 @@ -63,13 +63,13 @@ "specific_heat": { "coeffs": [ [ - 2.881113e+02 + 2.057847e+03 ], [ - 5.874938e+00 + 2.640437e+00 ], [ - -6.856580e-03 + 8.488347e-05 ], [ 4.844177e-06 diff --git a/dev/incompressible_liquids/json/TX22.json b/dev/incompressible_liquids/json/TX22.json index bc909195..0a37e4b7 100644 --- a/dev/incompressible_liquids/json/TX22.json +++ b/dev/incompressible_liquids/json/TX22.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 4.481500e+02, "Tmax": 6.231500e+02, "Tmin": 2.731500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 1.412480e-01 + 1.227789e-01 ], [ - 2.132874e-05 + -7.574045e-05 ], [ - -2.020589e-07 + -1.454092e-08 ], [ 1.394756e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.082854e+03 + 7.593228e+02 ], [ - -9.445519e-01 + -6.908328e-01 ], [ - 9.241440e-04 + -3.579964e-04 ], [ -9.536542e-07 @@ -55,13 +55,13 @@ "saturation_pressure": { "coeffs": [ [ - -4.667597e+01 + 2.412773e+00 ], [ - 1.402790e-01 + 6.238442e-02 ], [ - -3.198287e-05 + -1.418307e-04 ], [ -8.170467e-08 @@ -72,13 +72,13 @@ "specific_heat": { "coeffs": [ [ - 7.739947e+02 + 2.449690e+03 ], [ - 3.852871e+00 + 3.634082e+00 ], [ - -2.731360e-04 + -2.150676e-04 ], [ 4.319118e-08 diff --git a/dev/incompressible_liquids/json/TY10.json b/dev/incompressible_liquids/json/TY10.json index d23f9857..1f8f627e 100644 --- a/dev/incompressible_liquids/json/TY10.json +++ b/dev/incompressible_liquids/json/TY10.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.881500e+02, "Tmax": 3.131500e+02, "Tmin": 2.631500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - -7.051929e-01 + 5.274062e-01 ], [ - 1.170836e-02 + 6.909061e-04 ], [ - -3.912798e-05 + 8.928571e-07 ], [ 4.629630e-08 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.217260e+03 + 1.102000e+03 ], [ -4.000000e-01 ], [ - -2.441148e-14 + 4.884873e-16 ], [ - 4.090153e-17 + 4.277234e-17 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 1.609555e+04 + 3.535000e+03 ], [ - -1.358463e+02 + 2.537698e+00 ], [ - 4.802500e-01 + -2.502122e-15 ], [ -5.555556e-04 diff --git a/dev/incompressible_liquids/json/TY15.json b/dev/incompressible_liquids/json/TY15.json index e9f5f6c1..7263fc6f 100644 --- a/dev/incompressible_liquids/json/TY15.json +++ b/dev/incompressible_liquids/json/TY15.json @@ -3,23 +3,23 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.831500e+02, "Tmax": 3.131500e+02, "Tmin": 2.531500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 2.937950e-01 + 4.920000e-01 ], [ 7.000000e-04 ], [ - 6.853806e-17 + 2.168404e-19 ], [ - -2.456396e-20 + -5.367590e-20 ] ], "type": "polynomial" @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.267260e+03 + 1.154000e+03 ], [ -4.000000e-01 ], [ - -8.003880e-15 + 1.054712e-15 ], [ - -3.881444e-17 + -7.528031e-18 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 9.088093e+03 + 3.273333e+03 ], [ - -6.575121e+01 + 2.408730e+00 ], [ - 2.383393e-01 + 2.380952e-03 ], [ -2.777778e-04 diff --git a/dev/incompressible_liquids/json/TY20.json b/dev/incompressible_liquids/json/TY20.json index 4b6364ee..c6b744a9 100644 --- a/dev/incompressible_liquids/json/TY20.json +++ b/dev/incompressible_liquids/json/TY20.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.731500e+02, "Tmax": 3.131500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 2.493904e-01 + 4.546277e-01 ], [ - 9.065415e-04 + 6.590067e-04 ], [ - -7.979978e-07 + -1.082251e-07 ], [ 8.417508e-10 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.317260e+03 + 1.208000e+03 ], [ -4.000000e-01 ], [ - 2.590801e-14 + 4.439808e-17 ], [ - -5.114724e-17 + 8.418830e-18 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 2.179115e+03 + 3.031688e+03 ], [ - 4.613835e+00 + 2.256734e+00 ], [ - -7.763528e-03 + -8.658009e-04 ], [ 8.417508e-06 diff --git a/dev/incompressible_liquids/json/TY24.json b/dev/incompressible_liquids/json/TY24.json index 23961fd1..0d7a231f 100644 --- a/dev/incompressible_liquids/json/TY24.json +++ b/dev/incompressible_liquids/json/TY24.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.656500e+02, "Tmax": 3.131500e+02, "Tmin": 2.181500e+02, "TminPsat": 3.131500e+02, "conductivity": { "coeffs": [ [ - 1.021766e-01 + 4.244824e-01 ], [ - 2.462663e-03 + 6.122521e-04 ], [ - -7.143836e-06 + 1.782405e-07 ], [ 9.187623e-09 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.357260e+03 + 1.251000e+03 ], [ -4.000000e-01 ], [ - -3.514784e-14 + -2.438506e-16 ], [ - 1.694066e-17 + 4.293441e-17 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 4.220345e+03 + 2.870084e+03 ], [ - -2.218483e+01 + 3.142832e+00 ], [ - 9.779131e-02 + -2.449077e-03 ], [ -1.257800e-04 diff --git a/dev/incompressible_liquids/json/VCA.json b/dev/incompressible_liquids/json/VCA.json index d61529cd..7dbaf2f3 100644 --- a/dev/incompressible_liquids/json/VCA.json +++ b/dev/incompressible_liquids/json/VCA.json @@ -2,42 +2,42 @@ "T_freeze": { "coeffs": [ [ - 5.362735e+00, - 2.668310e+00, + 5.531116e+00, + -1.158160e+00, -8.579530e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.556500e+02, "Tmax": 2.931500e+02, "Tmin": 2.181500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - -7.428561e+00, - 3.766265e+01, - -5.120168e+01, - 3.281962e+01, - -2.467769e+01 + 5.153470e-01, + -1.150160e-01, + -2.217447e-01, + 1.585651e+00, + -2.467754e+01 ], [ - 7.328118e-02, - -3.150150e-01, - 2.905338e-01, - -3.607063e-02, + 1.434190e-03, + -3.158644e-03, + 1.825843e-02, + -3.607061e-02, 0.000000e+00 ], [ - -2.250721e-04, - 8.612642e-04, + -4.058455e-06, + 8.923726e-05, -4.853201e-04, 0.000000e+00, 0.000000e+00 ], [ - 2.307573e-07, + 6.921736e-08, -7.243942e-07, 0.000000e+00, 0.000000e+00, @@ -49,28 +49,28 @@ "density": { "coeffs": [ [ - -6.372850e+03, - 3.859846e+04, - -7.174869e+04, - 1.332752e+05, - -1.535468e+05 + 1.218193e+03, + 1.077200e+03, + 1.312073e+03, + -1.645202e+03, + -1.535466e+05 ], [ - 7.105780e+01, - -2.874823e+02, - 2.048762e+02, - 7.992443e+00, + -4.449414e-01, + -2.601432e+00, + 2.223523e+01, + 7.992455e+00, 0.000000e+00 ], [ - -2.365875e-01, - 8.455525e-01, + -2.809363e-03, + 7.068065e-02, -3.676665e-01, 0.000000e+00, 0.000000e+00 ], [ - 2.604246e-04, + 8.280014e-05, -7.965221e-04, 0.000000e+00, 0.000000e+00, @@ -97,28 +97,28 @@ "specific_heat": { "coeffs": [ [ - -1.029230e+04, - -1.815794e+05, - 9.581830e+05, - -5.257775e+05, - -3.671218e+05 + 2.934834e+03, + -3.526948e+03, + 1.139325e+04, + -7.518497e+04, + -3.671228e+05 ], [ - 2.838800e+02, - 3.853789e+02, - -5.608256e+03, + 4.070155e+00, + -2.060392e+01, + -2.260316e+02, 3.043478e+03, 0.000000e+00 ], [ - -1.412899e+00, - 3.067647e+00, + -6.839877e-02, + 4.334805e-01, 6.544372e+00, 0.000000e+00, 0.000000e+00 ], [ - 2.051345e-03, + 4.367552e-04, -7.240311e-03, 0.000000e+00, 0.000000e+00, @@ -130,28 +130,28 @@ "viscosity": { "coeffs": [ [ - -4.149117e+02, - 1.009261e+03, - 1.909631e+02, - 5.134943e+02, - -3.626715e+02 + -4.891126e+00, + 5.165000e+00, + 2.084271e+01, + 1.563592e+01, + -3.626678e+02 ], [ - 4.772487e+00, - -1.161455e+01, - -2.335316e+00, - -6.820078e-01, + -4.344641e-02, + -1.339625e-02, + -3.802289e-01, + -6.820066e-01, 0.000000e+00 ], [ - -1.836720e-02, - 4.497896e-02, - 4.716117e-03, + -1.205648e-04, + 2.768822e-03, + 4.716116e-03, 0.000000e+00, 0.000000e+00 ], [ - 2.329190e-05, + 1.040720e-05, -5.777890e-05, 0.000000e+00, 0.000000e+00, @@ -197,7 +197,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 2.230000e-01, "xid": "mass", "xmax": 2.990000e-01, "xmin": 1.470000e-01 diff --git a/dev/incompressible_liquids/json/VKC.json b/dev/incompressible_liquids/json/VKC.json index cdbd6aca..ab38936f 100644 --- a/dev/incompressible_liquids/json/VKC.json +++ b/dev/incompressible_liquids/json/VKC.json @@ -2,48 +2,48 @@ "T_freeze": { "coeffs": [ [ - 5.665198e+00, - -1.100695e+00, - 5.859190e+00, - -1.501478e+01, + 5.558281e+00, + -3.782273e-01, + -1.704134e+00, + -4.490892e+00, 1.017784e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.656500e+02, "Tmax": 2.931500e+02, "Tmin": 2.381500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - -1.603242e+00, - -6.725110e+01, - 3.195698e+02, - -3.556889e+02, - 6.045878e+00, - 1.479471e+02 + 5.170635e-01, + -1.195786e-01, + -4.369822e-01, + -3.249712e+00, + 5.810084e+00, + 1.479467e+02 ], [ - 3.235282e-02, - 5.234897e-01, - -2.487107e+00, - 2.492356e+00, + 1.715279e-03, + -4.078865e-03, + 2.189527e-02, + 1.149062e-01, -7.207127e-01, 0.000000e+00 ], [ - -1.534838e-04, - -1.198306e-03, - 5.581393e-03, + -5.713916e-06, + 8.962220e-05, + 5.774256e-05, -3.072149e-03, 0.000000e+00, 0.000000e+00 ], [ - 2.277784e-07, - 8.058366e-07, + 1.727056e-07, + -1.231932e-06, -3.941525e-06, 0.000000e+00, 0.000000e+00, @@ -55,32 +55,32 @@ "density": { "coeffs": [ [ - 1.446257e+04, - -1.030562e+05, - 1.636530e+05, - 3.275099e+05, - -9.972954e+05, - 7.038240e+05 + 1.292886e+03, + 9.168333e+02, + 1.885723e+03, + -6.156835e+03, + -1.265799e+05, + 7.038237e+05 ], [ - -1.391638e+02, - 1.162120e+03, - -2.770032e+03, - 1.792654e+03, + -4.874180e-01, + -8.942528e-02, + -6.418657e+00, + 6.977269e+01, -1.467232e+02, 0.000000e+00 ], [ - 4.394706e-01, - -3.486340e+00, - 7.304386e+00, + -1.398665e-03, + 4.160126e-03, + 3.803775e-01, -2.957217e+00, 0.000000e+00, 0.000000e+00 ], [ - -4.585549e-04, - 3.389198e-03, + 2.928136e-05, + 3.851639e-04, -5.810511e-03, 0.000000e+00, 0.000000e+00, @@ -107,32 +107,32 @@ "specific_heat": { "coeffs": [ [ - 9.901389e+04, - -8.060525e+05, - 2.090671e+06, - -2.557985e+06, - 3.120969e+06, - -2.082185e+06 + 2.933311e+03, + -2.556338e+03, + -2.565258e+03, + -4.958645e+03, + 6.058614e+05, + -2.082188e+06 ], [ - -9.440189e+02, - 7.318999e+03, - -1.456451e+04, - 4.477943e+03, - 6.629659e+02, + 1.961108e+00, + -2.558847e-01, + -2.895436e+01, + 2.369379e+02, + 6.629661e+02, 0.000000e+00 ], [ - 3.268290e+00, - -2.474854e+01, - 4.624599e+01, + -6.128041e-04, + -6.064738e-02, + 1.588982e+00, -9.272562e+00, 0.000000e+00, 0.000000e+00 ], [ - -3.747884e-03, - 2.761472e-02, + 2.490806e-04, + 3.309569e-03, -4.701190e-02, 0.000000e+00, 0.000000e+00, @@ -144,32 +144,32 @@ "viscosity": { "coeffs": [ [ - -1.310308e+02, - 4.587994e+01, - 1.095657e+03, - 3.500594e+02, - -8.985926e+00, - -1.026928e+03 + -5.098973e+00, + 5.275615e+00, + 9.249411e+00, + 1.843127e+01, + -3.346576e+02, + -1.026929e+03 ], [ - 1.293203e+00, - 8.255799e-01, - -1.481933e+01, - -1.397244e+00, - 3.770500e+00, + -4.381355e-02, + -6.522737e-02, + 9.562118e-02, + 2.380913e-01, + 3.770501e+00, 0.000000e+00 ], [ - -4.411509e-03, - -6.746923e-03, - 6.125980e-02, + 5.446377e-05, + 1.490933e-03, + -3.422752e-03, -4.260044e-03, 0.000000e+00, 0.000000e+00 ], [ - 4.925574e-06, - 1.148557e-05, + 2.748128e-06, + -2.833235e-05, -7.701724e-05, 0.000000e+00, 0.000000e+00, @@ -215,7 +215,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 2.585000e-01, "xid": "mass", "xmax": 3.890000e-01, "xmin": 1.280000e-01 diff --git a/dev/incompressible_liquids/json/VMA.json b/dev/incompressible_liquids/json/VMA.json index 0a7c2ba0..e92399e2 100644 --- a/dev/incompressible_liquids/json/VMA.json +++ b/dev/incompressible_liquids/json/VMA.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.713551e+00, - -2.247710e+00, - 1.244199e+01, - -3.430821e+01, - 3.950593e+01, + 5.379155e+00, + -8.002501e-01, + 1.732107e-01, + 4.572923e+00, + -6.248013e-01, -1.605229e+01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.331500e+02, "Tmax": 2.731500e+02, "Tmin": 1.931500e+02, "TminPsat": 2.731500e+02, "conductivity": { "coeffs": [ [ - 4.284341e+00, - -1.163660e+01, - 1.778925e+01, - -1.657827e+01, - 7.854885e+00, + 3.667953e-01, + -2.232358e-01, + -7.058468e-02, + 4.277031e-02, + 9.399720e-01, -1.666061e+00 ], [ - -3.740753e-02, - 8.504115e-02, - -9.064144e-02, - 5.897816e-02, + -2.324565e-05, + -1.997094e-03, + -2.981541e-04, + 8.156192e-03, -1.179395e-02, 0.000000e+00 ], [ - 1.193614e-04, - -1.928568e-04, - 1.107144e-04, - -5.840462e-05, + 3.392419e-06, + -2.302891e-05, + 6.081684e-05, + -5.840463e-05, 0.000000e+00, 0.000000e+00 ], [ - -1.171632e-07, - 9.322690e-08, + -5.707149e-08, + 1.471398e-07, 5.391285e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 1.491564e+04, - -4.615225e+04, - 4.823792e+04, - -2.167269e+04, - 1.065783e+04, + 9.527538e+02, + -1.607094e+02, + -7.507071e+01, + 4.043221e+02, + -6.801734e+02, -3.889436e+03 ], [ - -1.578361e+02, - 4.990318e+02, - -4.458416e+02, - 9.563465e+01, - -6.924373e+00, + -6.483256e-01, + -6.584122e-01, + -1.734369e+00, + 8.155666e+00, + -6.924372e+00, 0.000000e+00 ], [ - 5.977798e-01, - -1.815695e+00, - 1.441168e+00, + 2.156824e-03, + -3.079594e-02, + 1.297715e-01, -1.579032e-01, 0.000000e+00, 0.000000e+00 ], [ - -7.549420e-04, - 2.197012e-03, + -4.050265e-05, + 6.607457e-04, -1.536266e-03, 0.000000e+00, 0.000000e+00, @@ -108,32 +108,32 @@ "specific_heat": { "coeffs": [ [ - 4.019177e+04, - -1.163690e+05, - 1.139781e+05, - -5.154057e+04, - 2.678864e+04, - -7.864091e+03 + 3.340708e+03, + -2.170712e+03, + 5.370634e+02, + -2.303527e+02, + 1.852841e+03, + -7.864092e+03 ], [ - -4.175055e+02, - 1.233295e+03, - -9.953965e+02, - 1.582963e+02, + 2.449733e+00, + 1.368339e+00, + -1.383719e+01, + 3.615997e+01, -2.262737e+01, 0.000000e+00 ], [ - 1.669238e+00, - -4.732947e+00, - 3.430543e+00, + 5.110931e-03, + -4.912274e-02, + 1.539175e-01, -1.648759e-01, 0.000000e+00, 0.000000e+00 ], [ - -2.259600e-03, - 6.299592e-03, + -1.925515e-04, + 1.968600e-03, -4.330992e-03, 0.000000e+00, 0.000000e+00, @@ -145,32 +145,32 @@ "viscosity": { "coeffs": [ [ - 1.037964e+03, - -1.128318e+03, - -1.455353e+03, - 2.136975e+03, - -5.435090e+02, - 3.209586e+00 + -3.919874e+00, + -4.750967e+00, + -1.246092e+00, + 3.469902e+01, + -7.378160e+01, + 3.209591e+00 ], [ - -1.308868e+01, - 1.978130e+01, - 2.125033e+00, - -1.136963e+01, + -7.324300e-02, + 1.977137e-01, + 6.757791e-03, + -1.368832e+00, 1.980285e+00, 0.000000e+00 ], [ - 5.385732e-02, - -9.625170e-02, - 3.124371e-02, + 1.527100e-03, + -5.490076e-03, + 6.480662e-04, 1.295351e-02, 0.000000e+00, 0.000000e+00 ], [ - -7.297498e-05, - 1.427246e-04, + -1.949315e-05, + 7.120277e-05, -7.152179e-05, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 5.000000e-01, "xid": "mass", "xmax": 9.000000e-01, "xmin": 1.000000e-01 diff --git a/dev/incompressible_liquids/json/VMG.json b/dev/incompressible_liquids/json/VMG.json index dc08e577..934c4f6f 100644 --- a/dev/incompressible_liquids/json/VMG.json +++ b/dev/incompressible_liquids/json/VMG.json @@ -2,42 +2,42 @@ "T_freeze": { "coeffs": [ [ - 5.589693e+00, - 3.337734e-01, + 5.554113e+00, + -8.457171e-01, -4.242772e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.666500e+02, "Tmax": 2.931500e+02, "Tmin": 2.401500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - 4.338969e+01, - -3.506874e+02, - 7.069489e+02, - -3.877787e+02, - -1.459570e+02 + 5.184263e-01, + -2.577422e-01, + 2.440780e+00, + -2.318478e+01, + -1.459572e+02 ], [ - -4.031605e-01, - 2.937387e+00, - -4.403797e+00, + 1.480369e-03, + 1.070778e-02, + -2.376601e-01, 1.671652e+00, 0.000000e+00 ], [ - 1.252951e-03, - -7.916662e-03, + 1.032818e-05, + -6.395601e-04, 6.504890e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.285135e-06, + -3.348813e-07, 6.836355e-06, 0.000000e+00, 0.000000e+00, @@ -49,29 +49,29 @@ "density": { "coeffs": [ [ - -9.553385e+02, - 2.939918e+04, - -1.302947e+05, - 2.761970e+05, - -3.616706e+05 + 1.125980e+03, + 9.027974e+02, + 1.931432e+03, + 5.796308e+03, + -3.616707e+05 ], [ - 1.446046e+01, - -1.743073e+02, - 5.310984e+02, + -2.700562e-01, + 3.247793e-01, + 1.966476e+01, -2.599355e+02, 0.000000e+00 ], [ - -3.357794e-02, - 3.362820e-01, + 1.192550e-03, + 3.152602e-02, -7.557482e-01, 0.000000e+00, 0.000000e+00 ], [ - 1.973443e-05, - -1.183298e-04, + 3.286584e-06, + -1.183299e-04, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -97,28 +97,28 @@ "specific_heat": { "coeffs": [ [ - -4.858695e+04, - 3.457030e+05, - -2.510206e+05, - -7.277940e+05, + 3.339304e+03, + -5.284232e+03, + -1.677841e+03, + -1.197269e+03, 1.879746e+06 ], [ - 5.289766e+02, - -3.454801e+03, - 2.878636e+03, - -1.194608e+03, + 2.324181e+00, + -8.337670e-02, + 1.315832e+02, + -1.194607e+03, 0.000000e+00 ], [ - -1.747620e+00, - 1.066542e+01, + -2.409044e-02, + 7.214004e-01, -4.216954e+00, 0.000000e+00, 0.000000e+00 ], [ - 1.927344e-03, + 4.031640e-04, -1.096532e-02, 0.000000e+00, 0.000000e+00, @@ -130,28 +130,28 @@ "viscosity": { "coeffs": [ [ - -2.513722e+01, - -2.471726e+02, - 3.083050e+02, - 1.921921e+03, + -5.404395e+00, + 6.008427e+00, + 1.893578e+01, + 1.104598e+02, -2.333597e+03 ], [ - 3.586401e-01, - 2.513452e+00, - -5.276544e+00, + -3.908398e-02, + -2.388383e-02, + -7.219377e-02, -1.927549e+00, 0.000000e+00 ], [ - -1.806519e-03, - -6.630607e-03, + 1.104694e-04, + -9.679326e-05, 1.126596e-02, 0.000000e+00, 0.000000e+00 ], [ - 2.685308e-06, + 3.276421e-06, 4.252611e-06, 0.000000e+00, 0.000000e+00, @@ -197,7 +197,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.390000e-01, "xid": "mass", "xmax": 2.060000e-01, "xmin": 7.200000e-02 diff --git a/dev/incompressible_liquids/json/VNA.json b/dev/incompressible_liquids/json/VNA.json index 51fab60b..6accc652 100644 --- a/dev/incompressible_liquids/json/VNA.json +++ b/dev/incompressible_liquids/json/VNA.json @@ -7,40 +7,40 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 2.726500e+02, "Tmax": 2.931500e+02, "Tmin": 2.521500e+02, "TminPsat": 2.931500e+02, "conductivity": { "coeffs": [ [ - -4.418019e+01, - 4.915253e+02, - -9.852209e+02, - -2.970871e+03, - 1.091401e+04, - -5.189200e+03 + 5.517501e-01, + -1.181754e-01, + -4.339833e-02, + 3.419834e+01, + -1.801557e+01, + -5.189214e+03 ], [ - 4.891458e-01, - -5.539382e+00, - 1.503929e+01, - -1.856274e+00, + 1.450259e-03, + 2.239031e-03, + 1.483515e-01, + -1.582049e-01, -2.577351e+01, 0.000000e+00 ], [ - -1.740993e-03, - 1.926586e-02, - -5.210398e-02, + 5.323091e-06, + -2.540460e-04, + -8.436663e-04, 3.156744e-02, 0.000000e+00, 0.000000e+00 ], [ - 2.026813e-06, - -2.093151e-05, - 4.524435e-05, + -9.858336e-08, + -7.312962e-06, + 4.524434e-05, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -51,32 +51,32 @@ "density": { "coeffs": [ [ - 4.506203e+04, - -4.285753e+05, - 1.377012e+06, - -1.953407e+06, - 3.114476e+06, - -2.971483e+06 + 1.117354e+03, + 7.690715e+02, + -4.379401e+02, + 2.462365e+04, + 9.583390e+04, + -2.971466e+06 ], [ - -4.581160e+02, - 4.232953e+03, - -1.146468e+04, - 7.097315e+03, - -2.870355e+03, + -3.023264e-01, + -2.883729e+00, + 1.362503e+01, + 3.241235e+02, + -2.870354e+03, 0.000000e+00 ], [ - 1.597653e+00, - -1.420995e+01, - 3.459171e+01, + 6.408214e-04, + -7.775845e-02, + 1.362490e+00, -9.252224e+00, 0.000000e+00, 0.000000e+00 ], [ - -1.861860e-03, - 1.600757e-02, + -2.572104e-04, + 5.316688e-03, -3.551787e-02, 0.000000e+00, 0.000000e+00, @@ -103,32 +103,32 @@ "specific_heat": { "coeffs": [ [ - -1.684467e+05, - 2.288572e+06, - -8.343236e+06, - 9.370144e+06, - -9.624119e+06, - 9.401214e+06 + 3.544903e+03, + -2.885943e+03, + 6.090815e+03, + -9.597977e+04, + -2.352300e+05, + 9.401116e+06 ], [ - 1.766515e+03, - -2.265897e+04, - 7.392804e+04, - -4.616200e+04, - 8.488823e+03, + 1.072355e+00, + 7.991430e+00, + -1.807441e+01, + -1.506892e+03, + 8.488820e+03, 0.000000e+00 ], [ - -6.047888e+00, - 7.525463e+01, - -2.244802e+02, + 1.142994e-02, + -1.300787e-02, + -7.263293e+00, 7.251942e+01, 0.000000e+00, 0.000000e+00 ], [ - 6.906964e-03, - -8.332249e-02, + -5.247006e-04, + -1.543718e-02, 2.255326e-01, 0.000000e+00, 0.000000e+00, @@ -140,32 +140,32 @@ "viscosity": { "coeffs": [ [ - 1.041256e+03, - -2.209664e+03, - -1.604330e+04, - 8.206204e+03, - 5.111744e+04, - -3.479480e+04 + -3.767817e+00, + 2.944804e+00, + -4.036125e+00, + 2.518059e+02, + 1.819998e+03, + -3.479490e+04 ], [ - -1.126957e+01, - 2.743483e+01, - 1.595293e+02, - -1.697597e+02, - -8.477665e+01, + -3.603192e-02, + -3.756920e-03, + 4.241386e-01, + -5.472768e+00, + -8.477667e+01, 0.000000e+00 ], [ - 4.076957e-02, - -1.182111e-01, - -4.380305e-01, + 6.833710e-04, + -6.979369e-03, + -4.306083e-04, 3.948697e-01, 0.000000e+00, 0.000000e+00 ], [ - -4.938152e-05, - 1.689504e-04, + -1.677363e-05, + 2.643770e-04, 3.170319e-04, 0.000000e+00, 0.000000e+00, @@ -211,7 +211,7 @@ ], "type": "polynomial" }, - "xbase": 0.000000e+00, + "xbase": 1.505000e-01, "xid": "mass", "xmax": 2.310000e-01, "xmin": 7.000000e-02 diff --git a/dev/incompressible_liquids/json/XLT.json b/dev/incompressible_liquids/json/XLT.json index e4d38e24..0db7d757 100644 --- a/dev/incompressible_liquids/json/XLT.json +++ b/dev/incompressible_liquids/json/XLT.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.531500e+02, "Tmax": 5.331500e+02, "Tmin": 1.731500e+02, "TminPsat": 5.331500e+02, "conductivity": { "coeffs": [ [ - 1.570757e-01 + 9.727308e-02 ], [ - -9.055981e-05 + -2.341492e-04 ], [ - -2.626437e-07 + -1.439524e-07 ], [ 1.120310e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.156369e+03 + 7.936461e+02 ], [ - -1.026905e+00 + -1.027177e+00 ], [ - -9.350607e-07 + 1.633893e-07 ], [ 1.036812e-09 @@ -63,16 +63,16 @@ "specific_heat": { "coeffs": [ [ - 1.156226e+03 + 1.897745e+03 ], [ - 2.099455e+00 + 2.100000e+00 ], [ - 7.717537e-07 + 7.717538e-07 ], [ - 1.307548e-16 + 8.861174e-19 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/XLT2.json b/dev/incompressible_liquids/json/XLT2.json index ec2318af..34e2494c 100644 --- a/dev/incompressible_liquids/json/XLT2.json +++ b/dev/incompressible_liquids/json/XLT2.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.531500e+02, "Tmax": 5.331500e+02, "Tmin": 1.731500e+02, "TminPsat": 5.331500e+02, "conductivity": { "coeffs": [ [ - 1.569510e-01 + 9.727559e-02 ], [ - -8.934465e-05 + -2.342283e-04 ], [ - -2.662428e-07 + -1.440181e-07 ], [ 1.153661e-10 @@ -27,13 +27,13 @@ "density": { "coeffs": [ [ - 1.156393e+03 + 7.936494e+02 ], [ - -1.027201e+00 + -1.027147e+00 ], [ - 1.438114e-07 + 9.214212e-09 ], [ -1.270445e-10 @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 1.156385e+03 + 1.898000e+03 ], [ 2.100000e+00 ], [ - 8.662076e-15 + 0.000000e+00 ], [ - -1.546072e-16 + -3.692213e-16 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/ZAC.json b/dev/incompressible_liquids/json/ZAC.json index 4af4b9ad..7f4a4bf8 100644 --- a/dev/incompressible_liquids/json/ZAC.json +++ b/dev/incompressible_liquids/json/ZAC.json @@ -7,39 +7,39 @@ ], "type": "exponential" }, - "Tbase": 0.000000e+00, + "Tbase": 3.231500e+02, "Tmax": 3.731500e+02, "Tmin": 2.731500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -8.413570e-01, - 6.633974e+00, - -1.312511e+01, - 8.190038e+00, - -9.256562e+00, + 5.922224e-01, + -1.432574e-01, + -3.651358e-02, + -6.741590e-01, + 7.657642e-01, 6.861957e+00 ], [ - 8.776172e-03, - -5.578444e-02, - 9.909915e-02, - -2.197233e-02, + 1.096118e-03, + -2.149736e-04, + -7.205974e-04, + -3.460751e-03, 1.286050e-03, 0.000000e+00 ], [ - -1.550356e-05, - 1.529982e-04, - -2.626122e-04, + -5.332081e-06, + 3.723734e-06, + -1.322828e-05, 2.641374e-05, 0.000000e+00, 0.000000e+00 ], [ - 7.748627e-09, - -1.399289e-07, + -1.305796e-08, + -8.689583e-09, 2.343560e-07, 0.000000e+00, 0.000000e+00, @@ -51,32 +51,32 @@ "density": { "coeffs": [ [ - 5.101200e+02, - 3.582998e+03, - 2.204568e+03, - -7.945315e+03, - 4.245415e+03, + 1.006481e+03, + 5.509881e+01, + -4.418517e+01, + 2.801702e+02, + 4.683087e+02, -3.611736e+03 ], [ - 4.270579e+00, - -3.917414e+01, - 4.184947e+00, - 3.420274e+01, + -4.937712e-01, + -1.854781e-01, + -3.151169e-01, + 3.682055e-01, 3.958918e+00, 0.000000e+00 ], [ - -1.123593e-02, - 1.401699e-01, - -7.198992e-02, + -5.282091e-03, + 1.500991e-03, + 1.313224e-02, -5.921170e-02, 0.000000e+00, 0.000000e+00 ], [ - 8.110726e-06, - -1.649900e-04, + -2.718026e-05, + -8.708849e-05, 1.391098e-04, 0.000000e+00, 0.000000e+00, @@ -136,33 +136,33 @@ "specific_heat": { "coeffs": [ [ - 7.415420e+03, - 2.056687e+04, - -3.126981e+04, - 2.185032e+04, - -5.502634e+04, + 4.116658e+03, + -2.619622e+02, + -3.420195e+02, + -2.417423e+03, + 2.481950e+03, 3.812255e+04 ], [ - -2.845874e+01, - -1.888946e+02, - 2.648565e+02, - 1.070895e+01, + 2.725274e-01, + -1.190360e+00, + -4.081826e+00, + 2.120884e+01, 1.280127e+01, 0.000000e+00 ], [ - 8.309246e-02, - 5.719199e-01, - -8.501220e-01, + 1.090327e-02, + 1.614939e-02, + -2.360171e-02, -5.937690e-03, 0.000000e+00, 0.000000e+00 ], [ - -8.090262e-05, - -5.610914e-04, - 8.577110e-04, + -1.707637e-04, + -8.077325e-05, + 8.577111e-04, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -173,32 +173,32 @@ "viscosity": { "coeffs": [ [ - -2.382964e+01, - 5.356352e+01, - 7.400534e+01, - -4.475640e+02, - 3.892761e+02, + -7.135794e+00, + 1.014256e+00, + 7.045686e-02, + 1.683667e+01, + 5.498824e+00, -2.190192e+02 ], [ - 2.329403e-01, - -6.451689e-01, - 4.149244e-01, - 1.443469e+00, + -1.905355e-02, + -9.793325e-03, + -8.073301e-03, + 6.249891e-02, -2.387450e-01, 0.000000e+00 ], [ - -9.076928e-04, - 2.294678e-03, - -3.107810e-03, + 1.316928e-04, + 1.123657e-04, + -1.584877e-04, -1.723001e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.065884e-06, - -2.577553e-06, + 6.997282e-07, + -3.784443e-08, 4.535194e-06, 0.000000e+00, 0.000000e+00, @@ -211,7 +211,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 2.800000e-01, "xid": "volume", "xmax": 5.000000e-01, "xmin": 6.000000e-02 diff --git a/dev/incompressible_liquids/json/ZFC.json b/dev/incompressible_liquids/json/ZFC.json index 6dd073d9..49b0f367 100644 --- a/dev/incompressible_liquids/json/ZFC.json +++ b/dev/incompressible_liquids/json/ZFC.json @@ -2,33 +2,33 @@ "T_freeze": { "coeffs": [ [ - 5.477459e+00, - 6.932423e-01, + 5.498963e+00, + -5.976712e-01, -1.434348e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 3.031500e+02, "Tmax": 3.731500e+02, "Tmin": 2.331500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -7.614777e-01, - 1.382422e+00, - -5.667715e-01, + 3.990549e-01, + -4.101994e-01, + 1.800441e-01, 1.724997e-02 ], [ - 9.635342e-03, - -7.749568e-03, + -9.525483e-05, + -2.928935e-03, 2.386700e-03, 0.000000e+00 ], [ - -2.414665e-05, + -2.598059e-08, 4.408053e-06, 0.000000e+00, 0.000000e+00 @@ -45,19 +45,19 @@ "density": { "coeffs": [ [ - 6.418284e+02, - 6.339427e+02, - -2.407093e+02, + 1.036776e+03, + 6.496479e+01, + -1.038651e+02, -2.217783e+01 ], [ - 2.696555e+00, - -2.262712e+00, + -5.537355e-01, + -4.680781e-01, 5.501710e-01, 0.000000e+00 ], [ - -5.708170e-03, + -2.986744e-03, 2.143295e-03, 0.000000e+00, 0.000000e+00 @@ -122,25 +122,25 @@ "specific_heat": { "coeffs": [ [ - 5.573869e+03, - -4.504458e+03, - -4.055130e+03, + 3.673274e+03, + -1.730901e+03, + -1.160812e+03, 2.165065e+03 ], [ - -9.215849e+00, - 2.471054e+01, + 3.069500e+00, + 9.072940e+00, -9.407745e-02, 0.000000e+00 ], [ - 1.347548e-02, + 1.975833e-03, -2.565220e-02, 0.000000e+00, 0.000000e+00 ], [ - 4.820691e-08, + 4.820628e-08, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -151,19 +151,19 @@ "viscosity": { "coeffs": [ [ - 5.128302e+01, - 9.245899e+01, - -6.189429e+01, + -1.023226e+01, + 2.542102e+00, + 2.006041e+00, 5.452566e+01 ], [ - -6.008347e-01, - -3.664619e-01, + -3.607463e-02, + -4.895733e-02, -3.202809e-02, 0.000000e+00 ], [ - 1.837266e-03, + 3.340331e-04, 5.712186e-04, 0.000000e+00, 0.000000e+00 @@ -181,7 +181,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 4.500000e-01, "xid": "volume", "xmax": 6.000000e-01, "xmin": 3.000000e-01 diff --git a/dev/incompressible_liquids/json/ZLC.json b/dev/incompressible_liquids/json/ZLC.json index ce17fb70..6491fd5e 100644 --- a/dev/incompressible_liquids/json/ZLC.json +++ b/dev/incompressible_liquids/json/ZLC.json @@ -2,42 +2,42 @@ "T_freeze": { "coeffs": [ [ - 5.479471e+00, - 6.827346e-01, + 5.479883e+00, + -6.810855e-01, -1.363820e+00 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 2.981500e+02, "Tmax": 3.731500e+02, "Tmin": 2.231500e+02, "TminPsat": 3.731500e+02, "conductivity": { "coeffs": [ [ - -1.457465e+00, - 3.549894e+00, - -1.834568e+00, - -4.356133e-01, - 5.995322e-02 + 3.799425e-01, + -3.784546e-01, + 1.897739e-01, + 3.973191e-02, + 5.995334e-02 ], [ - 1.533914e-02, - -2.472131e-02, - 1.241275e-02, + -2.398342e-04, + -2.678882e-03, + 3.158290e-03, 1.192147e-03, 0.000000e+00 ], [ - -3.877655e-05, - 4.342493e-05, + -8.488945e-09, + 4.392982e-06, -1.851867e-05, 0.000000e+00, 0.000000e+00 ], [ - 3.571122e-08, + 2.424424e-08, -2.293396e-08, 0.000000e+00, 0.000000e+00, @@ -49,28 +49,28 @@ "density": { "coeffs": [ [ - -2.518764e+02, - 3.019407e+03, - -4.661517e+03, - 1.001571e+04, + 1.035637e+03, + 5.262136e+01, + 1.560130e+02, + -1.180877e+02, -5.620264e+03 ], [ - 1.077681e+01, - -1.175729e+01, - -1.744551e+01, + -6.176108e-01, + -6.788661e-01, + -3.350093e-02, 3.712008e+00, 0.000000e+00 ], [ - -3.725062e-02, - 5.815436e-02, + -2.220323e-03, + 8.315309e-03, 1.986248e-02, 0.000000e+00, 0.000000e+00 ], [ - 4.006738e-05, + 1.104035e-06, -7.792668e-05, 0.000000e+00, 0.000000e+00, @@ -130,28 +130,28 @@ "specific_heat": { "coeffs": [ [ - 8.470340e+03, - -8.112594e+03, - -1.733141e+04, - 2.537666e+04, - -6.237188e+03 + 3.567277e+03, + -1.883088e+03, + -8.908338e+02, + 1.240825e+03, + -6.237190e+03 ], [ - -3.937904e+01, - 9.650409e+01, - -1.623692e+01, - -3.911271e+01, + 3.600135e+00, + 9.751619e+00, + -7.392336e+00, + -3.911272e+01, 0.000000e+00 ], [ - 9.863407e-02, - -2.295120e-01, + 1.442043e-04, + -2.183074e-02, 1.132210e-01, 0.000000e+00, 0.000000e+00 ], [ - -6.626335e-05, + -1.345979e-05, 1.056071e-04, 0.000000e+00, 0.000000e+00, @@ -163,28 +163,28 @@ "viscosity": { "coeffs": [ [ - 3.228351e+02, - -4.146500e+02, - -3.683025e+02, - 4.768344e+02, - -6.338437e+01 + -1.223086e+01, + 3.910340e+00, + 1.397248e+01, + 5.781130e+01, + -6.338442e+01 ], [ - -3.335519e+00, - 5.407901e+00, - 1.700863e-01, - -9.802257e-01, + -4.323086e-02, + -9.673321e-02, + -2.955885e-01, + -9.802258e-01, 0.000000e+00 ], [ - 1.056087e-02, - -1.829059e-02, + 4.048592e-04, + 3.843000e-05, 1.684830e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.090505e-05, + -1.600896e-06, 1.860830e-05, 0.000000e+00, 0.000000e+00, @@ -197,7 +197,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 5.000000e-01, "xid": "volume", "xmax": 7.000000e-01, "xmin": 3.000000e-01 diff --git a/dev/incompressible_liquids/json/ZM.json b/dev/incompressible_liquids/json/ZM.json index 5ddda9e5..9a1b0364 100644 --- a/dev/incompressible_liquids/json/ZM.json +++ b/dev/incompressible_liquids/json/ZM.json @@ -2,49 +2,49 @@ "T_freeze": { "coeffs": [ [ - 5.609300e+00, - -1.351795e-01, - -3.006483e-01, - -1.799499e-01, - 1.724346e-01, + 5.449506e+00, + -5.378318e-01, + -5.249567e-01, + -2.611517e-01, + -2.536365e-01, -1.704284e-01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 3.081500e+02, "Tmax": 3.931500e+02, "Tmin": 2.231500e+02, "TminPsat": 3.931500e+02, "conductivity": { "coeffs": [ [ - -8.115337e-01, - 2.920279e+00, - 8.235250e-01, - -2.724293e+00, - -1.148439e+00, + 4.120962e-01, + -2.972350e-01, + 1.646891e-01, + -4.659080e-01, + 4.688104e-03, 1.309155e+00 ], [ - 8.979058e-03, - -2.257014e-02, - 4.381118e-04, - 2.003368e-02, + -2.796027e-04, + -2.530415e-03, + 4.138083e-03, + 2.047358e-03, -6.878990e-03, 0.000000e+00 ], [ - -1.739565e-05, - 4.693966e-05, - -2.303514e-05, + 3.144453e-08, + 7.253931e-06, + -1.870040e-05, -6.860854e-06, 0.000000e+00, 0.000000e+00 ], [ - 1.079846e-08, - -2.826650e-08, + 6.205343e-10, + -1.244518e-08, 1.582132e-08, 0.000000e+00, 0.000000e+00, @@ -56,32 +56,32 @@ "density": { "coeffs": [ [ - 7.145815e+02, - 1.264281e+03, - -9.632291e+02, - 2.988119e+02, - -1.372366e+02, - 9.126655e+01 + 1.059820e+03, + 1.166864e+02, + -6.173090e+01, + -4.918785e+01, + 8.042935e+01, + 9.126653e+01 ], [ - 2.022010e+00, - -6.755801e+00, - 6.509376e+00, - -1.963794e+00, - -3.407582e-02, + -6.095461e-01, + -4.147239e-01, + 4.164637e-01, + 7.385332e-02, + -3.407573e-02, 0.000000e+00 ], [ - -3.279984e-03, - 1.046868e-02, - -1.205449e-02, - 3.416840e-03, + -1.423314e-03, + 3.311959e-03, + -3.118171e-03, + 3.416841e-03, 0.000000e+00, 0.000000e+00 ], [ - -1.088169e-06, - -1.596534e-06, + -8.558060e-07, + 2.525985e-06, 4.122519e-06, 0.000000e+00, 0.000000e+00, @@ -141,32 +141,32 @@ "specific_heat": { "coeffs": [ [ - 2.728122e+03, - -5.480968e+03, - 4.228492e+03, - 1.603278e+02, - -4.897929e+03, - -6.276677e+02 + 3.448805e+03, + -2.092315e+03, + -2.052672e+02, + 1.493964e+03, + -1.756077e+03, + -6.276676e+02 ], [ - 1.771707e+01, - -2.999257e+01, - -1.018089e+01, - 5.826944e+01, + 5.101034e+00, + 6.436081e+00, + -1.569846e+01, + -6.426880e+00, 1.528808e+01, 0.000000e+00 ], [ - -6.862082e-02, - 3.337675e-01, - -2.579914e-01, + -2.519517e-02, + 2.479378e-02, + 1.139073e-01, -1.545878e-01, 0.000000e+00, 0.000000e+00 ], [ - 8.527132e-05, - -5.828567e-04, + -4.287604e-05, + 7.026722e-05, 6.531239e-04, 0.000000e+00, 0.000000e+00, @@ -178,32 +178,32 @@ "viscosity": { "coeffs": [ [ - 2.063279e+01, - -4.246402e+01, - 5.571238e+01, - -6.224892e+01, - 1.413012e+01, - -1.017973e+00 + -8.196047e+00, + 2.928954e+00, + 1.244453e+00, + 1.450798e-01, + -2.841349e+00, + -1.017972e+00 ], [ - -2.204270e-01, - 4.932055e-01, - -3.179374e-01, - 2.800992e-01, + -3.297063e-02, + -3.100814e-02, + 2.408198e-02, + 5.159145e-02, -4.681660e-02, 0.000000e+00 ], [ - 5.457958e-04, - -1.790754e-03, - 6.422450e-04, + 1.782498e-04, + 3.747699e-05, + -3.396281e-04, -2.188456e-04, 0.000000e+00, 0.000000e+00 ], [ - -4.801080e-07, - 2.167477e-06, + 4.268757e-07, + 1.460457e-06, -7.070201e-07, 0.000000e+00, 0.000000e+00, @@ -216,7 +216,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 5.000000e-01, "xid": "volume", "xmax": 1.000000e+00, "xmin": 0.000000e+00 diff --git a/dev/incompressible_liquids/json/ZMC.json b/dev/incompressible_liquids/json/ZMC.json index f0cc17b6..df36429c 100644 --- a/dev/incompressible_liquids/json/ZMC.json +++ b/dev/incompressible_liquids/json/ZMC.json @@ -2,43 +2,43 @@ "T_freeze": { "coeffs": [ [ - 5.591126e+00, - 1.053098e-02, + 5.464012e+00, + -5.189883e-01, -5.295193e-01 ] ], "type": "exppolynomial" }, - "Tbase": 0.000000e+00, + "Tbase": 3.031500e+02, "Tmax": 3.831500e+02, "Tmin": 2.231500e+02, "TminPsat": 3.831500e+02, "conductivity": { "coeffs": [ [ - 2.354020e-01, - -1.394381e+00, - 7.377538e+00, - -9.467301e+00, - 4.202928e+00 + 4.137041e-01, + -2.828833e-01, + 2.073991e-03, + -3.173044e-01, + 4.202929e+00 ], [ - 2.368233e-03, - -3.267572e-03, - -4.312588e-03, + -2.738015e-04, + -2.643358e-03, + 4.068416e-03, 2.454691e-03, 0.000000e+00 ], [ - -1.099199e-06, - -2.528370e-06, + -3.557609e-07, + 4.990185e-06, 7.750234e-06, 0.000000e+00, 0.000000e+00 ], [ - 2.044141e-10, - -2.547461e-10, + 7.704097e-11, + -2.547468e-10, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -49,29 +49,29 @@ "density": { "coeffs": [ [ - 6.582507e+02, - 1.257651e+03, - -6.606650e+02, - -9.668152e+01, + 1.062722e+03, + 1.171530e+02, + -6.088266e+01, + 2.395204e+00, 1.066566e+02 ], [ - 2.419199e+00, - -6.162795e+00, - 3.821717e+00, - -3.768315e-01, + -6.003263e-01, + -4.401289e-01, + 6.018167e-01, + -3.768314e-01, 0.000000e+00 ], [ - -4.355291e-03, - 8.102325e-03, + -1.393452e-03, + 3.479068e-03, -4.378448e-03, 0.000000e+00, 0.000000e+00 ], [ - 1.404069e-07, - -2.691844e-07, + 5.814751e-09, + -2.691843e-07, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -130,29 +130,29 @@ "specific_heat": { "coeffs": [ [ - 4.537533e+03, - 1.545948e+03, - -7.190928e+04, - 1.420027e+05, - -7.979644e+04 + 3.371054e+03, + -1.939998e+03, + 5.401769e+03, + -4.349569e+03, + -7.979645e+04 ], [ - -1.634647e+01, - 1.208709e+02, - -1.408123e+02, + 5.477711e+00, + 4.806029e+00, + -3.024999e+01, 4.367695e+01, 0.000000e+00 ], [ - 3.327058e-02, - -1.153077e-01, + -2.344346e-02, + 1.458622e-02, 7.429804e-02, 0.000000e+00, 0.000000e+00 ], [ - -4.995617e-05, - 6.113133e-05, + -1.939051e-05, + 6.113134e-05, 0.000000e+00, 0.000000e+00, 0.000000e+00 @@ -163,28 +163,28 @@ "viscosity": { "coeffs": [ [ - 3.896670e+01, - -7.721932e+01, - 6.795513e-02, - 3.548831e+01, - -2.419531e+01 + -8.027525e+00, + 2.925573e+00, + 1.135288e+00, + 7.891747e-01, + -2.419532e+01 ], [ - -3.991527e-01, - 8.847263e-01, - -1.640293e-01, - 4.516406e-02, + -3.440952e-02, + -3.984102e-02, + -8.431789e-03, + 4.516405e-02, 0.000000e+00 ], [ - 1.081579e-03, - -2.851570e-03, + 1.685851e-04, + 8.615050e-05, 1.448975e-04, 0.000000e+00, 0.000000e+00 ], [ - -1.011429e-06, + 5.240165e-07, 3.070892e-06, 0.000000e+00, 0.000000e+00, @@ -197,7 +197,7 @@ "coeffs": "null", "type": "notdefined" }, - "xbase": 0.000000e+00, + "xbase": 5.000000e-01, "xid": "volume", "xmax": 7.000000e-01, "xmin": 3.000000e-01 diff --git a/dev/incompressible_liquids/json/ZS10.json b/dev/incompressible_liquids/json/ZS10.json index e7f6c502..61d46de2 100644 --- a/dev/incompressible_liquids/json/ZS10.json +++ b/dev/incompressible_liquids/json/ZS10.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.141500e+02, "Tmax": 3.631500e+02, "Tmin": 2.651500e+02, "TminPsat": 3.631500e+02, "conductivity": { "coeffs": [ [ - 1.264533e-01 + 5.643895e-01 ], [ - 1.484664e-03 + 1.301523e-03 ], [ - -2.824902e-07 + -3.004842e-07 ], [ -1.909279e-11 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.225555e+03 + 1.079692e+03 ], [ -4.643114e-01 ], [ - 1.841810e-10 + -1.246081e-11 ], [ - -2.086208e-13 + -2.086672e-13 ] ], "type": "polynomial" @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 2.213347e+03 + 3.645713e+03 ], [ - 7.478006e+00 + 1.640938e+00 ], [ - -9.290026e-03 + -9.290489e-03 ], [ - -4.913543e-10 + -4.913537e-10 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/ZS25.json b/dev/incompressible_liquids/json/ZS25.json index e6560546..3091318c 100644 --- a/dev/incompressible_liquids/json/ZS25.json +++ b/dev/incompressible_liquids/json/ZS25.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 3.066500e+02, "Tmax": 3.631500e+02, "Tmin": 2.501500e+02, "TminPsat": 3.631500e+02, "conductivity": { "coeffs": [ [ - 3.502295e-02 + 5.146694e-01 ], [ - 1.931021e-03 + 1.197680e-03 ], [ - -1.197699e-06 + -1.193761e-06 ], [ 4.280064e-12 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.339398e+03 + 1.176057e+03 ], [ - -5.326627e-01 + -5.326629e-01 ], [ - -4.726913e-10 + 1.110223e-16 ], [ - 5.137849e-13 + 5.137813e-13 ] ], "type": "polynomial" @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 3.090684e+03 + 3.200503e+03 ], [ - 2.841286e-01 + 4.320836e-01 ], [ - 2.414540e-04 + 2.410343e-04 ], [ - -4.562187e-10 + -4.562186e-10 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/ZS40.json b/dev/incompressible_liquids/json/ZS40.json index a5efc609..c1eb8d06 100644 --- a/dev/incompressible_liquids/json/ZS40.json +++ b/dev/incompressible_liquids/json/ZS40.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.991500e+02, "Tmax": 3.631500e+02, "Tmin": 2.351500e+02, "TminPsat": 3.631500e+02, "conductivity": { "coeffs": [ [ - 1.554367e-01 + 4.832764e-01 ], [ - 1.138700e-03 + 1.052655e-03 ], [ - -1.415408e-07 + -1.460887e-07 ], [ -5.067611e-12 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.416944e+03 + 1.247233e+03 ], [ - -5.673087e-01 + -5.673088e-01 ], [ - -4.200618e-10 + 2.852940e-12 ], [ - 4.712470e-13 + 4.711807e-13 ] ], "type": "polynomial" @@ -59,13 +59,13 @@ "specific_heat": { "coeffs": [ [ - 9.584744e+02 + 2.787399e+03 ], [ - 1.644948e+01 + 1.325558e+00 ], [ - -5.309479e-02 + 2.538470e-03 ], [ 6.199037e-05 diff --git a/dev/incompressible_liquids/json/ZS45.json b/dev/incompressible_liquids/json/ZS45.json index ce9ad2c3..41ef439a 100644 --- a/dev/incompressible_liquids/json/ZS45.json +++ b/dev/incompressible_liquids/json/ZS45.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.966500e+02, "Tmax": 3.631500e+02, "Tmin": 2.301500e+02, "TminPsat": 3.631500e+02, "conductivity": { "coeffs": [ [ - 2.016794e-01 + 4.725506e-01 ], [ - 8.068574e-04 + 1.019496e-03 ], [ - 3.576270e-07 + 3.591727e-07 ], [ 1.736871e-12 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.432999e+03 + 1.269110e+03 ], [ -5.524646e-01 ], [ - -3.713729e-11 + -3.092193e-12 ], [ - 3.828340e-14 + 3.814783e-14 ] ], "type": "polynomial" @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 2.045102e+03 + 2.699434e+03 ], [ - 2.205743e+00 + 2.205734e+00 ], [ - -2.881286e-08 + 1.170975e-09 ], [ - 3.369149e-11 + 3.369155e-11 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/ZS55.json b/dev/incompressible_liquids/json/ZS55.json index f408acd2..963b18a5 100644 --- a/dev/incompressible_liquids/json/ZS55.json +++ b/dev/incompressible_liquids/json/ZS55.json @@ -3,20 +3,20 @@ "coeffs": "null", "type": "notdefined" }, - "Tbase": 0.000000e+00, + "Tbase": 2.906500e+02, "Tmax": 3.631500e+02, "Tmin": 2.181500e+02, "TminPsat": 3.631500e+02, "conductivity": { "coeffs": [ [ - 2.446378e-01 + 4.515986e-01 ], [ - 5.583948e-04 + 8.656319e-04 ], [ - 5.290335e-07 + 5.280352e-07 ], [ -1.144975e-12 @@ -27,16 +27,16 @@ "density": { "coeffs": [ [ - 1.488824e+03 + 1.313147e+03 ], [ -6.044286e-01 ], [ - -2.253580e-12 + -5.668211e-12 ], [ - -3.942159e-15 + -4.015234e-15 ] ], "type": "polynomial" @@ -59,16 +59,16 @@ "specific_heat": { "coeffs": [ [ - 2.377828e+03 + 2.557025e+03 ], [ - -7.620141e-01 + 1.995099e+00 ], [ - 4.742969e-03 + 4.743056e-03 ], [ - 1.001109e-10 + 1.001108e-10 ] ], "type": "polynomial" @@ -76,13 +76,13 @@ "viscosity": { "coeffs": [ [ - 6.368799e+01 + -5.601012e+00 ], [ - -5.902275e-01 + -2.583587e-02 ], [ - 1.689699e-03 + 2.521265e-04 ], [ -1.648687e-06 From 9e8a925c105030864216052fa36ce087e93642bc Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 15:58:38 +0200 Subject: [PATCH 12/54] Updated apidoc files for web Signed-off-by: Ian Bell --- Web/apidoc/AbstractState.rst | 6 --- Web/apidoc/CoolProp.BibtexParser.rst | 7 +++ Web/apidoc/CoolProp.CoolProp.rst | 7 +++ Web/apidoc/CoolProp.GUI.CoolPropGUI.rst | 7 +++ Web/apidoc/CoolProp.GUI.PsychScript.rst | 7 +++ Web/apidoc/CoolProp.GUI.rst | 18 ++++++++ Web/apidoc/CoolProp.HumidAirProp.rst | 7 +++ Web/apidoc/CoolProp.Plots.Common.rst | 7 +++ Web/apidoc/CoolProp.Plots.Plots.rst | 7 +++ Web/apidoc/CoolProp.Plots.PsychChart.rst | 7 +++ Web/apidoc/CoolProp.Plots.PsychScript.rst | 7 +++ Web/apidoc/CoolProp.Plots.SimpleCycles.rst | 7 +++ Web/apidoc/CoolProp.Plots.Tests.rst | 7 +++ Web/apidoc/CoolProp.Plots.rst | 45 +++++++------------ Web/apidoc/CoolProp.State.rst | 7 +++ Web/apidoc/CoolProp.constants.rst | 7 +++ Web/apidoc/CoolProp.rst | 33 +++++++++++--- Web/apidoc/CoolProp.tests.rst | 27 +++++++++++ Web/apidoc/CoolProp.tests.runner.rst | 7 +++ .../CoolProp.tests.test_CoolPropState.rst | 7 +++ Web/apidoc/CoolProp.tests.test_HAProps.rst | 7 +++ Web/apidoc/CoolProp.tests.test_Props.rst | 7 +++ Web/apidoc/CoolProp.tests.test_Props1.rst | 7 +++ Web/apidoc/CoolProp.tests.test_Saturation.rst | 7 +++ Web/apidoc/CoolProp.tests.test_State.rst | 7 +++ .../CoolProp.tests.test_Units_CPState.rst | 7 +++ .../CoolProp.tests.test_consistency.rst | 7 +++ .../CoolProp.tests.test_param_getters.rst | 7 +++ Web/apidoc/CoolProp.tests.test_plots.rst | 7 +++ Web/apidoc/HumidAirProp.rst | 7 --- Web/apidoc/Plots.rst | 42 ----------------- Web/apidoc/State.rst | 6 --- Web/apidoc/modules.rst | 11 ----- 33 files changed, 257 insertions(+), 106 deletions(-) delete mode 100644 Web/apidoc/AbstractState.rst create mode 100644 Web/apidoc/CoolProp.BibtexParser.rst create mode 100644 Web/apidoc/CoolProp.CoolProp.rst create mode 100644 Web/apidoc/CoolProp.GUI.CoolPropGUI.rst create mode 100644 Web/apidoc/CoolProp.GUI.PsychScript.rst create mode 100644 Web/apidoc/CoolProp.GUI.rst create mode 100644 Web/apidoc/CoolProp.HumidAirProp.rst create mode 100644 Web/apidoc/CoolProp.Plots.Common.rst create mode 100644 Web/apidoc/CoolProp.Plots.Plots.rst create mode 100644 Web/apidoc/CoolProp.Plots.PsychChart.rst create mode 100644 Web/apidoc/CoolProp.Plots.PsychScript.rst create mode 100644 Web/apidoc/CoolProp.Plots.SimpleCycles.rst create mode 100644 Web/apidoc/CoolProp.Plots.Tests.rst create mode 100644 Web/apidoc/CoolProp.State.rst create mode 100644 Web/apidoc/CoolProp.constants.rst create mode 100644 Web/apidoc/CoolProp.tests.rst create mode 100644 Web/apidoc/CoolProp.tests.runner.rst create mode 100644 Web/apidoc/CoolProp.tests.test_CoolPropState.rst create mode 100644 Web/apidoc/CoolProp.tests.test_HAProps.rst create mode 100644 Web/apidoc/CoolProp.tests.test_Props.rst create mode 100644 Web/apidoc/CoolProp.tests.test_Props1.rst create mode 100644 Web/apidoc/CoolProp.tests.test_Saturation.rst create mode 100644 Web/apidoc/CoolProp.tests.test_State.rst create mode 100644 Web/apidoc/CoolProp.tests.test_Units_CPState.rst create mode 100644 Web/apidoc/CoolProp.tests.test_consistency.rst create mode 100644 Web/apidoc/CoolProp.tests.test_param_getters.rst create mode 100644 Web/apidoc/CoolProp.tests.test_plots.rst delete mode 100644 Web/apidoc/HumidAirProp.rst delete mode 100644 Web/apidoc/Plots.rst delete mode 100644 Web/apidoc/State.rst delete mode 100644 Web/apidoc/modules.rst diff --git a/Web/apidoc/AbstractState.rst b/Web/apidoc/AbstractState.rst deleted file mode 100644 index d24581c6..00000000 --- a/Web/apidoc/AbstractState.rst +++ /dev/null @@ -1,6 +0,0 @@ -AbstractState Module -==================== - -.. automodule:: CoolProp.AbstractState - :members: AbstractState - :undoc-members: \ No newline at end of file diff --git a/Web/apidoc/CoolProp.BibtexParser.rst b/Web/apidoc/CoolProp.BibtexParser.rst new file mode 100644 index 00000000..9f168e0c --- /dev/null +++ b/Web/apidoc/CoolProp.BibtexParser.rst @@ -0,0 +1,7 @@ +CoolProp.BibtexParser module +============================ + +.. automodule:: CoolProp.BibtexParser + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.CoolProp.rst b/Web/apidoc/CoolProp.CoolProp.rst new file mode 100644 index 00000000..f4ddf66e --- /dev/null +++ b/Web/apidoc/CoolProp.CoolProp.rst @@ -0,0 +1,7 @@ +CoolProp.CoolProp module +======================== + +.. automodule:: CoolProp.CoolProp + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.GUI.CoolPropGUI.rst b/Web/apidoc/CoolProp.GUI.CoolPropGUI.rst new file mode 100644 index 00000000..2f085292 --- /dev/null +++ b/Web/apidoc/CoolProp.GUI.CoolPropGUI.rst @@ -0,0 +1,7 @@ +CoolProp.GUI.CoolPropGUI module +=============================== + +.. automodule:: CoolProp.GUI.CoolPropGUI + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.GUI.PsychScript.rst b/Web/apidoc/CoolProp.GUI.PsychScript.rst new file mode 100644 index 00000000..d6bf0100 --- /dev/null +++ b/Web/apidoc/CoolProp.GUI.PsychScript.rst @@ -0,0 +1,7 @@ +CoolProp.GUI.PsychScript module +=============================== + +.. automodule:: CoolProp.GUI.PsychScript + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.GUI.rst b/Web/apidoc/CoolProp.GUI.rst new file mode 100644 index 00000000..0fd5d3b0 --- /dev/null +++ b/Web/apidoc/CoolProp.GUI.rst @@ -0,0 +1,18 @@ +CoolProp.GUI package +==================== + +Submodules +---------- + +.. toctree:: + + CoolProp.GUI.CoolPropGUI + CoolProp.GUI.PsychScript + +Module contents +--------------- + +.. automodule:: CoolProp.GUI + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.HumidAirProp.rst b/Web/apidoc/CoolProp.HumidAirProp.rst new file mode 100644 index 00000000..74fc648c --- /dev/null +++ b/Web/apidoc/CoolProp.HumidAirProp.rst @@ -0,0 +1,7 @@ +CoolProp.HumidAirProp module +============================ + +.. automodule:: CoolProp.HumidAirProp + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.Common.rst b/Web/apidoc/CoolProp.Plots.Common.rst new file mode 100644 index 00000000..4d00d0d3 --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.Common.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.Common module +============================ + +.. automodule:: CoolProp.Plots.Common + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.Plots.rst b/Web/apidoc/CoolProp.Plots.Plots.rst new file mode 100644 index 00000000..1df0790c --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.Plots.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.Plots module +=========================== + +.. automodule:: CoolProp.Plots.Plots + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.PsychChart.rst b/Web/apidoc/CoolProp.Plots.PsychChart.rst new file mode 100644 index 00000000..ef9bba7d --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.PsychChart.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.PsychChart module +================================ + +.. automodule:: CoolProp.Plots.PsychChart + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.PsychScript.rst b/Web/apidoc/CoolProp.Plots.PsychScript.rst new file mode 100644 index 00000000..b27bc46f --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.PsychScript.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.PsychScript module +================================= + +.. automodule:: CoolProp.Plots.PsychScript + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.SimpleCycles.rst b/Web/apidoc/CoolProp.Plots.SimpleCycles.rst new file mode 100644 index 00000000..813298f0 --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.SimpleCycles.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.SimpleCycles module +================================== + +.. automodule:: CoolProp.Plots.SimpleCycles + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.Tests.rst b/Web/apidoc/CoolProp.Plots.Tests.rst new file mode 100644 index 00000000..9c6dc6f0 --- /dev/null +++ b/Web/apidoc/CoolProp.Plots.Tests.rst @@ -0,0 +1,7 @@ +CoolProp.Plots.Tests module +=========================== + +.. automodule:: CoolProp.Plots.Tests + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.Plots.rst b/Web/apidoc/CoolProp.Plots.rst index 9b2e2487..f7b0ede8 100644 --- a/Web/apidoc/CoolProp.Plots.rst +++ b/Web/apidoc/CoolProp.Plots.rst @@ -1,35 +1,22 @@ -Plots Package -============= +CoolProp.Plots package +====================== -:mod:`Plots` Package --------------------- +Submodules +---------- + +.. toctree:: + + CoolProp.Plots.Common + CoolProp.Plots.Plots + CoolProp.Plots.PsychChart + CoolProp.Plots.PsychScript + CoolProp.Plots.SimpleCycles + CoolProp.Plots.Tests + +Module contents +--------------- .. automodule:: CoolProp.Plots :members: :undoc-members: :show-inheritance: - -:mod:`Plots` Module -------------------- - -.. automodule:: CoolProp.Plots.Plots - :members: - :undoc-members: - :show-inheritance: - -:mod:`PsychChart` Module ------------------------- - -.. automodule:: CoolProp.Plots.PsychChart - :members: - :undoc-members: - :show-inheritance: - -:mod:`SimpleCycles` Module --------------------------- - -.. automodule:: CoolProp.Plots.SimpleCycles - :members: - :undoc-members: - :show-inheritance: - diff --git a/Web/apidoc/CoolProp.State.rst b/Web/apidoc/CoolProp.State.rst new file mode 100644 index 00000000..0e6a41c4 --- /dev/null +++ b/Web/apidoc/CoolProp.State.rst @@ -0,0 +1,7 @@ +CoolProp.State module +===================== + +.. automodule:: CoolProp.State + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.constants.rst b/Web/apidoc/CoolProp.constants.rst new file mode 100644 index 00000000..2ac6591d --- /dev/null +++ b/Web/apidoc/CoolProp.constants.rst @@ -0,0 +1,7 @@ +CoolProp.constants module +========================= + +.. automodule:: CoolProp.constants + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.rst b/Web/apidoc/CoolProp.rst index 889bc959..329a027e 100644 --- a/Web/apidoc/CoolProp.rst +++ b/Web/apidoc/CoolProp.rst @@ -1,9 +1,32 @@ -CoolProp Module -=============== +CoolProp package +================ -.. automodule:: CoolProp.CoolProp - :synopsis: +Subpackages +----------- + +.. toctree:: + + CoolProp.GUI + CoolProp.Plots + CoolProp.tests + +Submodules +---------- + +.. toctree:: + + CoolProp.BibtexParser + CoolProp.CoolProp + CoolProp.CoolProp + CoolProp.HumidAirProp + CoolProp.State + CoolProp.constants + CoolProp.constants + +Module contents +--------------- + +.. automodule:: CoolProp :members: :undoc-members: :show-inheritance: - :exclude-members: State,HAProps,HAProps_Aux,PureFluidClass \ No newline at end of file diff --git a/Web/apidoc/CoolProp.tests.rst b/Web/apidoc/CoolProp.tests.rst new file mode 100644 index 00000000..9c058cbd --- /dev/null +++ b/Web/apidoc/CoolProp.tests.rst @@ -0,0 +1,27 @@ +CoolProp.tests package +====================== + +Submodules +---------- + +.. toctree:: + + CoolProp.tests.runner + CoolProp.tests.test_CoolPropState + CoolProp.tests.test_HAProps + CoolProp.tests.test_Props + CoolProp.tests.test_Props1 + CoolProp.tests.test_Saturation + CoolProp.tests.test_State + CoolProp.tests.test_Units_CPState + CoolProp.tests.test_consistency + CoolProp.tests.test_param_getters + CoolProp.tests.test_plots + +Module contents +--------------- + +.. automodule:: CoolProp.tests + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.runner.rst b/Web/apidoc/CoolProp.tests.runner.rst new file mode 100644 index 00000000..1116c6a4 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.runner.rst @@ -0,0 +1,7 @@ +CoolProp.tests.runner module +============================ + +.. automodule:: CoolProp.tests.runner + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_CoolPropState.rst b/Web/apidoc/CoolProp.tests.test_CoolPropState.rst new file mode 100644 index 00000000..ad1610f8 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_CoolPropState.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_CoolPropState module +======================================== + +.. automodule:: CoolProp.tests.test_CoolPropState + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_HAProps.rst b/Web/apidoc/CoolProp.tests.test_HAProps.rst new file mode 100644 index 00000000..a20adca2 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_HAProps.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_HAProps module +================================== + +.. automodule:: CoolProp.tests.test_HAProps + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_Props.rst b/Web/apidoc/CoolProp.tests.test_Props.rst new file mode 100644 index 00000000..e340245f --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_Props.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_Props module +================================ + +.. automodule:: CoolProp.tests.test_Props + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_Props1.rst b/Web/apidoc/CoolProp.tests.test_Props1.rst new file mode 100644 index 00000000..99592e13 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_Props1.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_Props1 module +================================= + +.. automodule:: CoolProp.tests.test_Props1 + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_Saturation.rst b/Web/apidoc/CoolProp.tests.test_Saturation.rst new file mode 100644 index 00000000..e71ef65d --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_Saturation.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_Saturation module +===================================== + +.. automodule:: CoolProp.tests.test_Saturation + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_State.rst b/Web/apidoc/CoolProp.tests.test_State.rst new file mode 100644 index 00000000..c7b9cbe3 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_State.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_State module +================================ + +.. automodule:: CoolProp.tests.test_State + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_Units_CPState.rst b/Web/apidoc/CoolProp.tests.test_Units_CPState.rst new file mode 100644 index 00000000..101ea276 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_Units_CPState.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_Units_CPState module +======================================== + +.. automodule:: CoolProp.tests.test_Units_CPState + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_consistency.rst b/Web/apidoc/CoolProp.tests.test_consistency.rst new file mode 100644 index 00000000..e5806299 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_consistency.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_consistency module +====================================== + +.. automodule:: CoolProp.tests.test_consistency + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_param_getters.rst b/Web/apidoc/CoolProp.tests.test_param_getters.rst new file mode 100644 index 00000000..55fdb73e --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_param_getters.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_param_getters module +======================================== + +.. automodule:: CoolProp.tests.test_param_getters + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/CoolProp.tests.test_plots.rst b/Web/apidoc/CoolProp.tests.test_plots.rst new file mode 100644 index 00000000..4bcbb8f5 --- /dev/null +++ b/Web/apidoc/CoolProp.tests.test_plots.rst @@ -0,0 +1,7 @@ +CoolProp.tests.test_plots module +================================ + +.. automodule:: CoolProp.tests.test_plots + :members: + :undoc-members: + :show-inheritance: diff --git a/Web/apidoc/HumidAirProp.rst b/Web/apidoc/HumidAirProp.rst deleted file mode 100644 index fa4a109c..00000000 --- a/Web/apidoc/HumidAirProp.rst +++ /dev/null @@ -1,7 +0,0 @@ -HumidAirProp Module -=================== - -.. automodule:: CoolProp.HumidAirProp - :members: HAProps, HAProps_Aux - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/Web/apidoc/Plots.rst b/Web/apidoc/Plots.rst deleted file mode 100644 index 00b1df46..00000000 --- a/Web/apidoc/Plots.rst +++ /dev/null @@ -1,42 +0,0 @@ -Plots Package -============= - -:mod:`CoolProp.Plots` Package ------------------------------ - -.. automodule:: CoolProp.Plots - :members: - :undoc-members: - :show-inheritance: - -:mod:`CoolProp.Plots.Common` Module -------------------------------------- - -.. automodule:: CoolProp.Plots.Common - :members: - :undoc-members: - :show-inheritance: - -:mod:`CoolProp.Plots.Plots` Module ----------------------------------- - -.. automodule:: CoolProp.Plots.Plots - :members: - :undoc-members: - :show-inheritance: - -:mod:`CoolProp.Plots.PsychChart` Module ---------------------------------------- - -.. automodule:: CoolProp.Plots.PsychChart - :members: - :undoc-members: - :show-inheritance: - -:mod:`SimpleCycles` Module --------------------------- - -.. automodule:: CoolProp.Plots.SimpleCycles - :members: - :undoc-members: - :show-inheritance: diff --git a/Web/apidoc/State.rst b/Web/apidoc/State.rst deleted file mode 100644 index dec29521..00000000 --- a/Web/apidoc/State.rst +++ /dev/null @@ -1,6 +0,0 @@ -State Module -============ - -.. automodule:: CoolProp.State - :members: State, PureFluidClass - :undoc-members: \ No newline at end of file diff --git a/Web/apidoc/modules.rst b/Web/apidoc/modules.rst deleted file mode 100644 index 507350d6..00000000 --- a/Web/apidoc/modules.rst +++ /dev/null @@ -1,11 +0,0 @@ -CoolProp API -============ - -.. toctree:: - :maxdepth: 4 - - CoolProp - HumidAirProp - Plots - State - AbstractState From 07cd616c38f34d5e3d3c0f2d1b1adf5a8b3480d0 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 16:53:51 +0200 Subject: [PATCH 13/54] Implemented access to mixture binary pairs in get_global_param_string See https://github.com/CoolProp/CoolProp/issues/152 Signed-off-by: Ian Bell --- src/Backends/Helmholtz/MixtureParameters.cpp | 11 +++++++++++ src/Backends/Helmholtz/MixtureParameters.h | 8 ++++++++ src/CoolProp.cpp | 5 +++++ 3 files changed, 24 insertions(+) diff --git a/src/Backends/Helmholtz/MixtureParameters.cpp b/src/Backends/Helmholtz/MixtureParameters.cpp index 5bc70736..11d172fc 100644 --- a/src/Backends/Helmholtz/MixtureParameters.cpp +++ b/src/Backends/Helmholtz/MixtureParameters.cpp @@ -4,6 +4,7 @@ namespace CoolProp{ + /** \brief A library of binary pair parameters for the mixture * * Each entry in the binary pair library includes reducing parameters as well as the name of the reducing function to be used and @@ -91,6 +92,16 @@ public: }; static MixtureBinaryPairLibrary mixturebinarypairlibrary; +std::string get_csv_mixture_binary_pairs() +{ + std::vector out; + for (std::map< std::vector, std::vector >::iterator it = mixturebinarypairlibrary.binary_pair_map.begin(); it != mixturebinarypairlibrary.binary_pair_map.end(); ++it) + { + out.push_back(strjoin(it->first, "&")); + } + return strjoin(out, ","); +} + std::string get_reducing_function_name(std::string CAS1, std::string CAS2) { std::vector CAS; diff --git a/src/Backends/Helmholtz/MixtureParameters.h b/src/Backends/Helmholtz/MixtureParameters.h index 7d9f9902..44a6d111 100644 --- a/src/Backends/Helmholtz/MixtureParameters.h +++ b/src/Backends/Helmholtz/MixtureParameters.h @@ -4,6 +4,14 @@ #include "HelmholtzEOSMixtureBackend.h" namespace CoolProp{ + +/** \brief Get a comma-separated list of CAS code pairs separated by commas + * + * Each of the pairs will be CAS1&CAS2 ("&" delimited) + */ +std::string get_csv_mixture_binary_pairs(); + +std::string get_mixing_pair_info(std::string CAS1, std::string CAS2, std::string key); class MixtureParameters { diff --git a/src/CoolProp.cpp b/src/CoolProp.cpp index 54b21ee8..9fc28731 100644 --- a/src/CoolProp.cpp +++ b/src/CoolProp.cpp @@ -30,6 +30,8 @@ #include "Backends/Helmholtz/Fluids/FluidLibrary.h" #include "Backends/Incompressible/IncompressibleLibrary.h" #include "Backends/Helmholtz/HelmholtzEOSBackend.h" +#include "Backends/Helmholtz/MixtureParameters.h" + namespace CoolProp { @@ -869,6 +871,9 @@ std::string get_global_param_string(std::string ParamName) else if (!ParamName.compare("incompressible_list_solution")){ return get_incompressible_list_solution(); } + else if (!ParamName.compare("mixture_binary_pairs_list")){ + return get_csv_mixture_binary_pairs(); + } else if (!ParamName.compare("parameter_list") ) { return get_csv_parameter_list(); From 9d7946b983654d2618c1c1e65ddcfec4a61286a8 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 16:54:53 +0200 Subject: [PATCH 14/54] Updated python docs for doxylink purposes Signed-off-by: Ian Bell --- wrappers/Python/CoolProp/AbstractState.pyx | 40 +++++++++++----------- wrappers/Python/CoolProp/CoolProp.pyx | 8 +++-- wrappers/Python/setup.py | 2 +- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/wrappers/Python/CoolProp/AbstractState.pyx b/wrappers/Python/CoolProp/AbstractState.pyx index 59fc2235..e2c5b25f 100644 --- a/wrappers/Python/CoolProp/AbstractState.pyx +++ b/wrappers/Python/CoolProp/AbstractState.pyx @@ -46,65 +46,65 @@ cdef class AbstractState: return self.thisptr.keyed_output(iOutput) cpdef double T(self) except *: - """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T` """ + """ Get the temperature in K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::T(void)` """ return self.thisptr.T() cpdef double p(self) except *: - """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p` """ + """ Get the pressure in Pa - wrapper of c++ function :cpapi:`CoolProp::AbstractState::p(void)` """ return self.thisptr.p() cpdef double rhomolar(self) except *: - """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar` """ + """ Get the density in mol/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomolar(void)` """ return self.thisptr.rhomolar() cpdef double rhomass(self) except *: - """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass` """ + """ Get the density in kg/m^3 - wrapper of c++ function :cpapi:`CoolProp::AbstractState::rhomass(void)` """ return self.thisptr.rhomass() cpdef double hmolar(self) except *: - """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar` """ + """ Get the enthalpy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmolar(void)` """ return self.thisptr.hmolar() cpdef double hmass(self) except *: - """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass` """ + """ Get the enthalpy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::hmass(void)` """ return self.thisptr.hmass() cpdef double umolar(self) except *: - """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar` """ + """ Get the internal energy in J/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umolar(void)` """ return self.thisptr.umolar() cpdef double umass(self) except *: - """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass` """ + """ Get the internal energy in J/kg - wrapper of c++ function :cpapi:`CoolProp::AbstractState::umass(void)` """ return self.thisptr.umass() cpdef double smolar(self) except *: - """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar` """ + """ Get the entropy in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smolar(void)` """ return self.thisptr.smolar() cpdef double smass(self) except *: - """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass` """ + """ Get the entropy in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::smass(void)` """ return self.thisptr.smass() cpdef double cpmolar(self) except *: - """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar` """ + """ Get the constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmolar(void)` """ return self.thisptr.cpmolar() cpdef double cpmass(self) except *: - """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass` """ + """ Get the constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cpmass(void)` """ return self.thisptr.cpmass() cpdef double cp0molar(self) except *: - """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar` """ + """ Get the ideal gas constant pressure specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0molar(void)` """ return self.thisptr.cp0molar() cpdef double cp0mass(self) except *: - """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass` """ + """ Get the ideal gas constant pressure specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cp0mass(void)` """ return self.thisptr.cp0mass() cpdef double cvmolar(self) except *: - """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar` """ + """ Get the constant volume specific heat in J/mol/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmolar(void)` """ return self.thisptr.cvmolar() cpdef double cvmass(self) except *: - """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass` """ + """ Get the constant volume specific heat in J/kg/K - wrapper of c++ function :cpapi:`CoolProp::AbstractState::cvmass(void)` """ return self.thisptr.cvmass() cpdef double speed_sound(self) except *: - """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound` """ + """ Get the speed of sound in m/s - wrapper of c++ function :cpapi:`CoolProp::AbstractState::speed_sound(void)` """ return self.thisptr.speed_sound() cpdef double molar_mass(self) except *: - """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass` """ + """ Get the molar mass in kg/mol - wrapper of c++ function :cpapi:`CoolProp::AbstractState::molar_mass(void)` """ return self.thisptr.molar_mass() cpdef mole_fractions_liquid(self): - """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid` """ + """ Get the mole fractions of the liquid phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_liquid(void)` """ return self.thisptr.mole_fractions_liquid() cpdef mole_fractions_vapor(self): - """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor` """ + """ Get the mole fractions of the vapor phase - wrapper of c++ function :cpapi:`CoolProp::AbstractState::mole_fractions_vapor(void)` """ return self.thisptr.mole_fractions_vapor() ## ---------------------------------------- diff --git a/wrappers/Python/CoolProp/CoolProp.pyx b/wrappers/Python/CoolProp/CoolProp.pyx index 25b301ae..21701da0 100644 --- a/wrappers/Python/CoolProp/CoolProp.pyx +++ b/wrappers/Python/CoolProp/CoolProp.pyx @@ -150,7 +150,7 @@ cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6): cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None): """ - ${CoolProp::Props} + A Python wrapper of :cpapi:'`CoolProp::Props`. This function is deprecated, use PropsSI instead """ import warnings dep_warning = "Props() function is deprecated; Use the PropsSI() function" @@ -169,7 +169,7 @@ cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None): cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None): """ - $$PropsSI$$ + A Python wrapper of C++ function :cpapi:'`CoolProp::PropsSI`. """ cdef double val @@ -356,6 +356,10 @@ cdef class State: """ A class that contains all the code that represents a thermodynamic state + .. warning:: + + This class is deprecated. You should use :py:class:`CoolProp.AbstractState` instead + The motivation for this class is that it is useful to be able to define the state once using whatever state inputs you like and then be able to calculate other thermodynamic properties with the minimum of computational work. diff --git a/wrappers/Python/setup.py b/wrappers/Python/setup.py index a13f295f..ac8744de 100644 --- a/wrappers/Python/setup.py +++ b/wrappers/Python/setup.py @@ -110,7 +110,7 @@ if __name__=='__main__': ## If the file is run directly without any parameters, clean, build and install if len(sys.argv)==1: - sys.argv += ['clean', 'develop'] + sys.argv += ['clean', 'install'] common_args = dict(include_dirs = include_dirs, language='c++') From 3001e4c5f0dc56966f69f49c9267779924df383a Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 16:55:25 +0200 Subject: [PATCH 15/54] Fixed mixtures rst file Signed-off-by: Ian Bell --- Web/fluid_properties/Mixtures.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/fluid_properties/Mixtures.rst b/Web/fluid_properties/Mixtures.rst index 776fbd4c..9c278b83 100644 --- a/Web/fluid_properties/Mixtures.rst +++ b/Web/fluid_properties/Mixtures.rst @@ -25,7 +25,7 @@ The only types of inputs that are allowed for mixtures right now are try: HEOS.build_phase_envelope("dummy") except ValueError as VE: - print VE + print(VE) PE = HEOS.get_phase_envelope_data() plt.plot(PE.rhomolar_vap, PE.rhomolar_liq, 'o-') From 3e85547bbbc35a1749b8c3eaf64d4d60fb8c4472 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 16:56:12 +0200 Subject: [PATCH 16/54] Changed path for doxylink (works to a point now) Signed-off-by: Ian Bell --- Web/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/conf.py b/Web/conf.py index eb4966c1..168d5853 100644 --- a/Web/conf.py +++ b/Web/conf.py @@ -26,7 +26,7 @@ except ImportError: #~ sys.path.append(os.path.abspath('sphinxext')) doxylink = { - 'cpapi' : ('_static/doxygen/CoolPropDoxyLink.tag', '_static/doxygen/html') + 'cpapi' : ('_static/doxygen/CoolPropDoxyLink.tag', '../_static/doxygen/html') } # -- General configuration ----------------------------------------------------- From d0ed27af7b91cac832cc22e8bdcd2839646ec7b8 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 16:56:48 +0200 Subject: [PATCH 17/54] Removed old files from codelite project Signed-off-by: Ian Bell --- dev/codelite/coolprop.project | 2 -- 1 file changed, 2 deletions(-) diff --git a/dev/codelite/coolprop.project b/dev/codelite/coolprop.project index 28c86cc6..ff164ef4 100644 --- a/dev/codelite/coolprop.project +++ b/dev/codelite/coolprop.project @@ -134,8 +134,6 @@ - - From d3364cc08b3ed055d3ce008ce1d0393e0f3c89cc Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Wed, 24 Sep 2014 17:14:47 +0200 Subject: [PATCH 18/54] New readme --- Readme.rst | 37 +++++++++++++++++++++++++++++++++++++ Readme.txt | 14 -------------- 2 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 Readme.rst delete mode 100644 Readme.txt diff --git a/Readme.rst b/Readme.rst new file mode 100644 index 00000000..e8ed9ca4 --- /dev/null +++ b/Readme.rst @@ -0,0 +1,37 @@ + +Welcome to CoolProp +=================== + +CoolProp is a thermophysical property database and wrappers for a selection of programming environments. +It offers similar functionality to REFPROP, but CoolProp is open-source and free, +It was originally developed by Ian Bell, currently a post-doc at the University of Liege, in Liege, Belgium. + +* CoolProp has flexible licensing terms: Commercial - ok! Academic? - ok! |license| + +* You can get the development binaries for each platform at http://www.coolprop.dreamhosters.com:8010/binaries/. + +* For Python, you can get latest stable version |version| via pip install coolprop |downloads| + +* The development docs for the v5 release are at http://www.coolprop.dreamhosters.com:8010/sphinx/ + +* Travis CI helps us to keep track of integration issues |travis| + +* Please, if there are any issues of any kind, file an issue at https://github.com/CoolProp/CoolProp/issues + +* Also, check out our FAQ: https://github.com/CoolProp/CoolProp/blob/master/FAQ.md + +.. |travis| image:: https://travis-ci.org/CoolProp/CoolProp.png?branch=master + :target: https://travis-ci.org/CoolProp/CoolProp + :alt: travis-ci + +.. |downloads| image:: https://pypip.in/d/CoolProp/badge.png + :target: http://pypi.python.org/pypi/CoolProp/ + :alt: downloads + +.. |version| image:: https://pypip.in/v/CoolProp/badge.png + :target: http://pypi.python.org/pypi/CoolProp/ + :alt: latest stable version + +.. |license| image:: https://pypip.in/license/CoolProp/badge.png + :target: http://pypi.python.org/pypi/CoolProp/ + :alt: license \ No newline at end of file diff --git a/Readme.txt b/Readme.txt deleted file mode 100644 index d6154091..00000000 --- a/Readme.txt +++ /dev/null @@ -1,14 +0,0 @@ -CoolProp is a thermophysical property database and wrappers for a selection of programming environments - -It offers similar functionality to REFPROP, but CoolProp is open-source and free, with flexible licensing terms. Commercial - ok! Academic? - ok! - -It was originally developed by Ian Bell, currently a post-doc at the University of Liege, in Liege, Belgium. - -The development docs for the v5 release are at http://www.coolprop.dreamhosters.com:8010/sphinx/ - -The development binaries for each platform are at http://www.coolprop.dreamhosters.com:8010/binaries/. - -Please, if there are any issues of any kind, file an issue at https://github.com/CoolProp/CoolProp/issues - -Also, check out our FAQ: https://github.com/CoolProp/CoolProp/blob/master/FAQ.md - From 5bf0bde218b4562d6aea946894167bca79c359bc Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 18:46:10 +0200 Subject: [PATCH 19/54] Update parameter table Signed-off-by: Ian Bell --- Web/coolprop/build_parametric_table.py | 14 ++-- Web/coolprop/parameter_table.rst.in | 111 +++++++++++++++---------- 2 files changed, 72 insertions(+), 53 deletions(-) diff --git a/Web/coolprop/build_parametric_table.py b/Web/coolprop/build_parametric_table.py index 6d727608..3c0123fa 100644 --- a/Web/coolprop/build_parametric_table.py +++ b/Web/coolprop/build_parametric_table.py @@ -1,15 +1,15 @@ -import CoolProp5 +import CoolProp import pandas grouping = dict() grouping2 = [] # Group aliases -for parameter in CoolProp5.get('parameter_list').split(','): +for parameter in CoolProp.get('parameter_list').split(','): - index = CoolProp5.CoolProp.get_parameter_index(parameter) - units = CoolProp5.CoolProp.get_parameter_information(index, 'units').replace('-',' ') - IO = CoolProp5.CoolProp.get_parameter_information(index, 'IO') - long = CoolProp5.CoolProp.get_parameter_information(index, 'long') - short = CoolProp5.CoolProp.get_parameter_information(index, 'short') + index = CoolProp.CoolProp.get_parameter_index(parameter) + units = CoolProp.CoolProp.get_parameter_information(index, 'units').replace('-',' ') + IO = CoolProp.CoolProp.get_parameter_information(index, 'IO') + long = CoolProp.CoolProp.get_parameter_information(index, 'long') + short = CoolProp.CoolProp.get_parameter_information(index, 'short') RHS = (units, IO, long) if RHS not in grouping: diff --git a/Web/coolprop/parameter_table.rst.in b/Web/coolprop/parameter_table.rst.in index 9e371782..9dbc32ab 100644 --- a/Web/coolprop/parameter_table.rst.in +++ b/Web/coolprop/parameter_table.rst.in @@ -1,48 +1,67 @@ .. constructed with the build_parameter_table.py script in this folder -================================= ======= ============ ========================================================= -Parameter Units Input/Output Description -================================= ======= ============ ========================================================= -``D``, ``Dmass`` kg/m^3 IO Mass density -``Delta`` IO Reduced density (rho/rhoc) -``Dmolar`` mol/m^3 IO Molar density -``H``, ``Hmass`` J/kg IO Mass specific enthalpy -``Hmolar`` J/mol IO Molar specific enthalpy -``P`` Pa IO Pressure -``Q`` mol/mol IO Mass vapor quality -``S``, ``Smass`` J/kg/K IO Mass specific entropy -``Smolar`` J/mol/K IO Molar specific entropy -``T`` K IO Temperature -``Tau`` IO Reciprocal reduced temperature (Tc/T) -``U``, ``Umass`` J/kg IO Mass specific internal energy -``Umolar`` J/mol IO Molar specific internal energy -``Bvirial`` O Second virial coefficient -``C``, ``Cpmass`` J/kg/K O Mass specific constant presssure specific heat -``Cpmolar`` J/mol/K O Molar specific constant presssure specific heat -``Cvirial`` O Third virial coefficient -``Cvmass``, ``O`` J/kg/K O Mass specific constant volume specific heat -``Cvmolar`` J/mol/K O Molar specific constant volume specific heat -``FH`` O Flammability hazard -``GWP100`` O 100-year gobal warming potential -``GWP20`` O 20-year gobal warming potential -``GWP500`` O 500-year gobal warming potential -``HH`` O Health hazard -``L``, ``conductivity`` W/m/K O Thermal conductivity -``ODP`` O Ozone depletion potential -``PH`` O Physical hazard -``T_critical``, ``Tcrit`` K O Temperature at the critical point -``T_max`` K O Maximum temperature limit -``T_min`` K O Minimum temperature limit -``T_reducing`` K O Temperature at the reducing point -``T_triple``, ``Ttriple`` K O Temperature at the triple point -``V``, ``viscosity`` Pa s O Viscosity -``dBvirial_dT`` O Derivative of second virial coefficient with respect to T -``dCvirial_dT`` O Derivative of third virial coefficient with respect to T -``isothermal_compressibility`` 1/Pa O Isothermal compressibility -``molar_mass`` kg/mol O Molar mass -``p_critical``, ``pcrit`` Pa O Pressure at the critical point -``rhocrit``, ``rhomass_critical`` kg/m^3 O Mass density at critical point -``rhomolar_critical`` mol/m^3 O Molar density at critical point -``rhomolar_reducing`` mol/m^3 O Molar density at reducing point -``speed_of_sound`` m/s O Speed of sound -================================= ======= ============ ========================================================= +====================================================================================== ======= ============ ========================================================= +Parameter Units Input/Output Description +====================================================================================== ======= ============ ========================================================= +``DELTA``, ``Delta`` IO Reduced density (rho/rhoc) +``DMOLAR``, ``Dmolar`` mol/m^3 IO Molar density +``D``, ``DMASS``, ``Dmass`` kg/m^3 IO Mass density +``GMASS``, ``Gmass`` J/kg IO Mass specific Gibbs energy +``GMOLAR``, ``Gmolar`` J/mol IO Molar specific Gibbs energy +``HMOLAR``, ``Hmolar`` J/mol IO Molar specific enthalpy +``H``, ``HMASS``, ``Hmass`` J/kg IO Mass specific enthalpy +``P`` Pa IO Pressure +``Q`` mol/mol IO Mass vapor quality +``SMOLAR``, ``Smolar`` J/mol/K IO Molar specific entropy +``S``, ``SMASS``, ``Smass`` J/kg/K IO Mass specific entropy +``TAU``, ``Tau`` IO Reciprocal reduced temperature (Tc/T) +``T`` K IO Temperature +``UMOLAR``, ``Umolar`` J/mol IO Molar specific internal energy +``U``, ``UMASS``, ``Umass`` J/kg IO Mass specific internal energy +``ALPHA0``, ``alpha0`` O Ideal Helmholtz energy +``ALPHAR``, ``alphar`` O Residual Helmholtz energy +``A``, ``SPEED_OF_SOUND``, ``speed_of_sound`` m/s O Speed of sound +``BVIRIAL``, ``Bvirial`` O Second virial coefficient +``CONDUCTIVITY``, ``L``, ``conductivity`` W/m/K O Thermal conductivity +``CP0MASS``, ``Cp0mass`` J/kg/K O Ideal gas mass specific constant presssure specific heat +``CP0MOLAR``, ``Cp0molar`` J/mol/K O Ideal gas molar specific constant presssure specific heat +``CPMOLAR``, ``Cpmolar`` J/mol/K O Molar specific constant presssure specific heat +``CVIRIAL``, ``Cvirial`` O Third virial coefficient +``CVMASS``, ``Cvmass``, ``O`` J/kg/K O Mass specific constant volume specific heat +``CVMOLAR``, ``Cvmolar`` J/mol/K O Molar specific constant volume specific heat +``C``, ``CPMASS``, ``Cpmass`` J/kg/K O Mass specific constant presssure specific heat +``DALPHA0_DDELTA_CONSTTAU``, ``dalpha0_ddelta_consttau`` O Derivative of ideal Helmholtz energy with delta +``DALPHA0_DTAU_CONSTDELTA``, ``dalpha0_dtau_constdelta`` O Derivative of ideal Helmholtz energy with tau +``DALPHAR_DDELTA_CONSTTAU``, ``dalphar_ddelta_consttau`` O Derivative of residual Helmholtz energy with delta +``DALPHAR_DTAU_CONSTDELTA``, ``dalphar_dtau_constdelta`` O Derivative of residual Helmholtz energy with tau +``DBVIRIAL_DT``, ``dBvirial_dT`` O Derivative of second virial coefficient with respect to T +``DCVIRIAL_DT``, ``dCvirial_dT`` O Derivative of third virial coefficient with respect to T +``FH`` O Flammability hazard +``FUNDAMENTAL_DERIVATIVE_OF_GAS_DYNAMICS``, ``fundamental_derivative_of_gas_dynamics`` O Fundamental_derivative_of_gas_dynamics +``GWP100`` O 100-year gobal warming potential +``GWP20`` O 20-year gobal warming potential +``GWP500`` O 500-year gobal warming potential +``HH`` O Health hazard +``ISOBARIC_EXPANSION_COEFFICIENT``, ``isobaric_expansion_coefficient`` 1/K O Isobaric expansion coefficient +``ISOTHERMAL_COMPRESSIBILITY``, ``isothermal_compressibility`` 1/Pa O Isothermal compressibility +``M``, ``MOLAR_MASS``, ``MOLEMASS``, ``molar_mass``, ``molemass`` kg/mol O Molar mass +``ODP`` O Ozone depletion potential +``PCRIT``, ``P_CRITICAL``, ``p_critical``, ``pcrit`` Pa O Pressure at the critical point +``PH`` O Physical hazard +``PMAX``, ``P_MAX``, ``P_max``, ``pmax`` Pa O Maximum pressure limit +``PRANDTL``, ``Prandtl`` O Prandtl number +``PTRIPLE``, ``P_TRIPLE``, ``p_triple``, ``ptriple`` Pa O Pressure at the triple point (pure only) +``P_MIN``, ``P_min`` Pa O Minimum pressure limit +``RHOCRIT``, ``RHOMASS_CRITICAL``, ``rhocrit``, ``rhomass_critical`` kg/m^3 O Mass density at critical point +``RHOMASS_REDUCING``, ``rhomass_reducing`` kg/m^3 O Mass density at reducing point +``RHOMOLAR_CRITICAL``, ``rhomolar_critical`` mol/m^3 O Molar density at critical point +``RHOMOLAR_REDUCING``, ``rhomolar_reducing`` mol/m^3 O Molar density at reducing point +``SURFACE_TENSION``, ``surface_tension`` N/m O Surface tension +``TCRIT``, ``T_CRITICAL``, ``T_critical``, ``Tcrit`` K O Temperature at the critical point +``TMAX``, ``T_MAX``, ``T_max``, ``Tmax`` K O Maximum temperature limit +``TMIN``, ``T_MIN``, ``T_min``, ``Tmin`` K O Minimum temperature limit +``TTRIPLE``, ``T_TRIPLE``, ``T_triple``, ``Ttriple`` K O Temperature at the triple point +``T_REDUCING``, ``T_reducing`` K O Temperature at the reducing point +``V``, ``VISCOSITY``, ``viscosity`` Pa s O Viscosity +``Z`` O Compressibility factor +====================================================================================== ======= ============ ========================================================= From 5c2bc9da008629dc5b63c0cedf5cec962b890a99 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 24 Sep 2014 18:52:22 +0200 Subject: [PATCH 20/54] Fixed Abstract State keyed_output function docs Signed-off-by: Ian Bell --- wrappers/Python/CoolProp/AbstractState.pyx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/Python/CoolProp/AbstractState.pyx b/wrappers/Python/CoolProp/AbstractState.pyx index e2c5b25f..2555bbd3 100644 --- a/wrappers/Python/CoolProp/AbstractState.pyx +++ b/wrappers/Python/CoolProp/AbstractState.pyx @@ -42,7 +42,7 @@ cdef class AbstractState: ## ---------------------------------------- cpdef double keyed_output(self, parameters iOutput) except *: - """ Update :cpapi:`CoolProp::AbstractState::update` """ + """ Update :cpapi:`CoolProp::AbstractState::keyed_output(parameters key)` """ return self.thisptr.keyed_output(iOutput) cpdef double T(self) except *: From e939e826578c77b2c68b150462fd6015592d7033 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 00:32:11 +0200 Subject: [PATCH 21/54] Migrate buildbot docs to sphinx. Closes https://github.com/CoolProp/CoolProp/issues/156 Signed-off-by: Ian Bell --- Web/develop/buildbot.rst | 51 ++++++++++++++++++++++++++++++++++++++++ dev/buildbot/docs.md | 50 --------------------------------------- 2 files changed, 51 insertions(+), 50 deletions(-) delete mode 100644 dev/buildbot/docs.md diff --git a/Web/develop/buildbot.rst b/Web/develop/buildbot.rst index dbacc41c..7cc4d026 100644 --- a/Web/develop/buildbot.rst +++ b/Web/develop/buildbot.rst @@ -3,6 +3,57 @@ Buildbot ******** +Buildbot masters and slaves +=========================== + +Master +------ + +From the root of the git checkout (this will use the master.cfg from CoolProp) +``` +pip install buildbot +cd dev/buildbot +buildbot create-master master +buildbot start master +``` + +The file ``buildbot-private.py`` (which is a python module with the passwords for the slaves as well as the buildbot website), should also be placed in the master folder next to master.cfg. Alternatively, you can put the ``buildbot_private.py`` in another folder on the master's computer and make a soft-link in the master folder to point to the buildbot_private.py file. + +If you want to completely restart the master, you can do +``` +buildbot restart master +``` +but usually a +``` +buildbot reconfig master +``` +will do the job since it will just reparse the configuration file without signing you out of the server + +To ensure that the buildbot server stays online, you can make a script with the contents +``` +buildbot start /path/to/master_folder +``` +and add it to a cron job + +Slaves +------ + +To start a slave connected to a buildbot master at IP address 10.0.0.2 (default for host for VirtualBox), with a slave named ``example-slave`` and passsword ``pass``, run the command + +``` +buildslave create-slave slave 10.0.0.2:9989 example-slave pass +buildslave start slave +``` + +If the master is somewhere else, just change the IP address. As of Sept, 2014, the master was at www.coolprop.dreamhosters.com. The buildbot_private.py on the master holds the required passwords. + +On linux, you can add the following lines to the end of your ``~/.profile`` file (similar ideas apply on other platforms) to autostart the slave when the user logs in: + +``` +# Connect to the buildbot master +buildslave start ~/slave +``` + Setting MIME type handler ========================= diff --git a/dev/buildbot/docs.md b/dev/buildbot/docs.md deleted file mode 100644 index f2ff45f9..00000000 --- a/dev/buildbot/docs.md +++ /dev/null @@ -1,50 +0,0 @@ -Buildbot masters and slaves -=========================== - -Master ------- - -From the root of the git checkout (this will use the master.cfg from CoolProp) -``` -pip install buildbot -cd dev/buildbot -buildbot create-master master -buildbot start master -``` - -The file ``buildbot-private.py`` (which is a python module with the passwords for the slaves as well as the buildbot website), should also be placed in the master folder next to master.cfg. Alternatively, you can put the ``buildbot_private.py`` in another folder on the master's computer and make a soft-link in the master folder to point to the buildbot_private.py file. - -If you want to completely restart the master, you can do -``` -buildbot restart master -``` -but usually a -``` -buildbot reconfig master -``` -will do the job since it will just reparse the configuration file without signing you out of the server - -To ensure that the buildbot server stays online, you can make a script with the contents -``` -buildbot start /path/to/master_folder -``` -and add it to a cron job - -Slaves ------- - -To start a slave connected to a buildbot master at IP address 10.0.0.2 (default for host for VirtualBox), with a slave named ``example-slave`` and passsword ``pass``, run the command - -``` -buildslave create-slave slave 10.0.0.2:9989 example-slave pass -buildslave start slave -``` - -If the master is somewhere else, just change the IP address. - -On linux, you can add the following lines to the end of your ``~/.profile`` file (similar ideas apply on other platforms) to autostart the slave when the user logs in: - -``` -# Connect to the buildbot master -buildslave start ~/slave -``` From 9a558f49694e24510a9df15bef59039738890725 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 01:23:30 +0200 Subject: [PATCH 22/54] Tidied up buildbot docs Signed-off-by: Ian Bell --- Web/develop/buildbot.rst | 55 +++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/Web/develop/buildbot.rst b/Web/develop/buildbot.rst index 7cc4d026..6bb64d4b 100644 --- a/Web/develop/buildbot.rst +++ b/Web/develop/buildbot.rst @@ -9,50 +9,47 @@ Buildbot masters and slaves Master ------ -From the root of the git checkout (this will use the master.cfg from CoolProp) -``` -pip install buildbot -cd dev/buildbot -buildbot create-master master -buildbot start master -``` +From the root of the git checkout (this will use the master.cfg from CoolProp):: + + pip install buildbot + cd dev/buildbot + buildbot create-master master + buildbot start master The file ``buildbot-private.py`` (which is a python module with the passwords for the slaves as well as the buildbot website), should also be placed in the master folder next to master.cfg. Alternatively, you can put the ``buildbot_private.py`` in another folder on the master's computer and make a soft-link in the master folder to point to the buildbot_private.py file. -If you want to completely restart the master, you can do -``` -buildbot restart master -``` -but usually a -``` -buildbot reconfig master -``` +If you want to completely restart the master, you can do:: + + buildbot restart master + +but usually a:: + + buildbot reconfig master + will do the job since it will just reparse the configuration file without signing you out of the server -To ensure that the buildbot server stays online, you can make a script with the contents -``` -buildbot start /path/to/master_folder -``` +To ensure that the buildbot server stays online, you can make a script with the contents:: + + buildbot start /path/to/master_folder + and add it to a cron job Slaves ------ -To start a slave connected to a buildbot master at IP address 10.0.0.2 (default for host for VirtualBox), with a slave named ``example-slave`` and passsword ``pass``, run the command +To start a slave connected to a buildbot master at IP address 10.0.0.2 (default for host for VirtualBox), with a slave named ``example-slave`` and passsword ``pass``, run the command:: + + buildslave create-slave slave 10.0.0.2:9989 example-slave pass + buildslave start slave -``` -buildslave create-slave slave 10.0.0.2:9989 example-slave pass -buildslave start slave -``` If the master is somewhere else, just change the IP address. As of Sept, 2014, the master was at www.coolprop.dreamhosters.com. The buildbot_private.py on the master holds the required passwords. -On linux, you can add the following lines to the end of your ``~/.profile`` file (similar ideas apply on other platforms) to autostart the slave when the user logs in: +On linux, you can add the following lines to the end of your ``~/.profile`` file (similar ideas apply on other platforms) to autostart the slave when the user logs in:: + + # Connect to the buildbot master + buildslave start ~/slave -``` -# Connect to the buildbot master -buildslave start ~/slave -``` Setting MIME type handler ========================= From d684fa40f60dff5597eea13cb28c2825879972f9 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 13:18:52 +0200 Subject: [PATCH 23/54] Added output table for mixture pair parameters Some work on cleaning up is still needed Closes https://github.com/CoolProp/CoolProp/issues/152 Signed-off-by: Ian Bell --- Web/conf.py | 3 +++ Web/fluid_properties/Mixtures.rst | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Web/conf.py b/Web/conf.py index 168d5853..faf789b3 100644 --- a/Web/conf.py +++ b/Web/conf.py @@ -20,6 +20,9 @@ except ImportError: print('Unable to import sphinxcontrib.doxylink; try to run "pip install sphinxcontrib-doxylink"') +import subprocess +subprocess.call('python make_binary_pairs_table.py', cwd = 'fluid_properties') + #~ # If your extensions are in another directory, add it here. If the directory #~ # is relative to the documentation root, use os.path.abspath to make it #~ # absolute, like shown here. diff --git a/Web/fluid_properties/Mixtures.rst b/Web/fluid_properties/Mixtures.rst index 9c278b83..3d6ace0f 100644 --- a/Web/fluid_properties/Mixtures.rst +++ b/Web/fluid_properties/Mixtures.rst @@ -14,12 +14,16 @@ The only types of inputs that are allowed for mixtures right now are - Temperature/quality - Temperature/pressure +.. csv-table:: All binary pairs included in CoolProp + :header-rows: 1 + :file: mixture_binary_pairs.csv + .. plot:: import CoolProp import matplotlib.pyplot as plt - HEOS = CoolProp.AbstractState('HEOS','R32&R134a') + HEOS = CoolProp.AbstractState('HEOS','Methane&Ethane') for x0 in [0.02, 0.2, 0.4, 0.6, 0.8, 0.98]: HEOS.set_mole_fractions([x0, 1 - x0]) try: @@ -27,8 +31,16 @@ The only types of inputs that are allowed for mixtures right now are except ValueError as VE: print(VE) PE = HEOS.get_phase_envelope_data() - plt.plot(PE.rhomolar_vap, PE.rhomolar_liq, 'o-') + plt.plot(PE.T, PE.p, 'o-') plt.xlabel('Temperature [K]') plt.ylabel('Pressure [Pa]') - plt.tight_layout() \ No newline at end of file + plt.tight_layout() + + +References +---------- + +.. bibliography:: CoolPropBibTeXLibrary.bib + :filter: docname in docnames + :style: unsrt \ No newline at end of file From 351c128f52eaac4a897f852ea0bc97c2e18ad6e7 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 13:34:01 +0200 Subject: [PATCH 24/54] Added docs for static library. Closes https://github.com/CoolProp/CoolProp/issues/155 Signed-off-by: Ian Bell --- Web/BuildCPDocs.bat | 2 +- Web/coolprop/wrappers/StaticLibrary/index.rst | 36 +++++++++++++++++++ Web/coolprop/wrappers/index.rst | 4 ++- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 Web/coolprop/wrappers/StaticLibrary/index.rst diff --git a/Web/BuildCPDocs.bat b/Web/BuildCPDocs.bat index db42b457..2c76430f 100644 --- a/Web/BuildCPDocs.bat +++ b/Web/BuildCPDocs.bat @@ -9,5 +9,5 @@ REM ~ pdflatex CoolPropdoc.tex REM ~ copy /Y CoolPropdoc.pdf ..\..\_static\ REM ~ cd ..\.. -sphinx-apidoc -T -f -o apidoc ../CoolProp +sphinx-apidoc -T -f -e -o apidoc C:\\Miniconda\\lib\\site-packages\\coolprop-5.0.0-py2.7-win-amd64.egg\\CoolProp mingw32-make html \ No newline at end of file diff --git a/Web/coolprop/wrappers/StaticLibrary/index.rst b/Web/coolprop/wrappers/StaticLibrary/index.rst new file mode 100644 index 00000000..a7ad8cdc --- /dev/null +++ b/Web/coolprop/wrappers/StaticLibrary/index.rst @@ -0,0 +1,36 @@ +.. _static_library: + +************** +Static Library +************** + +Static libraries can be used to compile all of CoolProp into one compilation unit, and then link that with user code. This can be advantageous as CoolProp only needs to be compiled once and fast compilation of the user-defined code is then possible. + +When writing your own C++ code, it is advised to compile CoolProp to a static library and then link CoolProp and your own code + +Pre-compiled Binaries +===================== +Pre-compiled release binaries can be downloaded from :sfdownloads:`static_library`. Development binaries coming from the buildbot server can be found at :bbbinaries:`static_library`. These static libraries are only useful if the compiler used to make the static library agrees with the static library that will be used to build your other code. So best to follow the below instructions to build your own static library. + +User-Compiled Binaries +====================== + +Common Requirements +------------------- +Compilation of the static library requires a few :ref:`common wrapper pre-requisites ` + +Compile +------- + +You can build the static library using:: + + # Check out the sources for CoolProp + git clone https://github.com/CoolProp/CoolProp --recursive + # Move into the folder you just created + cd CoolProp + # Make a build folder + mkdir -p build && cd build + # Build the makefile using CMake + cmake .. -DCOOLPROP_STATIC_LIBRARY=ON + # Make the static library + make VERBOSE=1 diff --git a/Web/coolprop/wrappers/index.rst b/Web/coolprop/wrappers/index.rst index 9a3cba8e..3c792ea8 100644 --- a/Web/coolprop/wrappers/index.rst +++ b/Web/coolprop/wrappers/index.rst @@ -9,8 +9,9 @@ CoolProp at its core is a C++ library, but it can be of interest to use this cod Downloads and instructions for each wrapper are included in the page for the wrapper given in the table below. ======================================= =========================== ======================================= -Language Operating Systems Notes +Target Operating Systems Notes ======================================= =========================== ======================================= +:ref:`Static library ` linux, OSX, win :ref:`Python ` linux, OSX, win Wrapper is Cython based :ref:`Octave ` linux, OSX, win Wrapper is SWIG based :ref:`C# ` linux, OSX, win Wrapper is SWIG based @@ -90,3 +91,4 @@ OSX should come with a c++ compiler (clang), for git and cmake your best bet is LibreOffice/index.rst Excel/index.rst Maple/index.rst + StaticLibrary/index.rst From b06a8f8b0e682c5114a235970bbabfe4e5d22f0d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 13:39:55 +0200 Subject: [PATCH 25/54] Oops - add the mixture binary pair table builder back Signed-off-by: Ian Bell --- .../make_binary_pairs_table.py | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Web/fluid_properties/make_binary_pairs_table.py diff --git a/Web/fluid_properties/make_binary_pairs_table.py b/Web/fluid_properties/make_binary_pairs_table.py new file mode 100644 index 00000000..a64df8e6 --- /dev/null +++ b/Web/fluid_properties/make_binary_pairs_table.py @@ -0,0 +1,34 @@ +import CoolProp + +class Dossier: + def __init__(self): + self.data = {} + def add(self, key, value): + if key not in self.data: + self.data[key] = [] + self.data[key].append(value) + +d = Dossier() + +pairs = CoolProp.get('mixture_binary_pairs_list') +for pair in pairs.split(','): + CAS1, CAS2 = pair.split('&') + d.add('CAS1', CAS1) + d.add('CAS2', CAS2) + for key in ['name1','name2','F','function','BibTeX','xi','zeta','betaT','betaV','gammaT','gammaV']: + try: + d.add(key, CoolProp.CoolProp.get_mixture_binary_pair_data(CAS1, CAS2, key)) + except BaseException as BE: + d.add(key, '') + +import pandas +df = pandas.DataFrame(d.data) +df = df.sort(['BibTeX','name1'], ascending = [0, 1]) + +CoolProp.copy_BibTeX_library() + +with open('mixture_binary_pairs.csv','w') as fp: + fp.write('Ref.,Name1,Name2,function,F,xi,zeta,betaT,betaV,gammaT,gammaV\n') + for index, row in df.iterrows(): + text = ','.join([':cite:`'+row['BibTeX']+'`', row['name1'], row['name2'], row['function'], row['F'], row['xi'], row['zeta'], row['betaT'], row['betaV'], row['gammaT'], row['gammaV']])+'\n' + fp.write(text) \ No newline at end of file From 1a82468c688c4c8445b7cab22933711e28733c22 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 13:43:29 +0200 Subject: [PATCH 26/54] Expose mixture binary pair data all the way through python Signed-off-by: Ian Bell --- include/CoolPropLib.h | 5 +++ include/CoolPropTools.h | 6 +++- src/Backends/Helmholtz/MixtureParameters.cpp | 32 ++++++++++++++++++++ src/Backends/Helmholtz/MixtureParameters.h | 8 +++-- wrappers/Python/CoolProp/CoolProp.pxd | 4 +++ wrappers/Python/CoolProp/CoolProp.pyx | 5 ++- wrappers/Python/setup.py | 2 +- 7 files changed, 57 insertions(+), 5 deletions(-) diff --git a/include/CoolPropLib.h b/include/CoolPropLib.h index 5aeb8cad..e4978549 100644 --- a/include/CoolPropLib.h +++ b/include/CoolPropLib.h @@ -69,6 +69,11 @@ * \sa \ref CoolProp::get_parameter_information_string */ EXPORT_CODE long CONVENTION get_parameter_information_string(const char *key, char *Output); + /** + * \overload + * \sa \ref CoolProp::get_mixture_binary_pair_data + */ + EXPORT_CODE long CONVENTION get_mixture_binary_pair_data(const char *CAS1, const char *CAS2, const char *key); /** * \overload * \sa \ref CoolProp::get_fluid_param_string diff --git a/include/CoolPropTools.h b/include/CoolPropTools.h index 5cd4ed2c..88fc671a 100644 --- a/include/CoolPropTools.h +++ b/include/CoolPropTools.h @@ -251,7 +251,7 @@ throw CoolProp::ValueError(format("%s could not be matched in get_string",s.c_str())); } }; - double get_number(std::string s) + double get_double(std::string s) { if (numbers.find(s) != numbers.end()){ return numbers[s]; @@ -260,6 +260,10 @@ throw CoolProp::ValueError(format("%s could not be matched in get_number",s.c_str())); } }; + double get_number(std::string s) + { + return get_double(s); + }; std::vector get_double_vector(std::string s) { if (double_vectors.find(s) != double_vectors.end()){ diff --git a/src/Backends/Helmholtz/MixtureParameters.cpp b/src/Backends/Helmholtz/MixtureParameters.cpp index 11d172fc..874ed222 100644 --- a/src/Backends/Helmholtz/MixtureParameters.cpp +++ b/src/Backends/Helmholtz/MixtureParameters.cpp @@ -102,6 +102,38 @@ std::string get_csv_mixture_binary_pairs() return strjoin(out, ","); } +std::string get_mixture_binary_pair_data(const std::string &CAS1, const std::string &CAS2, const std::string &key) +{ + // Find pair + std::vector CAS; + CAS.push_back(CAS1); + CAS.push_back(CAS2); + + if (mixturebinarypairlibrary.binary_pair_map.find(CAS) != mixturebinarypairlibrary.binary_pair_map.end()){ + std::vector &v = mixturebinarypairlibrary.binary_pair_map[CAS]; + try{ + if (key == "name1"){ return v[0].get_string("name1"); } + else if (key == "name2"){ return v[0].get_string("name2"); } + else if (key == "BibTeX"){ return v[0].get_string("BibTeX"); } + else if (key == "F"){ return v[0].get_string("F"); } + else if (key == "function"){ return v[0].get_string("function"); } + else if (key == "type"){ return v[0].get_string("type"); } + else if (key == "xi"){ return format("%0.16g", v[0].get_double("xi")); } + else if (key == "zeta"){ return format("%0.16g", v[0].get_double("zeta")); } + else if (key == "gammaT"){ return format("%0.16g", v[0].get_double("gammaT")); } + else if (key == "gammaV"){ return format("%0.16g", v[0].get_double("gammaV")); } + else if (key == "betaT"){ return format("%0.16g", v[0].get_double("betaT")); } + else if (key == "betaV"){ return format("%0.16g", v[0].get_double("betaV")); } + else{ } + } + catch(std::exception &e){ } + throw ValueError(format("Could not match the parameter [%s] for the binary pair [%s,%s] - for now this is an error.", key.c_str(), CAS1.c_str(), CAS2.c_str())); + } + else{ + throw ValueError(format("Could not match the binary pair [%s,%s] - for now this is an error.",CAS1.c_str(), CAS2.c_str())); + } +} + std::string get_reducing_function_name(std::string CAS1, std::string CAS2) { std::vector CAS; diff --git a/src/Backends/Helmholtz/MixtureParameters.h b/src/Backends/Helmholtz/MixtureParameters.h index 44a6d111..fdb48480 100644 --- a/src/Backends/Helmholtz/MixtureParameters.h +++ b/src/Backends/Helmholtz/MixtureParameters.h @@ -5,13 +5,17 @@ namespace CoolProp{ -/** \brief Get a comma-separated list of CAS code pairs separated by commas +/** \brief Get a comma-separated list of CAS code pairs * * Each of the pairs will be CAS1&CAS2 ("&" delimited) */ std::string get_csv_mixture_binary_pairs(); -std::string get_mixing_pair_info(std::string CAS1, std::string CAS2, std::string key); +/** \brief Get a string for the given binary pair + * + * + */ +std::string get_mixture_binary_pair_data(const std::string &CAS1, const std::string &CAS2, const std::string ¶m); class MixtureParameters { diff --git a/wrappers/Python/CoolProp/CoolProp.pxd b/wrappers/Python/CoolProp/CoolProp.pxd index 3ffb0e36..70294aba 100644 --- a/wrappers/Python/CoolProp/CoolProp.pxd +++ b/wrappers/Python/CoolProp/CoolProp.pxd @@ -15,6 +15,9 @@ cdef extern from "Python.h": cdef extern from "CoolPropTools.h" namespace "CoolProp": bint _ValidNumber "ValidNumber"(double) +cdef extern from "Backends/Helmholtz/MixtureParameters.h" namespace "CoolProp": + string _get_mixture_binary_pair_data "CoolProp::get_mixture_binary_pair_data"(const string CAS1, const string CAS2, const string key) except + + cdef extern from "DataStructures.h" namespace "CoolProp": string _get_parameter_information "CoolProp::get_parameter_information"(int, string) except + int _get_parameter_index "CoolProp::get_parameter_index"(string) except + @@ -34,6 +37,7 @@ cdef extern from "CoolProp.h" namespace "CoolProp": string _get_fluid_param_string "CoolProp::get_fluid_param_string"(string ParamName, string FluidName) #long _get_parameter_index "CoolProp::get_parameter_index" (string param) + # Convenience functions # int _IsFluidType "IsFluidType"(char* Ref, char* Type) # string _get_BibTeXKey "CoolProp::get_BibTeXKey"(string Ref, string key) diff --git a/wrappers/Python/CoolProp/CoolProp.pyx b/wrappers/Python/CoolProp/CoolProp.pyx index 21701da0..0dedc70a 100644 --- a/wrappers/Python/CoolProp/CoolProp.pyx +++ b/wrappers/Python/CoolProp/CoolProp.pyx @@ -124,9 +124,12 @@ include "AbstractState.pyx" cpdef int get_parameter_index(string key): return _get_parameter_index(key) - + cpdef string get_parameter_information(int key, string info): return _get_parameter_information(key, info) + +cpdef string get_mixture_binary_pair_data(CAS1, CAS2, key) except *: + return _get_mixture_binary_pair_data(CAS1, CAS2, key) cpdef get_global_param_string(string param): return _get_global_param_string(param) diff --git a/wrappers/Python/setup.py b/wrappers/Python/setup.py index ac8744de..67773e24 100644 --- a/wrappers/Python/setup.py +++ b/wrappers/Python/setup.py @@ -106,7 +106,7 @@ if __name__=='__main__': # Set variables for C++ sources and include directories sources = find_cpp_sources(os.path.join(CProot,'src'), '*.cpp') - include_dirs = [os.path.join(CProot, 'include'), os.path.join(CProot, 'externals', 'Eigen')] + include_dirs = [os.path.join(CProot, 'include'), os.path.join(CProot, 'src'), os.path.join(CProot, 'externals', 'Eigen')] ## If the file is run directly without any parameters, clean, build and install if len(sys.argv)==1: From a6621fa0d3361aa0c3bd379a953316bf5faf659d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 14:16:09 +0200 Subject: [PATCH 27/54] Subprocess call for making binary table uses shell=True Signed-off-by: Ian Bell --- Web/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/conf.py b/Web/conf.py index faf789b3..0816a38a 100644 --- a/Web/conf.py +++ b/Web/conf.py @@ -21,7 +21,7 @@ except ImportError: print('Unable to import sphinxcontrib.doxylink; try to run "pip install sphinxcontrib-doxylink"') import subprocess -subprocess.call('python make_binary_pairs_table.py', cwd = 'fluid_properties') +subprocess.call('python make_binary_pairs_table.py', cwd = 'fluid_properties', shell = True) #~ # If your extensions are in another directory, add it here. If the directory #~ # is relative to the documentation root, use os.path.abspath to make it From 524dd15ea333d1d3028696ffa28d7c708d79377d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 14:59:54 +0200 Subject: [PATCH 28/54] binary pair table uses normal bibtex file --- Web/fluid_properties/Mixtures.rst | 2 +- Web/fluid_properties/make_binary_pairs_table.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/Web/fluid_properties/Mixtures.rst b/Web/fluid_properties/Mixtures.rst index 3d6ace0f..6b154a99 100644 --- a/Web/fluid_properties/Mixtures.rst +++ b/Web/fluid_properties/Mixtures.rst @@ -41,6 +41,6 @@ The only types of inputs that are allowed for mixtures right now are References ---------- -.. bibliography:: CoolPropBibTeXLibrary.bib +.. bibliography:: ../../CoolPropBibTeXLibrary.bib :filter: docname in docnames :style: unsrt \ No newline at end of file diff --git a/Web/fluid_properties/make_binary_pairs_table.py b/Web/fluid_properties/make_binary_pairs_table.py index a64df8e6..b8f5cdea 100644 --- a/Web/fluid_properties/make_binary_pairs_table.py +++ b/Web/fluid_properties/make_binary_pairs_table.py @@ -25,8 +25,6 @@ import pandas df = pandas.DataFrame(d.data) df = df.sort(['BibTeX','name1'], ascending = [0, 1]) -CoolProp.copy_BibTeX_library() - with open('mixture_binary_pairs.csv','w') as fp: fp.write('Ref.,Name1,Name2,function,F,xi,zeta,betaT,betaV,gammaT,gammaV\n') for index, row in df.iterrows(): From 9486b1382724d9304374f3c2550827aecb8df83a Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 25 Sep 2014 15:17:00 +0200 Subject: [PATCH 29/54] Minor updates to mixture docs Signed-off-by: Ian Bell --- Web/fluid_properties/Mixtures.rst | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Web/fluid_properties/Mixtures.rst b/Web/fluid_properties/Mixtures.rst index 6b154a99..6abfa405 100644 --- a/Web/fluid_properties/Mixtures.rst +++ b/Web/fluid_properties/Mixtures.rst @@ -1,12 +1,18 @@ .. _mixtures: +.. contents:: :depth: 2 + ******** Mixtures ******** -Mixtures docs will go here when they are written. +Theoretical description +----------------------- +The mixture modeling used in CoolProp is based on the work of Kunz et al. :cite:`Kunz-BOOK-2007,Kunz-JCED-2012` and Lemmon :cite:`Lemmon-JPCRD-2000,Lemmon-JPCRD-2004,Lemmon-IJT-1999` -The treatment of mixtures in CoolProp as of v5 is quite rudimentary, though it will be improved in the very near future. +A mixture is composed of a number of components, and for each pair of components, it is necessary to have information for the excess Helmholtz energy term as well as the reducing function. See below for what binary pairs are included in CoolProp. + +The numerical methods required for mixtures are far more complicated than those for pure fluids, so the number of flash routines that are currently available are relatively small compared to pure fluids. The only types of inputs that are allowed for mixtures right now are @@ -14,10 +20,14 @@ The only types of inputs that are allowed for mixtures right now are - Temperature/quality - Temperature/pressure +Binary pairs +------------ .. csv-table:: All binary pairs included in CoolProp :header-rows: 1 :file: mixture_binary_pairs.csv +Phase Envelope +-------------- .. plot:: import CoolProp @@ -37,7 +47,6 @@ The only types of inputs that are allowed for mixtures right now are plt.ylabel('Pressure [Pa]') plt.tight_layout() - References ---------- From 2f67422591c7451e7bde967af3255d952569737a Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Fri, 26 Sep 2014 11:31:09 +0200 Subject: [PATCH 30/54] Changed Melinder coefficients, fixes #161 --- Web/fluid_properties/Incompressibles.rst | 10 +++++----- .../CPIncomp/MelinderFluids.py | 16 ++++++++-------- dev/incompressible_liquids/json/DEB.json | 4 ++-- dev/incompressible_liquids/json/HCB.json | 4 ++-- dev/incompressible_liquids/json/HCM.json | 4 ++-- dev/incompressible_liquids/json/HFE.json | 4 ++-- dev/incompressible_liquids/json/PMS1.json | 4 ++-- dev/incompressible_liquids/json/PMS2.json | 4 ++-- dev/incompressible_liquids/json/SAB.json | 4 ++-- dev/incompressible_liquids/json/TCO.json | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index 33ce3588..d7d92968 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -32,7 +32,7 @@ specific fluid. To get an overview over all the fits, there are also combined documents with all the :download:`pure fluids and all the aqueous solutions`. You can read more about these reports in a dedicated -:ref:`section` called :ref:`Fitting Reports` below. +:ref:`section` called :ref:`Fitting Reports`. All incompressible fluids have an arbitrary reference state for enthalpy and entropy. During initialisation, the reference state is defined as a temperature of 20 °C @@ -146,10 +146,10 @@ A file with all fitting reports for the incompressible fluids can be obtained from :download:`here`. These reports help you to get an overview over the different incompressible fluids included in CoolProp. The reports start with some basic information about -the fluid. There is the name by which it can be accessed through the -interface in the title "Fitting Report for *FluidName*" as well as a description -of what the fluid actually is, this could also be a trade name or a commonly -used non-scientific name. The next item tells you where we got the data from. This +the fluid. The fluid name used in CoolProp is in the title "Fitting Report for *FluidName*" +and there is also a description of what the fluid actually is. The latter +could also be a trade name or a commonly used non-scientific name. The next item +tells you where we got the data from. This would typically be a data sheet from a manufacturers homepage, some other software database, a scientific publication or experimental data. diff --git a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py index 9e150e7f..55a55946 100644 --- a/dev/incompressible_liquids/CPIncomp/MelinderFluids.py +++ b/dev/incompressible_liquids/CPIncomp/MelinderFluids.py @@ -30,7 +30,7 @@ class DEBLiquidClass(CoefficientData,PureData): _,_,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([0.000189132,-2.06364e-07])) + _,_,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 @@ -64,7 +64,7 @@ class HCMLiquidClass(CoefficientData,PureData): _,_,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([0.000153716,-1.51212e-07])) + _,_,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 @@ -98,7 +98,7 @@ class HFELiquidClass(CoefficientData,PureData): _,_,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-05,-8.33333e-08])) + _,_,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 @@ -132,7 +132,7 @@ class PMS1LiquidClass(CoefficientData,PureData): _,_,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([0.000207526,-2.84167e-07])) + _,_,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 @@ -166,7 +166,7 @@ class PMS2LiquidClass(CoefficientData,PureData): _,_,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([0.000172305,-2.11212e-07])) + _,_,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 @@ -200,7 +200,7 @@ class SABLiquidClass(CoefficientData,PureData): _,_,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([0.000208374,-2.61667e-07])) + _,_,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 @@ -234,7 +234,7 @@ class HCBLiquidClass(CoefficientData,PureData): _,_,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([0.000203186,-2.3869e-07])) + _,_,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 @@ -268,7 +268,7 @@ class TCOLiquidClass(CoefficientData,PureData): _,_,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([0.000174156,-1.85052e-07])) + _,_,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 diff --git a/dev/incompressible_liquids/json/DEB.json b/dev/incompressible_liquids/json/DEB.json index 414a7d4e..d88fdc3f 100644 --- a/dev/incompressible_liquids/json/DEB.json +++ b/dev/incompressible_liquids/json/DEB.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 1.891320e-04 + 1.891320e-01 ], [ - -2.063640e-07 + -2.063640e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/HCB.json b/dev/incompressible_liquids/json/HCB.json index 5abfd214..0fdf69aa 100644 --- a/dev/incompressible_liquids/json/HCB.json +++ b/dev/incompressible_liquids/json/HCB.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 2.031860e-04 + 2.031860e-01 ], [ - -2.386900e-07 + -2.386900e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/HCM.json b/dev/incompressible_liquids/json/HCM.json index c12209a2..9804f709 100644 --- a/dev/incompressible_liquids/json/HCM.json +++ b/dev/incompressible_liquids/json/HCM.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 1.537160e-04 + 1.537160e-01 ], [ - -1.512120e-07 + -1.512120e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/HFE.json b/dev/incompressible_liquids/json/HFE.json index 7aa16acb..15ebae77 100644 --- a/dev/incompressible_liquids/json/HFE.json +++ b/dev/incompressible_liquids/json/HFE.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 9.929580e-05 + 9.929580e-01 ], [ - -8.333330e-08 + -8.333330e-05 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/PMS1.json b/dev/incompressible_liquids/json/PMS1.json index a2314b8d..0b7f0815 100644 --- a/dev/incompressible_liquids/json/PMS1.json +++ b/dev/incompressible_liquids/json/PMS1.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 2.075260e-04 + 2.075260e-01 ], [ - -2.841670e-07 + -2.841670e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/PMS2.json b/dev/incompressible_liquids/json/PMS2.json index c16cad12..3a2e933c 100644 --- a/dev/incompressible_liquids/json/PMS2.json +++ b/dev/incompressible_liquids/json/PMS2.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 1.723050e-04 + 1.723050e-01 ], [ - -2.112120e-07 + -2.112120e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/SAB.json b/dev/incompressible_liquids/json/SAB.json index afb767f6..4f21395c 100644 --- a/dev/incompressible_liquids/json/SAB.json +++ b/dev/incompressible_liquids/json/SAB.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 2.083740e-04 + 2.083740e-01 ], [ - -2.616670e-07 + -2.616670e-04 ] ], "type": "polynomial" diff --git a/dev/incompressible_liquids/json/TCO.json b/dev/incompressible_liquids/json/TCO.json index 86f8ff6f..1e16142c 100644 --- a/dev/incompressible_liquids/json/TCO.json +++ b/dev/incompressible_liquids/json/TCO.json @@ -10,10 +10,10 @@ "conductivity": { "coeffs": [ [ - 1.741560e-04 + 1.741560e-01 ], [ - -1.850520e-07 + -1.850520e-04 ] ], "type": "polynomial" From b5ba07be78f8a41bc3141755ee1017a5f57767ec Mon Sep 17 00:00:00 2001 From: Jorrit Wronski Date: Fri, 26 Sep 2014 18:32:24 +0200 Subject: [PATCH 31/54] Reworked the documentation generator scripts and the binary mixture table --- Web/conf.py | 11 ++- Web/fluid_properties/Incompressibles.rst | 20 +++--- Web/fluid_properties/Mixtures.rst | 14 +++- .../make_binary_pairs_table.py | 32 --------- Web/scripts/CPWeb/BibtexTools.py | 54 +++++++++++++++ Web/scripts/CPWeb/UnicodeTools.py | 69 +++++++++++++++++++ Web/scripts/CPWeb/__init__.py | 21 ++++++ Web/scripts/fluid_properties.Mixtures.py | 68 ++++++++++++++++++ 8 files changed, 244 insertions(+), 45 deletions(-) delete mode 100644 Web/fluid_properties/make_binary_pairs_table.py create mode 100644 Web/scripts/CPWeb/BibtexTools.py create mode 100644 Web/scripts/CPWeb/UnicodeTools.py create mode 100644 Web/scripts/CPWeb/__init__.py create mode 100644 Web/scripts/fluid_properties.Mixtures.py diff --git a/Web/conf.py b/Web/conf.py index 0816a38a..a02e9706 100644 --- a/Web/conf.py +++ b/Web/conf.py @@ -13,6 +13,7 @@ # serve to show the default. import sys, os + sys.path.insert(0, os.path.abspath('_ext')) try: import sphinxcontrib.doxylink @@ -20,8 +21,16 @@ except ImportError: print('Unable to import sphinxcontrib.doxylink; try to run "pip install sphinxcontrib-doxylink"') + +import glob import subprocess -subprocess.call('python make_binary_pairs_table.py', cwd = 'fluid_properties', shell = True) + +# This part finds all scripts and runs them +scripts = glob.glob(os.path.join('scripts','*.py')) +for script in scripts: + subprocess.call('python {0}'.format(os.path.basename(script)), cwd='scripts', shell=True) + + #~ # If your extensions are in another directory, add it here. If the directory #~ # is relative to the documentation root, use os.path.abspath to make it diff --git a/Web/fluid_properties/Incompressibles.rst b/Web/fluid_properties/Incompressibles.rst index d7d92968..af66c76a 100644 --- a/Web/fluid_properties/Incompressibles.rst +++ b/Web/fluid_properties/Incompressibles.rst @@ -66,7 +66,7 @@ internally, which makes this combination by far the fastest. However, also the other inputs should be fast compared to the full Helmholtz-based EOS implemented for then compressible fluids. -A call to the top-level function ``PropsSI`` can provide : temperature, pressure, +A call to the top-level function ``PropsSI`` can provide: temperature, pressure, density, heat capacity, internal energy, enthalpy, entropy, viscosity and thermal conductivity. Hence, the available output keys are: ``T``, ``P``, ``D``, ``C``, ``U``, ``H``, ``S``, ``V``, ``L``, ``Tmin`` and ``Tmax``. @@ -104,7 +104,7 @@ composition notation. Depending on your fluid, you have to supply either the :ref:`mass fraction` or the :ref:`volume fraction` as additional parameter. This is done via the fluid name by appending a dash and the fraction of the substance other than water. The fraction notation can be in the -form of percent, ``LiBr-23%``, or as a fraction ``LiBr[0.23]``, which +form of percent, ``LiBr-23%``, or as a fraction, ``LiBr[0.23]``, which corresponds to the new mixture syntax in CoolProp5. .. In addition to the properties available for the pure fluids (``D``, ``C``, @@ -147,10 +147,10 @@ from :download:`here` of the reports side by side. -If all data is available, there is a graphs for each of the basic quantities +If all data are available, there is a graph for each of the basic quantities: density :math:`\rho`, specific heat capacity :math:`c`, thermal conductivity :math:`\lambda`, dynamic viscosity :math:`\mu`, saturation pressure :math:`p_\text{sat}`, and freezing temperature :math:`T_\text{freeze}`. These graphs show @@ -190,14 +190,14 @@ properties of incompressible fluids in CoolProp: Only the last two are suitable for mixtures with the input parameter :math:`x` denoting the fraction of component other than water. Following the works of -Melinder :cite:`Melinder2010` and Skovrup :cite:`Skovrup2013`, the exponents are +Melinder :cite:`Melinder2010` and Skovrup :cite:`Skovrup2013`, the exponents for the polynomials are arranged in a triangular matrix to avoid overfitting. These conditions satisfy :math:`0 \leq i \leq n`, :math:`0 \leq j \leq m` and :math:`i + j \leq \max(n,m)`. It is only for the freezing temperature calculation that the implemented procedures differ from what is presented in Melinder's book :cite:`Melinder2010`. Freezing temperature is only a function of concentration -and the dependency on the fluid temperature has been removed. For mixtures, the -default values for :math:`m=5` and :math:`n=3` are chosen. +and the dependency on the fluid temperature has been removed. For mixtures, +:math:`m=5` and :math:`n=3` are assigned as default values. Omitting the composition term with :math:`n=0` yields the pure fluid formulations for which we selected :math:`l=1` and :math:`m=4`. @@ -280,7 +280,7 @@ manufactures, two specific publications provided a lot of data used for the incompressible fluids: Åke Melinder's book *Properties of Secondary Working Fluids for Indirect Systems* :cite:`Melinder2010` has inspired both, the work on pure fluids and aqueous solutions. The second major source of inspiration is the -`SecCool software `_ +`SecCool `_ :cite:`Skovrup2013` software, which contains data compiled by Morten Juel Skovrup. It is provided free of charge by his employer `IPU `_. @@ -297,7 +297,7 @@ There are also a number of water-based mixtures implemented in CoolProp. Most of are secondary heat transfer fluids, but there are also aqueous solutions of ammonia :cite:`Melinder2010`, :download:`MAM<../_static/fluid_properties/incompressible/report/MAM_fitreport.pdf>`, and lithium bromide :cite:`Patek2006`, :download:`LiBr<../_static/fluid_properties/incompressible/report/LiBr_fitreport.pdf>`, -which can be used to calculated absorption chillers. +which can be used to model absorption chillers. .. _MassMix: diff --git a/Web/fluid_properties/Mixtures.rst b/Web/fluid_properties/Mixtures.rst index 6abfa405..6b3b352c 100644 --- a/Web/fluid_properties/Mixtures.rst +++ b/Web/fluid_properties/Mixtures.rst @@ -20,11 +20,21 @@ The only types of inputs that are allowed for mixtures right now are - Temperature/quality - Temperature/pressure +.. Used in Python script later on +.. role:: raw-html(raw) + :format: html + Binary pairs ------------ + +.. note:: + Please hover the mouse pointer over the coefficients to get the full accuracy + for the listed coefficients. You can also get more information on references + that are not in bibliography. + .. csv-table:: All binary pairs included in CoolProp :header-rows: 1 - :file: mixture_binary_pairs.csv + :file: mixture_binary_pairs.csv Phase Envelope -------------- @@ -46,7 +56,7 @@ Phase Envelope plt.xlabel('Temperature [K]') plt.ylabel('Pressure [Pa]') plt.tight_layout() - + References ---------- diff --git a/Web/fluid_properties/make_binary_pairs_table.py b/Web/fluid_properties/make_binary_pairs_table.py deleted file mode 100644 index b8f5cdea..00000000 --- a/Web/fluid_properties/make_binary_pairs_table.py +++ /dev/null @@ -1,32 +0,0 @@ -import CoolProp - -class Dossier: - def __init__(self): - self.data = {} - def add(self, key, value): - if key not in self.data: - self.data[key] = [] - self.data[key].append(value) - -d = Dossier() - -pairs = CoolProp.get('mixture_binary_pairs_list') -for pair in pairs.split(','): - CAS1, CAS2 = pair.split('&') - d.add('CAS1', CAS1) - d.add('CAS2', CAS2) - for key in ['name1','name2','F','function','BibTeX','xi','zeta','betaT','betaV','gammaT','gammaV']: - try: - d.add(key, CoolProp.CoolProp.get_mixture_binary_pair_data(CAS1, CAS2, key)) - except BaseException as BE: - d.add(key, '') - -import pandas -df = pandas.DataFrame(d.data) -df = df.sort(['BibTeX','name1'], ascending = [0, 1]) - -with open('mixture_binary_pairs.csv','w') as fp: - fp.write('Ref.,Name1,Name2,function,F,xi,zeta,betaT,betaV,gammaT,gammaV\n') - for index, row in df.iterrows(): - text = ','.join([':cite:`'+row['BibTeX']+'`', row['name1'], row['name2'], row['function'], row['F'], row['xi'], row['zeta'], row['betaT'], row['betaV'], row['gammaT'], row['gammaV']])+'\n' - fp.write(text) \ No newline at end of file diff --git a/Web/scripts/CPWeb/BibtexTools.py b/Web/scripts/CPWeb/BibtexTools.py new file mode 100644 index 00000000..0e09bb17 --- /dev/null +++ b/Web/scripts/CPWeb/BibtexTools.py @@ -0,0 +1,54 @@ +''' +Created on 26 Sep 2014 + +@author: jowr +''' +import os +from CoolProp.BibtexParser import BibTeXerClass + +def getPath(filename, search=True): + # Path to root + coolprop_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),'..','..')) + # Test for file + fname = filename + if os.path.exists(fname): return os.path.abspath(fname) + # Test relative to this file + fname = os.path.join(os.path.dirname(__file__),filename) + if os.path.exists(fname): return os.path.abspath(fname) + # Test relative to root notation + fname = os.path.join(coolprop_dir,filename) + if os.path.exists(fname): return os.path.abspath(fname) + # Search in root tree + fname = os.path.basename(filename) + if search: + result = [] + for root, dirs, files in os.walk(coolprop_dir): + if fname in files: + result.append(os.path.join(root, fname)) + if len(result)==1: + return os.path.abspath(result[0]) + elif len(result)>1: + print "Found multiple files with the name {0}. Try to specify the path as well.".format(fname) + print result + return os.path.abspath(result[0]) + + raise ValueError("Found no file with the name {0}. Try to specify the path as well.".format(fname)) + + +def getBibtexParser(filename = '../../../CoolPropBibTeXLibrary.bib'): + """Create a parser object that can be used to extract entries from a + library in Bibtex format.""" + fpath = getPath(filename) + bibtexer = BibTeXerClass(fpath) + return bibtexer + + +def getCitationOrAlternative(bibtexer, bibtex_key): + """Find the key in the library and convert to a citation, if it is not found, + we return a footnote string for sphinx.""" + bibtex_key = bibtex_key.strip() + + if bibtex_key in bibtexer.library.entries: + return u':cite:`{0}`'.format(bibtex_key) + else: + return u':raw-html:`Source`'.format(bibtex_key) diff --git a/Web/scripts/CPWeb/UnicodeTools.py b/Web/scripts/CPWeb/UnicodeTools.py new file mode 100644 index 00000000..7be24171 --- /dev/null +++ b/Web/scripts/CPWeb/UnicodeTools.py @@ -0,0 +1,69 @@ +''' +Created on 26 Sep 2014 + +@author: jowr +''' +import codecs +import csv +import cStringIO + +class UTF8Recoder: + """ + Iterator that reads an encoded stream and reencodes the input to UTF-8 + """ + def __init__(self, f, encoding): + self.reader = codecs.getreader(encoding)(f) + + def __iter__(self): + return self + + def next(self): + return self.reader.next().encode("utf-8") + +class UnicodeReader: + """ + A CSV reader which will iterate over lines in the CSV file "f", + which is encoded in the given encoding. + """ + + def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): + f = UTF8Recoder(f, encoding) + self.reader = csv.reader(f, dialect=dialect, **kwds) + + def next(self): + row = self.reader.next() + return [unicode(s, "utf-8") for s in row] + + def __iter__(self): + return self + +class UnicodeWriter: + """ + A CSV writer which will write rows to CSV file "f", + which is encoded in the given encoding. + """ + + def __init__(self, f, dialect=csv.excel, encoding="utf-8", **kwds): + # Redirect output to a queue + self.queue = cStringIO.StringIO() + self.writer = csv.writer(self.queue, dialect=dialect, **kwds) + self.stream = f + self.encoder = codecs.getincrementalencoder(encoding)() + + def writerow(self, row): + self.writer.writerow([s.encode("utf-8") for s in row]) + # Fetch UTF-8 output from the queue ... + data = self.queue.getvalue() + data = data.decode("utf-8") + # ... and reencode it into the target encoding + data = self.encoder.encode(data) + # write to the target stream + self.stream.write(data) + # empty queue + self.queue.truncate(0) + + def writerows(self, rows): + for row in rows: + self.writerow(row) + + diff --git a/Web/scripts/CPWeb/__init__.py b/Web/scripts/CPWeb/__init__.py new file mode 100644 index 00000000..a67290f7 --- /dev/null +++ b/Web/scripts/CPWeb/__init__.py @@ -0,0 +1,21 @@ +""" +CPWeb - A collection of commonly used routines to produce CoolProp's online documentation +===== + +""" +from __future__ import division, absolute_import, print_function + +import codecs +import csv +import cStringIO + + + + + +def get_version(): + return 5.0 + +if __name__ == "__main__": + print('You are using version %s of the Python package for creating CoolProp\' online documentation.'%(get_version())) + print() diff --git a/Web/scripts/fluid_properties.Mixtures.py b/Web/scripts/fluid_properties.Mixtures.py new file mode 100644 index 00000000..024aaab9 --- /dev/null +++ b/Web/scripts/fluid_properties.Mixtures.py @@ -0,0 +1,68 @@ + + +from CPWeb.BibtexTools import getCitationOrAlternative, getBibtexParser +import CoolProp +import os.path + +web_dir = os.path.abspath(os.path.join(os.path.dirname(__file__),'..')) +csvfile = os.path.join(web_dir,'fluid_properties','mixture_binary_pairs.csv') + +def merge_args(*args): + return " :raw-html:`
` ".join(list(args)) + +def printCoeff(number): + if number is None or \ + len(str(number).strip())<1: + return " " + number = float(number) + short = "{0:.4e}".format(number) + long = "{0:.14e}".format(number) + return u':raw-html:`{0}`'.format(short,long) + +class Dossier: + def __init__(self): + self.data = {} + def add(self, key, value): + if key not in self.data: + self.data[key] = [] + self.data[key].append(value) + +d = Dossier() + +pairs = CoolProp.get('mixture_binary_pairs_list') +for pair in pairs.split(','): + CAS1, CAS2 = pair.split('&') + d.add('CAS1', CAS1) + d.add('CAS2', CAS2) + for key in ['name1','name2','F','function','BibTeX','xi','zeta','betaT','betaV','gammaT','gammaV']: + try: + d.add(key, CoolProp.CoolProp.get_mixture_binary_pair_data(CAS1, CAS2, key)) + except BaseException as BE: + d.add(key, '') + +import pandas +df = pandas.DataFrame(d.data) +df = df.sort(['BibTeX','name1'], ascending = [0, 1]) + +bibtexer = getBibtexParser()#filename = '../../../CoolPropBibTeXLibrary.bib') + +with open(csvfile,'w') as fp: + header = 'Ref.,Name1,Name2,function,F,' + header += merge_args("xi","zeta,") + header += merge_args("betaT","betaV,") + header += merge_args("gammaT","gammaV") + header += '\n' + fp.write(header) + + for index, row in df.iterrows(): + text = ','.join([ \ + getCitationOrAlternative(bibtexer,row['BibTeX']), + row['name1'], + row['name2'], + row['function'], + row['F'], + merge_args(printCoeff(row['xi']),printCoeff(row['zeta'])), + merge_args(printCoeff(row['betaT']),printCoeff(row['betaV'])), + merge_args(printCoeff(row['gammaT']),printCoeff(row['gammaV'])) + ])+'\n' + fp.write(text) \ No newline at end of file From 2f531aaf5e3456e3e8ebc662f2bd77c1be8fc9ed Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 08:13:41 +0200 Subject: [PATCH 32/54] Added departure functions from Gernert Signed-off-by: Ian Bell --- CoolPropBibTeXLibrary.bib | 19 ++++++--- dev/mixtures/mixture_departure_functions.json | 40 ++++++++++++++++++- 2 files changed, 52 insertions(+), 7 deletions(-) diff --git a/CoolPropBibTeXLibrary.bib b/CoolPropBibTeXLibrary.bib index 01a32444..9d29466e 100644 --- a/CoolPropBibTeXLibrary.bib +++ b/CoolPropBibTeXLibrary.bib @@ -3,7 +3,7 @@ @ARTICLE{Abramson-HPR-2011, author = {Evan H. Abramson}, - title = {Melting curves of argon and methane}, + title = {{Melting curves of argon and methane}}, journal = {High Pressure Research}, year = {2011}, volume = {31}, @@ -15,7 +15,7 @@ @CONFERENCE{Akasaka-PU-2014, author = {Ryo Akasaka and Yukihiro Higashi}, - title = {A Thermodynamic Property Model for the R-134a/245fa Mixtures}, + title = {{A Thermodynamic Property Model for the R-134a/245fa Mixtures}}, booktitle = {15 th International Refrigeration and Air Conditioning Conference at Purdue, July 14-17, 2014}, year = {2014}, @@ -187,7 +187,7 @@ } @ARTICLE{Avgeri-JPCRD-2014-Benzene, - author = {S. Avgeri and M. J. Assael and M. L. Huber and R. A. Perkins}, + author = {S. Avgeri and M. J. Assael and M. L. Huber and R. A. Perkins}, title = {{Reference Correlation of the Viscosity of Benzene from the Triple Point to 675 K and up to 300 MPa}}, journal = {J. Phys. Chem. Ref. Data}, @@ -351,10 +351,19 @@ timestamp = {2010.06.30} } +@PHDTHESIS{Gernert-Thesis-2013, + author = {Georg Johannes Gernert}, + title = {{A New Helmholtz Energy Model for Humid Gases and CCS Mixtures}}, + school = {Ruhr-Universit{\:a}t Bochum}, + year = {2013}, + owner = {Belli}, + timestamp = {2014.09.27} +} + @ARTICLE{Gernert-FPE-2014, author = {Johannes Gernert and Andreas J{\"a}ger and Roland Span}, - title = {Calculation of phase equilibria for multi-component mixtures using - highly accurate Helmholtz energy equations of state}, + title = {{Calculation of phase equilibria for multi-component mixtures using + highly accurate Helmholtz energy equations of state}}, journal = {Fluid Phase Equilib.}, year = {2014}, volume = {375}, diff --git a/dev/mixtures/mixture_departure_functions.json b/dev/mixtures/mixture_departure_functions.json index 8ddd6a11..cadf77d3 100644 --- a/dev/mixtures/mixture_departure_functions.json +++ b/dev/mixtures/mixture_departure_functions.json @@ -22,7 +22,7 @@ { "Name" : "GeneralizedHFC", "BibTeX" : "Lemmon-JPCRD-2004", -"aliases" : ["KWT"], +"aliases" : ["KWT","LJ6"], "type" : "Exponential", "n" : [-0.013073, 0.018259,0.0000081299,0.0078496], "t" : [7.4, 0.35, 10.0, 5.3], @@ -160,5 +160,41 @@ "epsilon" : [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "beta": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "gamma": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] -} +}, +{ +"Name" : "CarbonDioxide-Water", +"aliases" : [], +"type" : "Gernert-2013", +"BibTeX" : "Gernert-Thesis-2013", +"Npower" : 8, +"d" : [1, 1, 3, 0, 2, 3, 1, 5], +"t" : [0.880, 2.932, 2.433, 1.330, 4.416, 5.514, 5.203, 1.000], +"n" : [3.9440467e-1, -1.7634732, 1.4620755e-1, 8.7522320e-3, 2.0349398, -9.0350250e-2, -2.1638854e-1, 3.9612170e-2], +"l" : [0, 0, 0, 1, 1, 1, 2, 2] +}, +{ +"Name" : "GeneralizedAirWater", +"aliases" : [], +"type" : "Gernert-2013", +"BibTeX" : "Gernert-Thesis-2013", +"Npower" : 5, +"d" : [1, 1, 1, 2, 4], +"t" : [0.547, 0.055, 1.925, 0.552, 1.000], +"n" : [4.0142079, -1.1573939, -7.2102425, -5.3251223, -2.2155867], +"l" : [0, 1, 1, 1, 1] +}, +{ +"Name": "Argon-CarbonDioxide", +"aliases" : [], +"type" : "GERG-2008", +"BibTeX" : "Gernert-Thesis-2013", +"Npower" : 2, +"d" : [2, 3, 1, 1, 1, 2], +"t" : [2.194, 1.743, 2.470, 1.977, 1.207, 0.796], +"n" : [2.0483577e-1, -1.1465124e-1 , -2.3151700, 2.3523617, -6.6835959e-1, -5.3016558e-2], +"eta" : [0.0, 0.0, 0.25, 0.25, 0.0, 0.0], +"epsilon" : [0.0, 0.0, 0.5, 0.5, 0.5, 0.5], +"beta": [0.0, 0.0, 0.75, 1.0, 2.0, 3.0], +"gamma": [0.0, 0.0, 0.5, 0.5, 0.5, 0.5] +}, ] \ No newline at end of file From 8addd38cb061f865b4389fbdd4ee9838bef839d9 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 08:48:39 +0200 Subject: [PATCH 33/54] Added Gernert binary pairs and conversion script Signed-off-by: Ian Bell --- dev/mixtures/Table2.9_to_JSON.py | 49 +++++++ dev/mixtures/mixture_binary_pairs.json | 186 +++++++++++++++++++++++++ 2 files changed, 235 insertions(+) create mode 100644 dev/mixtures/Table2.9_to_JSON.py diff --git a/dev/mixtures/Table2.9_to_JSON.py b/dev/mixtures/Table2.9_to_JSON.py new file mode 100644 index 00000000..898f06d9 --- /dev/null +++ b/dev/mixtures/Table2.9_to_JSON.py @@ -0,0 +1,49 @@ +data = """CO2-H2O 1.030538 0.828472 1.021392 0.895156 1 +CO2-N2 0.994140013 1.107654104 1.022709642 1.047578256 1 +CO2-O2 1.000000 1.031986 1.000000 1.084460 0 +CO2-Ar 1.027147 0.968781 1.001378 1.029710 1 +CO2-CO 0.993245 1.068392 1.030855 1.245499 0 +H2O-N2 0.954149 0.805147 1.079628 0.733443 1 +H2O-O2 0.798046 0.807842 0.972576 0.873460 0.6017 +H2O-Ar 0.679104 0.921000 0.940398 1.050952 0 +H2O-CO 1.045927 0.823984 1.063348 0.766756 0.9897 +N2-O2 0.997190589 0.995157044 0.999521770 0.997082328 0 +N2-Ar 0.999442 0.989311 1.006697 1.001549 0 +N2-CO 1.002409 0.994100 1.000000 1.001317 0 +O2-Ar 0.999039 0.988822 1.006502 1.001341 0 +O2-CO 1.000000 1.000000 1.000000 1.000000 0 +CO-Ar 1.000000000 0.954215746 1.000000000 1.159720623 0""" + +namedict = dict(O2 = 'Oxygen', N2 = 'Nitrogen', CO2 = 'CarbonDioxide', CO = 'CarbonMonoxide', H2O = 'Water', Ar = 'Argon') + +import CoolProp +CASdict = {namedict[n] : CoolProp.CoolProp.get_fluid_param_string(namedict[n], "CAS") for n in namedict} +functiondict = {'CO2-H2O': 'CarbonDioxide-Water', + 'CO2-N2': 'CarbonDioxide-Nitrogen', + 'CO2-Ar': 'CarbonDioxide-Argon', + 'H2O-N2': 'GeneralizedAirWater', + 'H2O-O2': 'GeneralizedAirWater', + 'H2O-CO': 'GeneralizedAirWater'} +out = [] +for line in data.split('\n'): + pair,betaT,betaV, gammaT,gammaV, F = line.split(' ') + n1, n2 = pair.split('-') + + out.append(dict(BibTeX = 'Gernert-Thesis-2013', + F = float(F), + betaT = float(betaT), + betaV = float(betaV), + gammaT = float(gammaT), + gammaV = float(gammaV), + Name1 = namedict[n1], + Name2 = namedict[n2], + CAS1 = CASdict[namedict[n1]], + CAS2 = CASdict[namedict[n2]])) + + if F != '0': + out[-1]['function'] = functiondict[pair] + +import json, sys +sys.path.append('..') +from package_json import json_options +print json.dumps(out, **json_options) \ No newline at end of file diff --git a/dev/mixtures/mixture_binary_pairs.json b/dev/mixtures/mixture_binary_pairs.json index 00db2fae..013bdcc7 100644 --- a/dev/mixtures/mixture_binary_pairs.json +++ b/dev/mixtures/mixture_binary_pairs.json @@ -65,6 +65,192 @@ "xi": 4.202, "zeta": 4.223e-06 }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "124-38-9", + "CAS2": "7732-18-5", + "F": 1.0, + "Name1": "CarbonDioxide", + "Name2": "Water", + "betaT": 1.030538, + "betaV": 0.828472, + "function": "CarbonDioxide-Water", + "gammaT": 1.021392, + "gammaV": 0.895156 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "124-38-9", + "CAS2": "7727-37-9", + "F": 1.0, + "Name1": "CarbonDioxide", + "Name2": "Nitrogen", + "betaT": 0.994140013, + "betaV": 1.107654104, + "function": "CarbonDioxide-Nitrogen", + "gammaT": 1.022709642, + "gammaV": 1.047578256 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "124-38-9", + "CAS2": "7782-44-7", + "F": 0.0, + "Name1": "CarbonDioxide", + "Name2": "Oxygen", + "betaT": 1.0, + "betaV": 1.031986, + "gammaT": 1.0, + "gammaV": 1.08446 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "124-38-9", + "CAS2": "7440-37-1", + "F": 1.0, + "Name1": "CarbonDioxide", + "Name2": "Argon", + "betaT": 1.027147, + "betaV": 0.968781, + "function": "CarbonDioxide-Argon", + "gammaT": 1.001378, + "gammaV": 1.02971 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "124-38-9", + "CAS2": "630-08-0", + "F": 0.0, + "Name1": "CarbonDioxide", + "Name2": "CarbonMonoxide", + "betaT": 0.993245, + "betaV": 1.068392, + "gammaT": 1.030855, + "gammaV": 1.245499 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7732-18-5", + "CAS2": "7727-37-9", + "F": 1.0, + "Name1": "Water", + "Name2": "Nitrogen", + "betaT": 0.954149, + "betaV": 0.805147, + "function": "GeneralizedAirWater", + "gammaT": 1.079628, + "gammaV": 0.733443 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7732-18-5", + "CAS2": "7782-44-7", + "F": 0.6017, + "Name1": "Water", + "Name2": "Oxygen", + "betaT": 0.798046, + "betaV": 0.807842, + "function": "GeneralizedAirWater", + "gammaT": 0.972576, + "gammaV": 0.87346 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7732-18-5", + "CAS2": "7440-37-1", + "F": 0.0, + "Name1": "Water", + "Name2": "Argon", + "betaT": 0.679104, + "betaV": 0.921, + "gammaT": 0.940398, + "gammaV": 1.050952 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7732-18-5", + "CAS2": "630-08-0", + "F": 0.9897, + "Name1": "Water", + "Name2": "CarbonMonoxide", + "betaT": 1.045927, + "betaV": 0.823984, + "function": "GeneralizedAirWater", + "gammaT": 1.063348, + "gammaV": 0.766756 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7727-37-9", + "CAS2": "7782-44-7", + "F": 0.0, + "Name1": "Nitrogen", + "Name2": "Oxygen", + "betaT": 0.997190589, + "betaV": 0.995157044, + "gammaT": 0.99952177, + "gammaV": 0.997082328 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7727-37-9", + "CAS2": "7440-37-1", + "F": 0.0, + "Name1": "Nitrogen", + "Name2": "Argon", + "betaT": 0.999442, + "betaV": 0.989311, + "gammaT": 1.006697, + "gammaV": 1.001549 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7727-37-9", + "CAS2": "630-08-0", + "F": 0.0, + "Name1": "Nitrogen", + "Name2": "CarbonMonoxide", + "betaT": 1.002409, + "betaV": 0.9941, + "gammaT": 1.0, + "gammaV": 1.001317 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7782-44-7", + "CAS2": "7440-37-1", + "F": 0.0, + "Name1": "Oxygen", + "Name2": "Argon", + "betaT": 0.999039, + "betaV": 0.988822, + "gammaT": 1.006502, + "gammaV": 1.001341 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "7782-44-7", + "CAS2": "630-08-0", + "F": 0.0, + "Name1": "Oxygen", + "Name2": "CarbonMonoxide", + "betaT": 1.0, + "betaV": 1.0, + "gammaT": 1.0, + "gammaV": 1.0 + }, + { + "BibTeX": "Gernert-Thesis-2013", + "CAS1": "630-08-0", + "CAS2": "7440-37-1", + "F": 0.0, + "Name1": "CarbonMonoxide", + "Name2": "Argon", + "betaT": 1.0, + "betaV": 0.954215746, + "gammaT": 1.0, + "gammaV": 1.159720623 + }, { "BibTeX": "Kunz-JCED-2012", "CAS1": "74-82-8", From 3b97a0e3f5e0650f8b3226f2a19255a5e9e51e33 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 09:43:38 +0200 Subject: [PATCH 34/54] Updated departure functions for Gernert Signed-off-by: Ian Bell --- dev/mixtures/mixture_departure_functions.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dev/mixtures/mixture_departure_functions.json b/dev/mixtures/mixture_departure_functions.json index cadf77d3..dea9abae 100644 --- a/dev/mixtures/mixture_departure_functions.json +++ b/dev/mixtures/mixture_departure_functions.json @@ -164,7 +164,7 @@ { "Name" : "CarbonDioxide-Water", "aliases" : [], -"type" : "Gernert-2013", +"type" : "Exponential", "BibTeX" : "Gernert-Thesis-2013", "Npower" : 8, "d" : [1, 1, 3, 0, 2, 3, 1, 5], @@ -175,7 +175,7 @@ { "Name" : "GeneralizedAirWater", "aliases" : [], -"type" : "Gernert-2013", +"type" : "Exponential", "BibTeX" : "Gernert-Thesis-2013", "Npower" : 5, "d" : [1, 1, 1, 2, 4], From 1a3437b04acd15a30db672a45435f46dd4fe807a Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 09:54:20 +0200 Subject: [PATCH 35/54] Fixed departure functions Signed-off-by: Ian Bell --- dev/generate_headers.py | 10 +++++++++- dev/mixtures/mixture_departure_functions.json | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dev/generate_headers.py b/dev/generate_headers.py index e050368d..ce079097 100644 --- a/dev/generate_headers.py +++ b/dev/generate_headers.py @@ -59,7 +59,15 @@ def TO_CPP(root_dir, hashes): # Confirm that the JSON file can be loaded and doesn't have any formatting problems with open(os.path.join(root_dir,'dev',infile), 'r') as fp: - jj = json.load(fp) + try: + jj = json.load(fp) + except ValueError: + file = os.path.join(root_dir,'dev',infile) + print('"python -mjson.tool '+file+'" returns ->', end='') + subprocess.call('python -mjson.tool '+file, shell = True) + raise ValueError('unable to decode file %s' % file) + + json = open(os.path.join(root_dir,'dev',infile),'r').read().encode('ascii') diff --git a/dev/mixtures/mixture_departure_functions.json b/dev/mixtures/mixture_departure_functions.json index dea9abae..6f133d71 100644 --- a/dev/mixtures/mixture_departure_functions.json +++ b/dev/mixtures/mixture_departure_functions.json @@ -196,5 +196,5 @@ "epsilon" : [0.0, 0.0, 0.5, 0.5, 0.5, 0.5], "beta": [0.0, 0.0, 0.75, 1.0, 2.0, 3.0], "gamma": [0.0, 0.0, 0.5, 0.5, 0.5, 0.5] -}, +} ] \ No newline at end of file From 0bcd965b31271f6163b0b95c105226f713f2937e Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 10:12:44 +0200 Subject: [PATCH 36/54] Added R134a/R245fa mixture parameters Signed-off-by: Ian Bell --- CoolPropBibTeXLibrary.bib | 10 ++++++++++ dev/mixtures/mixture_binary_pairs.json | 13 +++++++++++++ 2 files changed, 23 insertions(+) diff --git a/CoolPropBibTeXLibrary.bib b/CoolPropBibTeXLibrary.bib index 9d29466e..258344f9 100644 --- a/CoolPropBibTeXLibrary.bib +++ b/CoolPropBibTeXLibrary.bib @@ -13,6 +13,16 @@ timestamp = {2014.06.09} } +@CONFERENCE{Akasaka-Purdue-2014, + author = {Ryo Akasaka}, + title = {{A Thermodynamic Property Model for the R-134a/245fa Mixtures}}, + booktitle = {15th International Refrigeration and Air Conditioning Conference + at Purdue, July 14-17, 2014}, + year = {2014}, + owner = {Belli}, + timestamp = {2014.09.27} +} + @CONFERENCE{Akasaka-PU-2014, author = {Ryo Akasaka and Yukihiro Higashi}, title = {{A Thermodynamic Property Model for the R-134a/245fa Mixtures}}, diff --git a/dev/mixtures/mixture_binary_pairs.json b/dev/mixtures/mixture_binary_pairs.json index 013bdcc7..96c9e1cd 100644 --- a/dev/mixtures/mixture_binary_pairs.json +++ b/dev/mixtures/mixture_binary_pairs.json @@ -2831,5 +2831,18 @@ "function": "GeneralizedAirComponents", "xi": -2.115126, "zeta": -4.1232e-07 + }, + { + "BibTeX": "Akasaka-Purdue-2014", + "CAS1": "811-97-2", + "CAS2": "460-73-1", + "F": 0.107754, + "Name1": "R134a", + "Name2": "R245fa", + "function": "Methane-Ethane", + "betaT": 1, + "betaV": 0.992025, + "gammaT": 1.00643, + "gammaV": 1 } ] \ No newline at end of file From 71b95eed6bb019394cb811925c2cf689dd5d1538 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 10:30:42 +0200 Subject: [PATCH 37/54] Added mixtures of R32 and R1234yf and R1234ze(E) Signed-off-by: Ian Bell --- CoolPropBibTeXLibrary.bib | 13 +++++++++++++ dev/mixtures/mixture_binary_pairs.json | 26 ++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/CoolPropBibTeXLibrary.bib b/CoolPropBibTeXLibrary.bib index 258344f9..3e4d7629 100644 --- a/CoolPropBibTeXLibrary.bib +++ b/CoolPropBibTeXLibrary.bib @@ -23,6 +23,19 @@ timestamp = {2014.09.27} } +@ARTICLE{Akasaka-FPE-2013, + author = {Ryo Akasaka}, + title = {{Thermodynamic property models for the difluoromethane (R-32) + trans-1,3,3,3-tetrafluoropropene + (R-1234ze(E)) and difluoromethane + 2,3,3,3-tetrafluoropropene (R-1234yf) + mixtures}}, + journal = {Fluid Phase Equilib.}, + year = {2013}, + volume = {358}, + pages = {98-104}, + owner = {Belli}, + timestamp = {2014.09.27} +} + @CONFERENCE{Akasaka-PU-2014, author = {Ryo Akasaka and Yukihiro Higashi}, title = {{A Thermodynamic Property Model for the R-134a/245fa Mixtures}}, diff --git a/dev/mixtures/mixture_binary_pairs.json b/dev/mixtures/mixture_binary_pairs.json index 96c9e1cd..02e4199b 100644 --- a/dev/mixtures/mixture_binary_pairs.json +++ b/dev/mixtures/mixture_binary_pairs.json @@ -2844,5 +2844,31 @@ "betaV": 0.992025, "gammaT": 1.00643, "gammaV": 1 + }, + { + "BibTeX": "Akasaka-FPE-2013", + "CAS1": "75-10-5", + "CAS2": "754-12-1", + "F": -0.277708, + "Name1": "R32", + "Name2": "R1234yf", + "function": "Methane-CarbonDioxide", + "betaT": 1.00052, + "betaV": 0.993346, + "gammaT": 0.948538, + "gammaV": 1.02211 + }, + { + "BibTeX": "Akasaka-FPE-2013", + "CAS1": "75-10-5", + "CAS2": "29118-24-9", + "F": -0.265419, + "Name1": "R32", + "Name2": "R1234ze(E)", + "function": "Methane-Propane", + "betaT": 1.00343, + "betaV": 1.00586, + "gammaT": 0.977857, + "gammaV": 0.982707 } ] \ No newline at end of file From fc1484f8285c230c0a6f9266a5adf7579d6e0f3b Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 11:22:37 +0200 Subject: [PATCH 38/54] Update critical splines Signed-off-by: Ian Bell --- dev/fluids/Acetone.json | 22 +++++++++++----------- dev/fluids/Argon.json | 14 +++++++------- dev/fluids/CarbonMonoxide.json | 22 +++++++++++----------- dev/fluids/CycloHexane.json | 24 ++++++++++++------------ dev/fluids/CycloPropane.json | 2 +- dev/fluids/Cyclopentane.json | 24 ++++++++++++------------ dev/fluids/D6.json | 22 +++++++++++----------- dev/fluids/Deuterium.json | 14 +++++++------- dev/fluids/DimethylCarbonate.json | 14 +++++++------- dev/fluids/DimethylEther.json | 24 ++++++++++++------------ dev/fluids/EthylBenzene.json | 24 ++++++++++++------------ dev/fluids/Ethylene.json | 22 +++++++++++----------- dev/fluids/HFE143m.json | 22 +++++++++++----------- dev/fluids/Helium.json | 20 ++++++++++---------- dev/fluids/Hydrogen.json | 22 +++++++++++----------- dev/fluids/IsoButane.json | 24 ++++++++++++------------ dev/fluids/IsoButene.json | 24 ++++++++++++------------ dev/fluids/Isopentane.json | 24 ++++++++++++------------ dev/fluids/Krypton.json | 22 +++++++++++----------- dev/fluids/Methane.json | 14 +++++++------- dev/fluids/MethylLinoleate.json | 2 +- dev/fluids/MethylLinolenate.json | 2 +- dev/fluids/MethylOleate.json | 2 +- dev/fluids/MethylPalmitate.json | 24 ++++++++++++------------ dev/fluids/MethylStearate.json | 2 +- dev/fluids/Neon.json | 22 +++++++++++----------- dev/fluids/Neopentane.json | 22 +++++++++++----------- dev/fluids/Nitrogen.json | 14 +++++++------- dev/fluids/OrthoDeuterium.json | 14 +++++++------- dev/fluids/OrthoHydrogen.json | 24 ++++++++++++------------ dev/fluids/ParaDeuterium.json | 14 +++++++------- dev/fluids/ParaHydrogen.json | 24 ++++++++++++------------ dev/fluids/Propylene.json | 22 +++++++++++----------- dev/fluids/R113.json | 22 +++++++++++----------- dev/fluids/R116.json | 22 +++++++++++----------- dev/fluids/R12.json | 22 +++++++++++----------- dev/fluids/R123.json | 22 +++++++++++----------- dev/fluids/R1233zd(E).json | 2 +- dev/fluids/R1234yf.json | 22 +++++++++++----------- dev/fluids/R1234ze(E).json | 14 +++++++------- dev/fluids/R1234ze(Z).json | 24 ++++++++++++------------ dev/fluids/R134a.json | 22 +++++++++++----------- dev/fluids/R143a.json | 22 +++++++++++----------- dev/fluids/R152A.json | 22 +++++++++++----------- dev/fluids/R161.json | 18 +++++++++--------- dev/fluids/R218.json | 22 +++++++++++----------- dev/fluids/R22.json | 22 +++++++++++----------- dev/fluids/R227EA.json | 22 +++++++++++----------- dev/fluids/R236EA.json | 22 +++++++++++----------- dev/fluids/R245fa.json | 18 +++++++++--------- dev/fluids/R32.json | 14 +++++++------- dev/fluids/R41.json | 22 +++++++++++----------- dev/fluids/Toluene.json | 22 +++++++++++----------- dev/fluids/Water.json | 22 +++++++++++----------- dev/fluids/Xenon.json | 22 +++++++++++----------- dev/fluids/cis-2-Butene.json | 2 +- dev/fluids/m-Xylene.json | 14 +++++++------- dev/fluids/n-Butane.json | 22 +++++++++++----------- dev/fluids/n-Decane.json | 22 +++++++++++----------- dev/fluids/n-Dodecane.json | 22 +++++++++++----------- dev/fluids/n-Nonane.json | 22 +++++++++++----------- dev/fluids/n-Propane.json | 24 ++++++++++++------------ dev/fluids/p-Xylene.json | 20 ++++++++++---------- dev/fluids/trans-2-Butene.json | 2 +- 64 files changed, 590 insertions(+), 590 deletions(-) diff --git a/dev/fluids/Acetone.json b/dev/fluids/Acetone.json index d6ae2536..cc5ee12d 100644 --- a/dev/fluids/Acetone.json +++ b/dev/fluids/Acetone.json @@ -353,22 +353,22 @@ ], "critical_region_splines": { "T_max": 508.1, - "T_min": 508.0999999999062, + "T_min": 508.09697325761744, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -4.656219323212737e-09, - 508.10002188423084 + -1.5123933548972854e-11, + -1.7185082712306687e-08, + 0.0011638028537861549, + 504.579957217175 ], "cV": [ - 0.0, - 0.0, - 4.64031360324759e-09, - 508.0999781905261 + 1.9536072269032177e-10, + -2.983480058312324e-06, + 0.015098157455448244, + 482.76079813563524 ], - "rhomolar_max": 4700.020155407677, - "rhomolar_min": 4699.9797791519495 + "rhomolar_max": 4814.181193727979, + "rhomolar_min": 4590.050467927069 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Argon.json b/dev/fluids/Argon.json index a7112733..6d27ddb1 100644 --- a/dev/fluids/Argon.json +++ b/dev/fluids/Argon.json @@ -506,22 +506,22 @@ ], "critical_region_splines": { "T_max": 150.687, - "T_min": 150.68674395835467, + "T_min": 150.68697834063298, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -2.124793992189458e-06, - 150.7154880259892 + -6.171554333557227e-07, + 150.69527446806111 ], "cV": [ 0.0, 0.0, - 2.1223479463722503e-06, - 150.65854476919804 + 6.072607995401675e-07, + 150.67885819354578 ], - "rhomolar_max": 13527.931526630135, - "rhomolar_min": 13286.788909807183 + "rhomolar_max": 13442.525139946354, + "rhomolar_min": 13371.76233564158 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/CarbonMonoxide.json b/dev/fluids/CarbonMonoxide.json index e7feb685..29310093 100644 --- a/dev/fluids/CarbonMonoxide.json +++ b/dev/fluids/CarbonMonoxide.json @@ -367,22 +367,22 @@ ], "critical_region_splines": { "T_max": 132.86, - "T_min": 132.85999999951312, + "T_min": 132.85867131966137, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -4.587508257048314e-09, - 132.8600497744646 + 3.1174266374072594e-11, + -1.0578676813227408e-06, + 0.011945990965038183, + 87.96227472439597 ], "cV": [ - 0.0, - 0.0, - 4.611514127080118e-09, - 132.85994996507173 + -2.7988602187391993e-11, + 8.673443114829891e-07, + -0.008936706896165105, + 163.4668663127422 ], - "rhomolar_max": 10850.106136720144, - "rhomolar_min": 10849.894418190801 + "rhomolar_max": 11038.842068491349, + "rhomolar_min": 10664.189840198747 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/CycloHexane.json b/dev/fluids/CycloHexane.json index 54ccad0b..c19f34ca 100644 --- a/dev/fluids/CycloHexane.json +++ b/dev/fluids/CycloHexane.json @@ -1,7 +1,7 @@ { "ALIASES": [ "Cyclohexane", - "CYCLOHEXANE", + "CYCLOHEXANE", "CYCLOHEX" ], "ANCILLARIES": { @@ -450,22 +450,22 @@ ], "critical_region_splines": { "T_max": 553.6, - "T_min": 553.5999997660659, + "T_min": 553.5979946139788, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -8.175876311970891e-07, - 553.602635902523 + 1.56104739484658e-08, + -0.00015385588557227471, + 0.5052887091787223, + 0.6345188298942561 ], "cV": [ - 0.0, - 0.0, - 8.181583620573008e-07, - 553.5973622574407 + -1.5338245208003638e-08, + 0.0001454870563719106, + -0.45981527881664047, + 1037.8236160527126 ], - "rhomolar_max": 3224.286127290438, - "rhomolar_min": 3223.7140723774714 + "rhomolar_max": 3252.773506033089, + "rhomolar_min": 3195.2323910542696 }, "gas_constant": 8.3144621, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/CycloPropane.json b/dev/fluids/CycloPropane.json index 7c096640..3964b5e8 100644 --- a/dev/fluids/CycloPropane.json +++ b/dev/fluids/CycloPropane.json @@ -2,7 +2,7 @@ "ALIASES": [ "cyclopropane", "Cyclopropane", - "CYCLOPROPANE", + "CYCLOPROPANE", "CYCLOPRO" ], "ANCILLARIES": { diff --git a/dev/fluids/Cyclopentane.json b/dev/fluids/Cyclopentane.json index 6c29f598..12445da3 100644 --- a/dev/fluids/Cyclopentane.json +++ b/dev/fluids/Cyclopentane.json @@ -2,7 +2,7 @@ "ALIASES": [ "CycloPentane", "cyclopentane", - "CYCLOPENTANE", + "CYCLOPENTANE", "CYCLOPEN" ], "ANCILLARIES": { @@ -388,22 +388,22 @@ ], "critical_region_splines": { "T_max": 511.72, - "T_min": 511.71999999967744, + "T_min": 511.7095934234679, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -3.3125554580735164e-08, - 511.72012653961855 + -4.880588052926918e-09, + 5.252717316693226e-05, + -0.18764912368477027, + 734.1005944101676 ], "cV": [ - 0.0, - 0.0, - 3.3109614501400934e-08, - 511.71987352127263 + 5.250582737174832e-09, + -6.357124543112242e-05, + 0.2558285044919253, + 169.4290891702673 ], - "rhomolar_max": 3820.0097389577454, - "rhomolar_min": 3819.990256554135 + "rhomolar_max": 3873.2904355172786, + "rhomolar_min": 3766.813756733369 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/D6.json b/dev/fluids/D6.json index 7288b907..3c083da9 100644 --- a/dev/fluids/D6.json +++ b/dev/fluids/D6.json @@ -352,22 +352,22 @@ ], "critical_region_splines": { "T_max": 645.78, - "T_min": 642.4672205036263, + "T_min": 645.4997615767367, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - -6.230392935143472e-05, - 0.07816508273019042, - 621.263969382756 + -1.554702914197144e-07, + 0.00027871311312902783, + -0.16613864293822964, + 678.7008854032358 ], "cV": [ - 3.6584356889802007e-07, - -0.0006916100001806448, - 0.43580969539355185, - 554.2417982977918 + 2.1732433324774884e-07, + -0.00042927603672073575, + 0.28201442644063596, + 584.1491278422845 ], - "rhomolar_max": 857.8775266580042, - "rhomolar_min": 421.67935851484685 + "rhomolar_max": 725.3981107757561, + "rhomolar_min": 542.276230072255 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Deuterium.json b/dev/fluids/Deuterium.json index f59c9a51..ff11483d 100644 --- a/dev/fluids/Deuterium.json +++ b/dev/fluids/Deuterium.json @@ -440,22 +440,22 @@ ], "critical_region_splines": { "T_max": 38.34, - "T_min": 38.339416735480214, + "T_min": 38.3399506598222, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -2.853182978628294e-06, - 38.389160342721766 + -8.339819490855398e-07, + 38.35436950898275 ], "cV": [ 0.0, 0.0, - 2.8554684120896426e-06, - 38.2908002792597 + 8.380089288669903e-07, + 38.325561106155625 ], - "rhomolar_max": 17434.42590754112, - "rhomolar_min": 17025.73770897889 + "rhomolar_max": 17289.162165151512, + "rhomolar_min": 17171.122133543762 }, "gas_constant": 8.3144621, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/DimethylCarbonate.json b/dev/fluids/DimethylCarbonate.json index bfebb640..75a676d8 100644 --- a/dev/fluids/DimethylCarbonate.json +++ b/dev/fluids/DimethylCarbonate.json @@ -409,22 +409,22 @@ ], "critical_region_splines": { "T_max": 557.0, - "T_min": 556.9998876027566, + "T_min": 556.9999904919641, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -1.3572331448181178e-06, - 557.0054289325793 + -2.1173490191325178e-07, + 557.0008469396076 ], "cV": [ 0.0, 0.0, - 1.2967566129304942e-06, - 556.9948129735483 + 2.0050706260121842e-07, + 556.9991979717496 ], - "rhomolar_max": 4082.813512058265, - "rhomolar_min": 3913.3243337382946 + "rhomolar_max": 4044.9053782587557, + "rhomolar_min": 3952.580044972171 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/DimethylEther.json b/dev/fluids/DimethylEther.json index 7f41ce79..df7e2788 100644 --- a/dev/fluids/DimethylEther.json +++ b/dev/fluids/DimethylEther.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "DIMETHYLETHER", + "DIMETHYLETHER", "DME" ], "ANCILLARIES": { @@ -390,22 +390,22 @@ ], "critical_region_splines": { "T_max": 400.378, - "T_min": 400.37110506132734, + "T_min": 400.3774167354802, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -1.2340856080204133e-11, - -3.6668010216655235e-07, - 0.005662449102513134, - 382.2672995716492 + 0.0, + 0.0, + -1.846177917829548e-05, + 400.48766296831906 ], "cV": [ - 3.2678596450956466e-11, - -1.1690463919857066e-06, - 0.010429215559579295, - 372.82769480948826 + 0.0, + 0.0, + 1.8536722158567707e-05, + 400.2678918703781 ], - "rhomolar_max": 6048.293446297928, - "rhomolar_min": 5831.9191440537215 + "rhomolar_max": 5971.593082884313, + "rhomolar_min": 5908.534646267459 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/EthylBenzene.json b/dev/fluids/EthylBenzene.json index 2c479441..f471b99f 100644 --- a/dev/fluids/EthylBenzene.json +++ b/dev/fluids/EthylBenzene.json @@ -1,7 +1,7 @@ { "ALIASES": [ "ethylbenzene", - "ETHYLBENZENE", + "ETHYLBENZENE", "EBENZENE" ], "ANCILLARIES": { @@ -382,22 +382,22 @@ ], "critical_region_splines": { "T_max": 617.12, - "T_min": 617.1169732576175, + "T_min": 617.1197439583547, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -5.889287007942239e-10, - 2.7489748115156017e-06, - -0.0017958058182523087, - 613.5170511389289 + 0.0, + 0.0, + -2.3245131740117315e-05, + 617.1837152780217 ], "cV": [ - 2.7233018397998547e-10, - -4.332169254554028e-06, - 0.017610902629837312, - 595.7882622446201 + 0.0, + 0.0, + 2.3091817015124984e-05, + 617.0567049600925 ], - "rhomolar_max": 2778.835947943192, - "rhomolar_min": 2703.079602802352 + "rhomolar_max": 2752.0308502563307, + "rhomolar_min": 2729.928018264121 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Ethylene.json b/dev/fluids/Ethylene.json index a046b22e..2e187b34 100644 --- a/dev/fluids/Ethylene.json +++ b/dev/fluids/Ethylene.json @@ -510,22 +510,22 @@ ], "critical_region_splines": { "T_max": 282.35, - "T_min": 282.34697325761744, + "T_min": 282.3497439583547, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -5.3490529714823425e-11, - 1.1806509186406972e-06, - -0.008673975227377104, - 303.55881549532984 + 0.0, + 0.0, + -3.634935446259431e-06, + 282.37775915135825 ], "cV": [ - 5.6266047158959514e-11, - -1.3340632313871347e-06, - 0.010531516936650963, - 254.66645559595844 + 0.0, + 0.0, + 3.6437107681563877e-06, + 282.3221738335621 ], - "rhomolar_max": 7866.912063903078, - "rhomolar_min": 7408.049532488636 + "rhomolar_max": 7707.205098345808, + "rhomolar_min": 7566.496505023215 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/HFE143m.json b/dev/fluids/HFE143m.json index 4d36471c..88f17f92 100644 --- a/dev/fluids/HFE143m.json +++ b/dev/fluids/HFE143m.json @@ -362,22 +362,22 @@ ], "critical_region_splines": { "T_max": 377.921, - "T_min": 377.92099999999897, + "T_min": 377.88522000242136, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -6.93839214284477e-10, - 377.9210032250623 + 4.9355266611563965e-11, + -1.1363349519029853e-06, + 0.00736469652648742, + 363.2831553274167 ], "cV": [ - 0.0, - 0.0, - 5.712986843822467e-10, - 377.9209973445233 + -1.6224665103344288e-10, + 1.8467354481248633e-06, + -0.0066516525010036605, + 385.2331741502011 ], - "rhomolar_max": 4648.142188502035, - "rhomolar_min": 4648.138929822613 + "rhomolar_max": 4935.29110614525, + "rhomolar_min": 4335.002308503029 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Helium.json b/dev/fluids/Helium.json index 18079b20..76792d7d 100644 --- a/dev/fluids/Helium.json +++ b/dev/fluids/Helium.json @@ -440,22 +440,22 @@ ], "critical_region_splines": { "T_max": 5.1953000000000005, - "T_min": 5.141297013055385, + "T_min": 5.19073171770731, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -4.82863868046167e-13, - 2.5798878786242034e-08, - -0.0004593197751427837, - 7.920274522054607 + -3.0333435224167437e-13, + 1.5607506016709e-08, + -0.00026681298442982895, + 6.710133323667334 ], "cV": [ 0.0, - -1.5275455601862228e-09, - 5.538880201235252e-05, - 4.693200509758024 + -4.479989405503328e-10, + 1.624444158435496e-05, + 5.048044137037824 ], - "rhomolar_max": 22647.96434858185, - "rhomolar_min": 12184.179354171467 + "rhomolar_max": 19915.76431162559, + "rhomolar_min": 14936.712852945791 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Hydrogen.json b/dev/fluids/Hydrogen.json index b0748cb0..0a14fb57 100644 --- a/dev/fluids/Hydrogen.json +++ b/dev/fluids/Hydrogen.json @@ -412,22 +412,22 @@ ], "critical_region_splines": { "T_max": 33.145, - "T_min": 33.144999999992066, + "T_min": 33.13810506132737, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -3.5640307070519154e-10, - 33.145005527098824 + 3.1007578284721566e-12, + -1.5869880447859634e-07, + 0.0026850233556669507, + 18.107690278950276 ], "cV": [ - 0.0, - 0.0, - 3.1573424275146666e-10, - 33.14499510359337 + -2.3396699485553584e-12, + 9.516798742074658e-08, + -0.0012636720187622463, + 38.58044486815464 ], - "rhomolar_max": 15508.022271289323, - "rhomolar_min": 15507.974851755711 + "rhomolar_max": 16262.923237049079, + "rhomolar_min": 14746.877675758724 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/IsoButane.json b/dev/fluids/IsoButane.json index be181220..43dcab68 100644 --- a/dev/fluids/IsoButane.json +++ b/dev/fluids/IsoButane.json @@ -4,7 +4,7 @@ "Isobutane", "ISOBUTANE", "R600A", - "R600a", + "R600a", "ISOBUTAN" ], "ANCILLARIES": { @@ -455,22 +455,22 @@ ], "critical_region_splines": { "T_max": 407.817, - "T_min": 406.8534813947396, + "T_min": 407.73549293470376, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -9.941703745512649e-10, - 1.1401780743865456e-05, - -0.04357798580431196, - 463.3231742084145 + -5.728389280296945e-10, + 6.296755366265217e-06, + -0.022991762972926447, + 435.69130219666266 ], "cV": [ - 0.0, - -1.0815601793791963e-06, - 0.00839238089576816, - 391.53680162488934 + 5.562666408422913e-10, + -6.761233991678565e-06, + 0.027344254864717768, + 371.015481302833 ], - "rhomolar_max": 4815.639002152002, - "rhomolar_min": 2935.903033135107 + "rhomolar_max": 4253.160501655689, + "rhomolar_min": 3479.687062549918 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/IsoButene.json b/dev/fluids/IsoButene.json index 5759b905..8ebe2d25 100644 --- a/dev/fluids/IsoButene.json +++ b/dev/fluids/IsoButene.json @@ -1,7 +1,7 @@ { "ALIASES": [ "Isobutene", - "ISOBUTENE", + "ISOBUTENE", "IBUTENE" ], "ANCILLARIES": { @@ -350,22 +350,22 @@ ], "critical_region_splines": { "T_max": 418.09000000000003, - "T_min": 418.08999999951317, + "T_min": 418.08543171770737, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -2.0580323178237388e-08, - 418.09008581994766 + 1.0856405178489673e-09, + -1.4451084442137125e-05, + 0.06388776104495195, + 324.24484504699296 ], "cV": [ - 0.0, - 0.0, - 2.0591910110230444e-08, - 418.0899141317349 + -6.230035048466998e-10, + 6.9227418610441575e-06, + -0.02523563018482191, + 448.11876326463465 ], - "rhomolar_max": 4170.023655555847, - "rhomolar_min": 4169.976356154625 + "rhomolar_max": 4246.188019158735, + "rhomolar_min": 4095.5716752458243 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Isopentane.json b/dev/fluids/Isopentane.json index bbb9b1d0..f73cafef 100644 --- a/dev/fluids/Isopentane.json +++ b/dev/fluids/Isopentane.json @@ -2,7 +2,7 @@ "ALIASES": [ "ipentane", "R601a", - "ISOPENTANE", + "ISOPENTANE", "IPENTANE" ], "ANCILLARIES": { @@ -366,22 +366,22 @@ ], "critical_region_splines": { "T_max": 460.35, - "T_min": 460.34999999967744, + "T_min": 460.34697325761744, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.3800199316984639e-08, - 460.350045140452 + 8.005022701910341e-10, + -8.44526357152168e-06, + 0.029554133854069683, + 426.02215187987395 ], "cV": [ - 0.0, - 0.0, - 1.384341277338779e-08, - 460.34995471819684 + -5.384468503556533e-10, + 4.689391032778603e-06, + -0.013394755215389163, + 472.83487531264404 ], - "rhomolar_max": 3271.023375025736, - "rhomolar_min": 3270.9766981300554 + "rhomolar_max": 3346.612383148717, + "rhomolar_min": 3197.125647678554 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Krypton.json b/dev/fluids/Krypton.json index a84bcc4d..bb4de36a 100644 --- a/dev/fluids/Krypton.json +++ b/dev/fluids/Krypton.json @@ -349,22 +349,22 @@ ], "critical_region_splines": { "T_max": 209.48000000000002, - "T_min": 209.47999999926515, + "T_min": 209.47310506132737, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -9.371176887927681e-09, - 209.48010167726926 + 6.390300964893231e-11, + -2.199509680360674e-06, + 0.02516089390363733, + 113.79346021244321 ], "cV": [ - 0.0, - 0.0, - 9.068846146505593e-09, - 209.47990160301933 + -3.436623953002642e-11, + 1.0066209446840255e-06, + -0.009706635600422744, + 240.19068612286947 ], - "rhomolar_max": 10850.078419187403, - "rhomolar_min": 10849.918967439311 + "rhomolar_max": 11108.82129459245, + "rhomolar_min": 10591.412518037536 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Methane.json b/dev/fluids/Methane.json index 31c06a56..5f8c44c3 100644 --- a/dev/fluids/Methane.json +++ b/dev/fluids/Methane.json @@ -518,22 +518,22 @@ ], "critical_region_splines": { "T_max": 190.564, - "T_min": 190.56361355465157, + "T_min": 190.5639673093741, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -2.9498492462244708e-06, - 190.59390889908818 + -8.298041773773189e-07, + 190.57241349076935 ], "cV": [ 0.0, 0.0, - 3.00418301102579e-06, - 190.53354020391578 + 8.001489626516288e-07, + 190.5558871872486 ], - "rhomolar_max": 10270.133117949952, - "rhomolar_min": 10010.492245451042 + "rhomolar_max": 10178.523590876614, + "rhomolar_min": 10098.272325109083 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/MethylLinoleate.json b/dev/fluids/MethylLinoleate.json index eddf1661..3e7f6be0 100644 --- a/dev/fluids/MethylLinoleate.json +++ b/dev/fluids/MethylLinoleate.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "METHYLLINOLEATE", + "METHYLLINOLEATE", "MLINOLEA" ], "ANCILLARIES": { diff --git a/dev/fluids/MethylLinolenate.json b/dev/fluids/MethylLinolenate.json index c749c051..a085f885 100644 --- a/dev/fluids/MethylLinolenate.json +++ b/dev/fluids/MethylLinolenate.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "METHYLLINOLENATE", + "METHYLLINOLENATE", "MLINOLEN" ], "ANCILLARIES": { diff --git a/dev/fluids/MethylOleate.json b/dev/fluids/MethylOleate.json index 7eae9745..987297c8 100644 --- a/dev/fluids/MethylOleate.json +++ b/dev/fluids/MethylOleate.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "METHYLOLEATE", + "METHYLOLEATE", "MOLEATE" ], "ANCILLARIES": { diff --git a/dev/fluids/MethylPalmitate.json b/dev/fluids/MethylPalmitate.json index 59224a69..323b91f6 100644 --- a/dev/fluids/MethylPalmitate.json +++ b/dev/fluids/MethylPalmitate.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "METHYLPALMITATE", + "METHYLPALMITATE", "MPALMITA" ], "ANCILLARIES": { @@ -396,22 +396,22 @@ ], "critical_region_splines": { "T_max": 755.0, - "T_min": 754.9999999319605, + "T_min": 754.9979946139788, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.7213757676923328e-06, - 755.0015440740636 + -8.453804974988888e-07, + 0.0022314430347624794, + -1.9626065342276378, + 1330.1589912157262 ], "cV": [ - 0.0, - 0.0, - 1.7239651981209695e-06, - 754.9984536032173 + 8.346377269227008e-07, + -0.002289692013105165, + 2.0930363910460232, + 117.46650514532276 ], - "rhomolar_max": 897.0395262628024, - "rhomolar_min": 896.9605331088118 + "rhomolar_max": 903.4045446436754, + "rhomolar_min": 890.603960171529 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/MethylStearate.json b/dev/fluids/MethylStearate.json index 5e080b9b..93f340c6 100644 --- a/dev/fluids/MethylStearate.json +++ b/dev/fluids/MethylStearate.json @@ -1,6 +1,6 @@ { "ALIASES": [ - "METHYLSTEARATE", + "METHYLSTEARATE", "MSTEARAT" ], "ANCILLARIES": { diff --git a/dev/fluids/Neon.json b/dev/fluids/Neon.json index 12050cbf..3c3beb12 100644 --- a/dev/fluids/Neon.json +++ b/dev/fluids/Neon.json @@ -427,22 +427,22 @@ ], "critical_region_splines": { "T_max": 44.491800000000005, - "T_min": 44.48723171770732, + "T_min": 44.49141355465158, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -1.1025814119387474e-13, - 1.491524533973909e-09, - 0.00011741598951019355, - 42.338817257479654 + 0.0, + 0.0, + -1.5811616648711508e-06, + 44.52956130288046 ], "cV": [ - 1.7438239837612905e-13, - -1.890874143571898e-08, - 0.0006047801629533931, - 38.4577598458307 + 0.0, + 0.0, + 1.5834258838542428e-06, + 44.4539846230418 ], - "rhomolar_max": 24720.30951969461, - "rhomolar_min": 23047.532486140095 + "rhomolar_max": 24126.40596873362, + "rhomolar_min": 23637.943519451463 }, "gas_constant": 8.31434, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Neopentane.json b/dev/fluids/Neopentane.json index f1f726d4..846a63ce 100644 --- a/dev/fluids/Neopentane.json +++ b/dev/fluids/Neopentane.json @@ -349,22 +349,22 @@ ], "critical_region_splines": { "T_max": 433.74, - "T_min": 433.73999999926514, + "T_min": 433.73543171770734, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -2.793653710159193e-08, - 433.7400913524763 + 1.8157110662036835e-09, + -1.8874192929720874e-05, + 0.0651915711809464, + 358.895660684941 ], "cV": [ - 0.0, - 0.0, - 2.7689755256340264e-08, - 433.7399094545003 + -2.2365486585331262e-09, + 2.089693784319932e-05, + -0.06492040004203695, + 500.7835165371252 ], - "rhomolar_max": 3270.026304880335, - "rhomolar_min": 3269.973461489175 + "rhomolar_max": 3339.892894257803, + "rhomolar_min": 3198.06041887194 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Nitrogen.json b/dev/fluids/Nitrogen.json index 22146fc4..43535332 100644 --- a/dev/fluids/Nitrogen.json +++ b/dev/fluids/Nitrogen.json @@ -501,22 +501,22 @@ ], "critical_region_splines": { "T_max": 126.19200000000001, - "T_min": 126.19199984500558, + "T_min": 126.19199998688855, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -1.7874713257311775e-07, - 126.19399909031777 + -1.547800694886972e-07, + 126.19373104504585 ], "cV": [ 0.0, 0.0, - 1.1629442664483669e-08, - 126.19186993745916 + 9.95463660457675e-10, + 126.19198886683252 ], - "rhomolar_max": 11184.76858012661, - "rhomolar_min": 11170.573704081868 + "rhomolar_max": 11183.986174852074, + "rhomolar_min": 11170.73026187868 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/OrthoDeuterium.json b/dev/fluids/OrthoDeuterium.json index 9184c5b9..e1178cc2 100644 --- a/dev/fluids/OrthoDeuterium.json +++ b/dev/fluids/OrthoDeuterium.json @@ -417,22 +417,22 @@ ], "critical_region_splines": { "T_max": 38.34, - "T_min": 38.33961355465158, + "T_min": 38.33996730937413, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -2.3235096620580277e-06, - 38.38003407147726 + -6.850188755192064e-07, + 38.3518028752252 ], "cV": [ 0.0, 0.0, - 2.3247053545885936e-06, - 38.29994532674044 + 6.843466890793785e-07, + 38.328208706547166 ], - "rhomolar_max": 17396.319664916562, - "rhomolar_min": 17063.76588019465 + "rhomolar_max": 17277.722226405003, + "rhomolar_min": 17182.23089934681 }, "gas_constant": 8.3144621, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/OrthoHydrogen.json b/dev/fluids/OrthoHydrogen.json index d16c8272..b148da88 100644 --- a/dev/fluids/OrthoHydrogen.json +++ b/dev/fluids/OrthoHydrogen.json @@ -2,7 +2,7 @@ "ALIASES": [ "Orthohydrogen", "orthohydrogen", - "ORTHOHYDROGEN", + "ORTHOHYDROGEN", "ORTHOHYD" ], "ANCILLARIES": { @@ -380,22 +380,22 @@ ], "critical_region_splines": { "T_max": 33.22, - "T_min": 33.21999999998802, + "T_min": 33.216973257617425, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -4.57432325893615e-10, - 33.220007064832 + 4.066468806855226e-12, + -2.0485786362827496e-07, + 0.003417899984425546, + 14.316580566669387 ], "cV": [ - 0.0, - 0.0, - 4.301031431449862e-10, - 33.219993357254666 + -3.379814959674437e-12, + 1.404217131242082e-07, + -0.0019188970430762365, + 41.812545688089735 ], - "rhomolar_max": 15444.566501913807, - "rhomolar_min": 15444.512461229047 + "rhomolar_max": 15899.98591137461, + "rhomolar_min": 14989.857909343546 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/ParaDeuterium.json b/dev/fluids/ParaDeuterium.json index 6cc7a143..9801f3aa 100644 --- a/dev/fluids/ParaDeuterium.json +++ b/dev/fluids/ParaDeuterium.json @@ -415,22 +415,22 @@ ], "critical_region_splines": { "T_max": 38.34, - "T_min": 38.33961355465158, + "T_min": 38.33996730937413, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -2.3234750017306126e-06, - 38.38003347427982 + -6.849502299785245e-07, + 38.35180169246253 ], "cV": [ 0.0, 0.0, - 2.3248386159631863e-06, - 38.29994303064696 + 6.848389037037868e-07, + 38.32820022568919 ], - "rhomolar_max": 17396.32214598207, - "rhomolar_min": 17063.77540885253 + "rhomolar_max": 17277.727009113827, + "rhomolar_min": 17182.26523245882 }, "gas_constant": 8.3144621, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/ParaHydrogen.json b/dev/fluids/ParaHydrogen.json index 9fec9ec6..89ad7232 100644 --- a/dev/fluids/ParaHydrogen.json +++ b/dev/fluids/ParaHydrogen.json @@ -2,7 +2,7 @@ "ALIASES": [ "Parahydrogen", "parahydrogen", - "PARAHYDROGEN", + "PARAHYDROGEN", "PARAHYD" ], "ANCILLARIES": { @@ -420,22 +420,22 @@ ], "critical_region_splines": { "T_max": 32.938, - "T_min": 32.93799999997271, + "T_min": 32.93599461397884, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -6.176636722223463e-10, - 32.938009597258144 + 4.253205081213295e-12, + -2.116493776473347e-07, + 0.0034966692458426726, + 13.749966028178376 ], "cV": [ - 0.0, - 0.0, - 5.786265121310599e-10, - 32.93799100930126 + -3.141534424322369e-12, + 1.338646257848717e-07, + -0.0018846003827776433, + 41.68699310689614 ], - "rhomolar_max": 15538.044190612114, - "rhomolar_min": 15537.952830972841 + "rhomolar_max": 15953.359013823481, + "rhomolar_min": 15115.765516662266 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Propylene.json b/dev/fluids/Propylene.json index 4d47650c..d7ccad9f 100644 --- a/dev/fluids/Propylene.json +++ b/dev/fluids/Propylene.json @@ -459,22 +459,22 @@ ], "critical_region_splines": { "T_max": 364.211, - "T_min": 364.20410506132737, + "T_min": 364.21041673548024, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -2.0397446597019764e-10, - 3.2958687540071058e-06, - -0.017748737115287072, - 396.06517964228243 + 0.0, + 0.0, + -6.505035916897591e-06, + 364.2464979809985 ], "cV": [ - 2.0280477994216778e-10, - -3.3625914669476956e-06, - 0.018581444515139024, - 329.9897393682322 + 0.0, + 0.0, + 6.4811926293276935e-06, + 364.17563213182177 ], - "rhomolar_max": 5722.778431306117, - "rhomolar_min": 5189.89767929224 + "rhomolar_max": 5546.663535640788, + "rhomolar_min": 5367.006606323258 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R113.json b/dev/fluids/R113.json index 34644248..a75d08ee 100644 --- a/dev/fluids/R113.json +++ b/dev/fluids/R113.json @@ -376,22 +376,22 @@ ], "critical_region_splines": { "T_max": 487.21000000000004, - "T_min": 487.2031050613274, + "T_min": 487.20941673548026, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 3.6894468782358206e-10, - -4.073513681283046e-06, - 0.014462353513138904, - 470.5229580953627 + 0.0, + 0.0, + -2.1155772356204888e-05, + 487.27322739169836 ], "cV": [ - 1.1946318431162753e-09, - -1.1482911409880193e-05, - 0.03662536226299625, - 448.42495860364784 + 0.0, + 0.0, + 2.1763182218616364e-05, + 487.1449572672853 ], - "rhomolar_max": 3085.865073202007, - "rhomolar_min": 2900.0292736747374 + "rhomolar_max": 3016.2291002048787, + "rhomolar_min": 2961.858589771953 }, "gas_constant": 8.314471, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R116.json b/dev/fluids/R116.json index 227f2b6a..dc6b8bb5 100644 --- a/dev/fluids/R116.json +++ b/dev/fluids/R116.json @@ -346,22 +346,22 @@ ], "critical_region_splines": { "T_max": 293.03000000000003, - "T_min": 293.02999999985843, + "T_min": 293.02697325761744, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -7.658301925164341e-09, - 293.0300340334938 + 5.973701413916427e-10, + -8.378309573561642e-06, + 0.039073782995767505, + 232.42219731732985 ], "cV": [ - 0.0, - 0.0, - 7.708669659796271e-09, - 293.02996574267206 + -4.2587664193266785e-10, + 5.257573775768188e-06, + -0.02149722855677295, + 322.1082759616395 ], - "rhomolar_max": 4444.018490179812, - "rhomolar_min": 4443.981630049213 + "rhomolar_max": 4535.77641861197, + "rhomolar_min": 4355.023810307573 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R12.json b/dev/fluids/R12.json index ab66fac9..35f64219 100644 --- a/dev/fluids/R12.json +++ b/dev/fluids/R12.json @@ -394,22 +394,22 @@ ], "critical_region_splines": { "T_max": 385.12, - "T_min": 385.11310506132736, + "T_min": 385.11941673548023, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 1.384320477183494e-11, - -6.214242836621232e-07, - 0.004900765150571461, - 374.37610683053464 + 0.0, + 0.0, + -1.583911139375003e-05, + 385.1940127028315 ], "cV": [ - 1.8819672379934522e-10, - -3.0664139289381314e-06, - 0.01632960178423799, - 356.56849340248095 + 0.0, + 0.0, + 1.5981068543804365e-05, + 385.04532396245855 ], - "rhomolar_max": 4800.06197048058, - "rhomolar_min": 4549.199865356502 + "rhomolar_max": 4709.605576782584, + "rhomolar_min": 4636.284039366143 }, "gas_constant": 8.314471, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R123.json b/dev/fluids/R123.json index 0e19a3a4..070555d8 100644 --- a/dev/fluids/R123.json +++ b/dev/fluids/R123.json @@ -470,22 +470,22 @@ ], "critical_region_splines": { "T_max": 456.831, - "T_min": 456.83099999999655, + "T_min": 456.7079808473738, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.497293042906961e-09, - 456.83100538489015 + -5.2516982254248e-10, + 4.95822393582125e-06, + -0.015285703141563677, + 472.1032632289936 ], "cV": [ - 0.0, - 0.0, - 1.577833587606056e-09, - 456.8309943254525 + 5.019316578137991e-10, + -6.104407328102757e-06, + 0.024431712288804266, + 424.57182248409964 ], - "rhomolar_max": 3596.419300284971, - "rhomolar_min": 3596.414813901929 + "rhomolar_max": 3965.7364882421543, + "rhomolar_min": 3221.873367889577 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R1233zd(E).json b/dev/fluids/R1233zd(E).json index d939fa78..93671a01 100644 --- a/dev/fluids/R1233zd(E).json +++ b/dev/fluids/R1233zd(E).json @@ -2,7 +2,7 @@ "ALIASES": [ "R1233zdE", "R1233ZDE", - "R1233ZD(E)", + "R1233ZD(E)", "R1233ZD" ], "ANCILLARIES": { diff --git a/dev/fluids/R1234yf.json b/dev/fluids/R1234yf.json index e7b589f6..1a155b21 100644 --- a/dev/fluids/R1234yf.json +++ b/dev/fluids/R1234yf.json @@ -392,22 +392,22 @@ ], "critical_region_splines": { "T_max": 367.85, - "T_min": 367.84799461397887, + "T_min": 367.84983035809745, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -6.280447767869642e-11, - 4.941333351258848e-07, - -0.0008447696692286383, - 367.3343146300655 + 0.0, + 0.0, + -7.28092281910778e-06, + 367.8803614481557 ], "cV": [ - 8.488656120290226e-11, - -1.3525258087977996e-06, - 0.006851813473070161, - 356.6416038903997 + 0.0, + 0.0, + 7.273842039048367e-06, + 367.8196680786972 ], - "rhomolar_max": 4252.211021596844, - "rhomolar_min": 4087.906435621643 + "rhomolar_max": 4193.299505682264, + "rhomolar_min": 4146.67781322612 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R1234ze(E).json b/dev/fluids/R1234ze(E).json index 7dd0cf22..6a38a492 100644 --- a/dev/fluids/R1234ze(E).json +++ b/dev/fluids/R1234ze(E).json @@ -405,22 +405,22 @@ ], "critical_region_splines": { "T_max": 382.52, - "T_min": 382.5194167354802, + "T_min": 382.5199506598222, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -4.227168461645191e-06, - 382.53813455270046 + -7.9305911732753e-07, + 382.5234022236133 ], "cV": [ 0.0, 0.0, - 3.54150649256091e-06, - 382.5048069371469 + 6.090875342473237e-07, + 382.51738701447806 ], - "rhomolar_max": 4427.979956342802, - "rhomolar_min": 4125.306098974923 + "rhomolar_max": 4352.215006013345, + "rhomolar_min": 4208.993289113025 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R1234ze(Z).json b/dev/fluids/R1234ze(Z).json index ddca1f48..47b0a526 100644 --- a/dev/fluids/R1234ze(Z).json +++ b/dev/fluids/R1234ze(Z).json @@ -1,6 +1,6 @@ { "ALIASES": [ - "R1234ZE(Z)", + "R1234ZE(Z)", "R1234ZE" ], "ANCILLARIES": { @@ -349,22 +349,22 @@ ], "critical_region_splines": { "T_max": 423.27, - "T_min": 423.26999999889085, + "T_min": 423.26310506132734, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -2.4196343285339583e-08, - 423.27009972047097 + -1.0661006391670194e-09, + 1.2653370461499062e-05, + -0.04997314613163001, + 488.933234607043 ], "cV": [ - 0.0, - 0.0, - 3.019678505019119e-08, - 423.2698755498882 + -8.160851613585538e-10, + 9.267609720003654e-06, + -0.03480529660648677, + 466.4282367596696 ], - "rhomolar_max": 4121.349202957066, - "rhomolar_min": 4121.266633051825 + "rhomolar_max": 4225.213370352157, + "rhomolar_min": 4025.0245673273625 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R134a.json b/dev/fluids/R134a.json index 81b438c6..94ba8301 100644 --- a/dev/fluids/R134a.json +++ b/dev/fluids/R134a.json @@ -380,22 +380,22 @@ ], "critical_region_splines": { "T_max": 374.21, - "T_min": 373.5716150640238, + "T_min": 374.15599701305536, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -3.1676460727923154e-10, - 4.632248820128229e-06, - -0.022560800178147874, - 410.803318485873 + -2.358891970526994e-10, + 3.35250579170572e-06, + -0.015826824353177796, + 399.0175702243528 ], "cV": [ - 3.734362612529562e-10, - -5.680300209122729e-06, - 0.02879764276811166, - 325.5497395319938 + 2.033032586375043e-10, + -3.2541387283179285e-06, + 0.017300443262052236, + 343.6482870886872 ], - "rhomolar_max": 6152.557816507652, - "rhomolar_min": 3872.298405322532 + "rhomolar_max": 5442.556273932187, + "rhomolar_min": 4580.218882520725 }, "gas_constant": 8.314471, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R143a.json b/dev/fluids/R143a.json index 86fee42a..9b0758a5 100644 --- a/dev/fluids/R143a.json +++ b/dev/fluids/R143a.json @@ -381,22 +381,22 @@ ], "critical_region_splines": { "T_max": 345.857, - "T_min": 345.8556713196614, + "T_min": 345.85688760275673, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -2.8895140603394883e-11, - 2.005756782258384e-07, - 0.00022262855324051985, - 343.3373934663645 + 0.0, + 0.0, + -5.242214594297355e-06, + 345.88388443543613 ], "cV": [ - 5.7189072201719986e-11, - -1.123885386251343e-06, - 0.0070151907568205005, - 331.72539959954764 + 0.0, + 0.0, + 5.221395136669298e-06, + 345.8302223361114 ], - "rhomolar_max": 5201.926128087604, - "rhomolar_min": 5055.283375792975 + "rhomolar_max": 5149.890794010884, + "rhomolar_min": 5106.923714331294 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R152A.json b/dev/fluids/R152A.json index 425ee71c..5c23d7e5 100644 --- a/dev/fluids/R152A.json +++ b/dev/fluids/R152A.json @@ -468,22 +468,22 @@ ], "critical_region_splines": { "T_max": 386.411, - "T_min": 386.41099999999204, + "T_min": 386.2879808473738, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.441541916647247e-09, - 386.41100803148214 + -1.1446811820239007e-10, + 1.646295645058246e-06, + -0.007684872988074046, + 397.9206701191548 ], "cV": [ - 0.0, - 0.0, - 1.4566499622392455e-09, - 386.4109918843441 + 1.0521854870590392e-10, + -2.0174071540863595e-06, + 0.012681483095329345, + 360.1823139464937 ], - "rhomolar_max": 5571.457898124929, - "rhomolar_min": 5571.4469054491965 + "rhomolar_max": 6176.35151183272, + "rhomolar_min": 4954.90121849081 }, "gas_constant": 8.314471, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R161.json b/dev/fluids/R161.json index e43d37f8..8d1eabf3 100644 --- a/dev/fluids/R161.json +++ b/dev/fluids/R161.json @@ -397,22 +397,22 @@ ], "critical_region_splines": { "T_max": 375.25, - "T_min": 375.24867131966136, + "T_min": 375.2498876027567, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, - -2.3597508647707754e-08, - 0.00029638470861520266, - 374.31935201494827 + 0.0, + -1.0274211653082636e-06, + 375.25645220491816 ], "cV": [ 0.0, - -1.4520865417565774e-08, - 0.00018238206964464205, - 374.6773203013158 + 0.0, + 6.800670480519312e-07, + 375.24572917893823 ], - "rhomolar_max": 6517.288765706664, - "rhomolar_min": 5977.507922869694 + "rhomolar_max": 6389.397438091061, + "rhomolar_min": 6114.726232371929 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R218.json b/dev/fluids/R218.json index e980d6bb..6d452975 100644 --- a/dev/fluids/R218.json +++ b/dev/fluids/R218.json @@ -344,22 +344,22 @@ ], "critical_region_splines": { "T_max": 345.02, - "T_min": 345.01999999990613, + "T_min": 345.01867131966134, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.156582542340429e-08, - 345.0200386298569 + 2.115849844779737e-09, + -2.2622652824384362e-05, + 0.08030859728161308, + 250.32261200217556 ], "cV": [ - 0.0, - 0.0, - 1.1490855119850737e-08, - 345.0199616205439 + -1.5113366978895236e-09, + 1.3734866737761167e-05, + -0.04116930680731554, + 385.6167633643665 ], - "rhomolar_max": 3340.008115750424, - "rhomolar_min": 3339.9918305420742 + "rhomolar_max": 3371.3072650243957, + "rhomolar_min": 3308.7608519066903 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R22.json b/dev/fluids/R22.json index d5e218bd..83b474ca 100644 --- a/dev/fluids/R22.json +++ b/dev/fluids/R22.json @@ -473,22 +473,22 @@ ], "critical_region_splines": { "T_max": 369.295, - "T_min": 369.29499999999473, + "T_min": 369.29299461397886, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -8.277256091856358e-10, - 369.29500501454385 + -6.068711638786403e-11, + 9.60793099642547e-07, + -0.004959370923967982, + 377.5706211619357 ], "cV": [ - 0.0, - 0.0, - 9.036108521741466e-10, - 369.2949945257267 + 2.0197560844726486e-11, + -5.076049994717274e-07, + 0.003926491093801074, + 359.64667998370135 ], - "rhomolar_max": 6058.226375538457, - "rhomolar_min": 6058.214137613641 + "rhomolar_max": 6174.151068396738, + "rhomolar_min": 5939.762656878844 }, "gas_constant": 8.31451, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R227EA.json b/dev/fluids/R227EA.json index 7dad8218..06f10a78 100644 --- a/dev/fluids/R227EA.json +++ b/dev/fluids/R227EA.json @@ -416,22 +416,22 @@ ], "critical_region_splines": { "T_max": 374.90000000000003, - "T_min": 374.89999999993785, + "T_min": 374.8931050613274, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -4.848721869600648e-09, - 374.90001694628296 + -5.875126621910152e-10, + 5.780632973589872e-06, + -0.01887717891595377, + 395.3469681114307 ], "cV": [ - 0.0, - 0.0, - 4.855705508254663e-09, - 374.8999830293093 + 1.1730303150524067e-10, + -1.607222079285808e-06, + 0.006935903946970884, + 365.2834297632339 ], - "rhomolar_max": 3495.0128237303156, - "rhomolar_min": 3494.9871917055066 + "rhomolar_max": 3618.508261092158, + "rhomolar_min": 3362.517912603551 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R236EA.json b/dev/fluids/R236EA.json index f28c1b38..10778525 100644 --- a/dev/fluids/R236EA.json +++ b/dev/fluids/R236EA.json @@ -394,22 +394,22 @@ ], "critical_region_splines": { "T_max": 412.44, - "T_min": 407.44, + "T_min": 412.01703429466085, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -7.988424303242158e-10, - 8.554876458658245e-06, - -0.030487020885094897, - 448.58939769263844 + -9.065638596766866e-10, + 9.956613016634915e-06, + -0.036442262498707786, + 456.8904836061875 ], "cV": [ - 0.0, - -1.915826026167026e-06, - 0.01423841902647334, - 385.9850174488125 + 8.719771420305249e-10, + -9.978606681376363e-06, + 0.03803850767350116, + 364.13631933098907 ], - "rhomolar_max": 5423.60551214582, - "rhomolar_min": 2100.4999798205076 + "rhomolar_max": 4440.255966785143, + "rhomolar_min": 3017.4925122772956 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R245fa.json b/dev/fluids/R245fa.json index 7115f57e..fa53974d 100644 --- a/dev/fluids/R245fa.json +++ b/dev/fluids/R245fa.json @@ -387,22 +387,22 @@ ], "critical_region_splines": { "T_max": 427.01, - "T_min": 427.00867131966135, + "T_min": 427.0096135546516, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, - -3.531037635318706e-08, - 0.0002736554167372022, - 426.47979263007164 + 0.0, + -2.7068259197787627e-06, + 427.02048895043913 ], "cV": [ 0.0, - -4.30215593700091e-08, - 0.00033341708511756433, - 426.3640043975847 + 0.0, + 3.086102462886277e-06, + 426.9980413529563 ], - "rhomolar_max": 4068.9809495988143, - "rhomolar_min": 3699.261392719093 + "rhomolar_max": 4017.7669749909037, + "rhomolar_min": 3749.7788341360238 }, "gas_constant": 8.3144621, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R32.json b/dev/fluids/R32.json index 5d309c0a..fedd446a 100644 --- a/dev/fluids/R32.json +++ b/dev/fluids/R32.json @@ -374,22 +374,22 @@ ], "critical_region_splines": { "T_max": 351.255, - "T_min": 351.254978340633, + "T_min": 351.25499816776613, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -9.240003401086692e-07, - 351.2625306809423 + -4.041924265889875e-07, + 351.25829420247135 ], "cV": [ 0.0, 0.0, - 8.673043856669974e-07, - 351.24793139588286 + 1.4328717651880036e-07, + 351.2538321973893 ], - "rhomolar_max": 8173.525464736033, - "rhomolar_min": 8125.111398713756 + "rhomolar_max": 8154.617673148497, + "rhomolar_min": 8137.297455089546 }, "gas_constant": 8.314471, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/R41.json b/dev/fluids/R41.json index fc176445..b1635982 100644 --- a/dev/fluids/R41.json +++ b/dev/fluids/R41.json @@ -357,22 +357,22 @@ ], "critical_region_splines": { "T_max": 317.28000000000003, - "T_min": 317.2799999997863, + "T_min": 317.2695934234679, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -5.946649378688733e-09, - 317.2800553038393 + 8.947784934150927e-11, + -2.661886245206215e-06, + 0.0262942665921942, + 230.99772757769114 ], "cV": [ - 0.0, - 0.0, - 5.876648086292159e-09, - 317.2799453471728 + -8.480951160041928e-11, + 2.20398173327229e-06, + -0.018988536263903795, + 371.46813146596344 ], - "rhomolar_max": 9300.035945660456, - "rhomolar_min": 9299.963628495072 + "rhomolar_max": 9571.518280811737, + "rhomolar_min": 9026.378810480832 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Toluene.json b/dev/fluids/Toluene.json index 29322593..b83537b6 100644 --- a/dev/fluids/Toluene.json +++ b/dev/fluids/Toluene.json @@ -351,22 +351,22 @@ ], "critical_region_splines": { "T_max": 591.75, - "T_min": 591.7499999988909, + "T_min": 591.7342932852254, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -5.244356221448451e-08, - 591.7501661936486 + 3.3834089871987155e-09, + -3.464558495481263e-05, + 0.11764944401792847, + 459.1727413679192 ], "cV": [ - 0.0, - 0.0, - 5.267522401490593e-08, - 591.7498330722151 + -2.3379515587297088e-09, + 1.972502928601055e-05, + -0.05458017218397031, + 641.0297738234855 ], - "rhomolar_max": 3169.0211483621283, - "rhomolar_min": 3168.9789444501107 + "rhomolar_max": 3253.6261257770193, + "rhomolar_min": 3086.5243371577894 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Water.json b/dev/fluids/Water.json index 1cee1d86..1d7bf141 100644 --- a/dev/fluids/Water.json +++ b/dev/fluids/Water.json @@ -643,22 +643,22 @@ ], "critical_region_splines": { "T_max": 647.096, - "T_min": 647.0891050613274, + "T_min": 647.0954167354802, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -4.042762309098527e-12, - 2.0584764946656947e-07, - -0.0034839041164477923, - 666.6888430405046 + 0.0, + 0.0, + -2.6319631259532804e-06, + 647.1430429930077 ], "cV": [ - 3.9619849743940495e-12, - -2.2308973462071218e-07, - 0.004177682638992649, - 621.0723284163671 + 0.0, + 0.0, + 2.6053577217441603e-06, + 647.0494325447503 ], - "rhomolar_max": 18580.861739248718, - "rhomolar_min": 17158.467276424304 + "rhomolar_max": 18095.336161027783, + "rhomolar_min": 17649.856810851063 }, "gas_constant": 8.314371357587, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/Xenon.json b/dev/fluids/Xenon.json index 9f18c9d8..4aed0c3f 100644 --- a/dev/fluids/Xenon.json +++ b/dev/fluids/Xenon.json @@ -352,22 +352,22 @@ ], "critical_region_splines": { "T_max": 289.733, - "T_min": 289.73299999832597, + "T_min": 289.72843171770734, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.954188845616281e-08, - 289.73316415186304 + 2.4311831644858725e-10, + -6.354625581839551e-06, + 0.05529442454906748, + 129.54501621008842 ], "cV": [ - 0.0, - 0.0, - 1.9705426830168584e-08, - 289.73283447441463 + -2.2130895526715094e-10, + 5.34493631486394e-06, + -0.04294825043876369, + 404.53030033147684 ], - "rhomolar_max": 8400.08566414265, - "rhomolar_min": 8399.915046038452 + "rhomolar_max": 8554.90344650679, + "rhomolar_min": 8248.286253998665 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/cis-2-Butene.json b/dev/fluids/cis-2-Butene.json index cebb04cc..890423ab 100644 --- a/dev/fluids/cis-2-Butene.json +++ b/dev/fluids/cis-2-Butene.json @@ -1,7 +1,7 @@ { "ALIASES": [ "Cis-2-Butene", - "CIS-2-BUTENE", + "CIS-2-BUTENE", "C2BUTENE" ], "ANCILLARIES": { diff --git a/dev/fluids/m-Xylene.json b/dev/fluids/m-Xylene.json index eed91d6e..03721dfb 100644 --- a/dev/fluids/m-Xylene.json +++ b/dev/fluids/m-Xylene.json @@ -386,22 +386,22 @@ ], "critical_region_splines": { "T_max": 616.89, - "T_min": 616.8899255305433, + "T_min": 616.8899937003947, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, 0.0, - -1.5295569802554634e-06, - 616.8940762693524 + -2.3188404050194553e-07, + 616.8906179709679 ], "cV": [ 0.0, 0.0, - 1.4085684731752365e-06, - 616.886246165019 + 2.1811620743863226e-07, + 616.8894187203072 ], - "rhomolar_max": 2713.686945041748, - "rhomolar_min": 2612.131106477632 + "rhomolar_max": 2692.1670497921914, + "rhomolar_min": 2636.1181240342576 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/n-Butane.json b/dev/fluids/n-Butane.json index 99b99137..bf205ab1 100644 --- a/dev/fluids/n-Butane.json +++ b/dev/fluids/n-Butane.json @@ -451,22 +451,22 @@ ], "critical_region_splines": { "T_max": 425.125, - "T_min": 425.12499999999653, + "T_min": 425.1219732576174, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.594275970224201e-09, - 425.12500625397735 + -1.6020493306008252e-10, + 1.133822562422527e-06, + -0.0014996904947787396, + 423.23116044183894 ], "cV": [ - 0.0, - 0.0, - 1.671186275109249e-09, - 425.12499344432126 + 5.058796197557434e-11, + -1.3472509771444817e-06, + 0.008234549282093268, + 410.50072741365295 ], - "rhomolar_max": 3922.7717979270105, - "rhomolar_min": 3922.767549762673 + "rhomolar_max": 3985.810039412961, + "rhomolar_min": 3859.458487995192 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/n-Decane.json b/dev/fluids/n-Decane.json index a00edce3..23819acc 100644 --- a/dev/fluids/n-Decane.json +++ b/dev/fluids/n-Decane.json @@ -351,22 +351,22 @@ ], "critical_region_splines": { "T_max": 617.7, - "T_min": 617.6999999974735, + "T_min": 617.6842932852254, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.726981763252328e-07, - 617.7002832250092 + 3.811704985816065e-08, + -0.00019945721156220926, + 0.3466608020285197, + 417.5042285213912 ], "cV": [ - 0.0, - 0.0, - 1.8026843741974914e-07, - 617.6997043597627 + -3.8653700756418197e-08, + 0.00017824366286806788, + -0.2727502335438755, + 756.1055367913187 ], - "rhomolar_max": 1640.014630074043, - "rhomolar_min": 1639.9859844635084 + "rhomolar_max": 1678.7818428517664, + "rhomolar_min": 1601.198950562281 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/n-Dodecane.json b/dev/fluids/n-Dodecane.json index a1f0541e..a82403bc 100644 --- a/dev/fluids/n-Dodecane.json +++ b/dev/fluids/n-Dodecane.json @@ -3,7 +3,7 @@ "nDodecane", "Dodecane", "DODECANE", - "N-DODECANE", + "N-DODECANE", "C12" ], "ANCILLARIES": { @@ -360,22 +360,22 @@ ], "critical_region_splines": { "T_max": 658.1, - "T_min": 658.0842932852254, + "T_min": 658.0986713196614, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ 0.0, - -8.162186259380569e-07, - 0.002171141544995267, - 656.6561908725781 + -2.1192739463715689e-07, + 0.0005637268697348361, + 657.7251216316264 ], "cV": [ - 0.0, - -1.7627161847925473e-06, - 0.00468882505154816, - 654.9819313407205 + 1.345410821444352e-08, + -5.389362597299564e-05, + 0.07196012902658075, + 626.0728305909759 ], - "rhomolar_max": 1468.7201111458296, - "rhomolar_min": 1235.6044584051854 + "rhomolar_max": 1409.180220111776, + "rhomolar_min": 1288.4723365719328 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/n-Nonane.json b/dev/fluids/n-Nonane.json index e2c97cd8..471a0280 100644 --- a/dev/fluids/n-Nonane.json +++ b/dev/fluids/n-Nonane.json @@ -350,22 +350,22 @@ ], "critical_region_splines": { "T_max": 594.5500000000001, - "T_min": 594.5499999988909, + "T_min": 594.5262937515283, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -9.62836132236938e-08, - 594.55017427334 + 2.6268572567217745e-08, + -0.00015162277736042532, + 0.2906990422823534, + 409.3502826161235 ], "cV": [ - 0.0, - 0.0, - 1.0501270033534904e-07, - 594.5498099270125 + -2.3832710380126962e-08, + 0.00012016817674452382, + -0.2007737723861744, + 705.5893640684056 ], - "rhomolar_max": 1810.011518970226, - "rhomolar_min": 1809.9894381092934 + "rhomolar_max": 1866.189822592916, + "rhomolar_min": 1755.3631417347385 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/n-Propane.json b/dev/fluids/n-Propane.json index 6397f516..83125fbd 100644 --- a/dev/fluids/n-Propane.json +++ b/dev/fluids/n-Propane.json @@ -56,7 +56,7 @@ "T_0": 85.525, "T_max": 175, "T_min": 85.525, - "a": 718000000.0, + "a": 718000000.0, "c": 1.283, "p_0": 0.00017207065534365437 } @@ -432,22 +432,22 @@ ], "critical_region_splines": { "T_max": 369.89, - "T_min": 369.8899999999947, + "T_min": 369.88310506132734, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - 0.0, - 0.0, - -1.1383796297589533e-09, - 369.8900056918981 + -1.2699463565482216e-10, + 1.6385267569449435e-06, + -0.0068606698953377855, + 379.1045100099181 ], "cV": [ - 0.0, - 0.0, - 1.237688468336273e-09, - 369.88999381155764 + 1.3753113621718563e-10, + -2.32949579930026e-06, + 0.012980122776713688, + 346.03538907178984 ], - "rhomolar_max": 5000.004634865591, - "rhomolar_min": 4999.995734219138 + "rhomolar_max": 5155.238965206609, + "rhomolar_min": 4845.222396586998 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/p-Xylene.json b/dev/fluids/p-Xylene.json index ed97d2da..1901a966 100644 --- a/dev/fluids/p-Xylene.json +++ b/dev/fluids/p-Xylene.json @@ -384,22 +384,22 @@ ], "critical_region_splines": { "T_max": 616.168, - "T_min": 616.1634317177073, + "T_min": 616.1676135546516, "_note": "Coefficients for the critical cubic spline. T = c[0]*rho^3 + c[1]*rho^2 + c[2]*rho + c[3] with rho in mol/m^3 and T in K", "cL": [ - -5.4532827442939e-09, - 4.400267120267819e-05, - -0.11835258016741836, - 722.277453847427 + 0.0, + 0.0, + -1.1132572209863086e-05, + 616.1979902589276 ], "cV": [ 0.0, - -3.3155928616944385e-07, - 0.0017863883843951315, - 613.7618063017552 + 0.0, + 8.534367674093475e-06, + 616.1450090962354 ], - "rhomolar_max": 2784.1283761391046, - "rhomolar_min": 2576.5395234223492 + "rhomolar_max": 2728.633033173596, + "rhomolar_min": 2648.6389243240715 }, "gas_constant": 8.314472, "gas_constant_units": "J/mol/K", diff --git a/dev/fluids/trans-2-Butene.json b/dev/fluids/trans-2-Butene.json index 365e6421..553078fb 100644 --- a/dev/fluids/trans-2-Butene.json +++ b/dev/fluids/trans-2-Butene.json @@ -1,7 +1,7 @@ { "ALIASES": [ "Trans-2-Butene", - "TRANS-2-BUTENE", + "TRANS-2-BUTENE", "T2BUTENE" ], "ANCILLARIES": { From 4ec1f1358fe1a458d9733d7878b3984e93f34568 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 12:46:59 +0200 Subject: [PATCH 39/54] Integrated CMake into python's setup.py Signed-off-by: Ian Bell --- wrappers/Python/setup.py | 86 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 78 insertions(+), 8 deletions(-) diff --git a/wrappers/Python/setup.py b/wrappers/Python/setup.py index 67773e24..b81db3ea 100644 --- a/wrappers/Python/setup.py +++ b/wrappers/Python/setup.py @@ -14,8 +14,70 @@ def remove_files(): print('files removed.') if __name__=='__main__': - + import subprocess, shutil, os, sys, glob + + if '--cmake-compiler' in sys.argv: + i = sys.argv.index('--cmake-compiler') + sys.argv.pop(i) + cmake_compiler = sys.argv.pop(i) + else: + cmake_compiler = '' + + if '--cmake-bitness' in sys.argv: + i = sys.argv.index('--cmake-bitness') + sys.argv.pop(i) + cmake_bitness = sys.argv.pop(i) + else: + cmake_bitness = '' + + USING_CMAKE = cmake_compiler or cmake_bitness + + cmake_config_args = [] + cmake_build_args = ['--config','"Release"'] + STATIC_LIBRARY_BUILT = False + if USING_CMAKE: + + if 'clean' in sys.argv: + if os.path.exists('cmake_build'): + print('removing cmake_build folder...') + shutil.rmtree('cmake_build') + print('removed.') + + if cmake_compiler == 'vc9': + if cmake_bitness == '32': + generator = ['-G','"Visual Studio 9 2008"'] + elif cmake_bitness == '64': + generator = ['-G','"Visual Studio 9 2008 Win64"'] + else: + raise ValueError('cmake_bitness must be either 32 or 64; got ' + cmake_bitness) + elif cmake_compiler == 'vc10': + if cmake_bitness == '32': + generator = ['-G','"Visual Studio 10 2010"'] + elif cmake_bitness == '64': + generator = ['-G','"Visual Studio 10 2010 Win64"'] + else: + raise ValueError('cmake_bitness must be either 32 or 64; got ' + cmake_bitness) + else: + raise ValueError('cmake_compiler [' + cmake_compiler + '] is invalid') + + cmake_build_dir = os.path.join('cmake_build', '{compiler}-{bitness}bit'.format(compiler=cmake_compiler, bitness=cmake_bitness)) + if not os.path.exists(cmake_build_dir): + os.makedirs(cmake_build_dir) + subprocess.check_call(' '.join(['cmake','../../../..','-DCOOLPROP_STATIC_LIBRARY=ON']+generator+cmake_config_args), shell = True, stdout = sys.stdout, stderr = sys.stderr, cwd = cmake_build_dir) + subprocess.check_call(' '.join(['cmake','--build', '.']+cmake_build_args), shell = True, stdout = sys.stdout, stderr = sys.stderr, cwd = cmake_build_dir) + + # Now find the static library that we just built + if sys.platform == 'win32': + static_libs = [] + for search_suffix in ['Release/*.lib','Release/*.a', 'Debug/*.lib', 'Debug/*.a']: + static_libs += glob.glob(os.path.join(cmake_build_dir,search_suffix)) + + if len(static_libs) != 1: + raise ValueError("Found more than one static library using CMake build. Found: "+str(static_libs)) + else: + STATIC_LIBRARY_BUILT = True + static_library_path = os.path.dirname(static_libs[0]) # Check if a sdist build for pypi pypi = os.path.exists('.use_this_directory_as_root') @@ -68,10 +130,11 @@ if __name__=='__main__': raise ValueError('Could not run script from this folder(' + os.path.abspath(os.path.curdir) + '). Run from wrappers/Python folder') sys.path.append(os.path.join(CProot, 'dev')) - import generate_headers - # Generate the headers - does nothing if up to date - but only if not pypi - generate_headers.generate() - del generate_headers + if not USING_CMAKE: + import generate_headers + # Generate the headers - does nothing if up to date - but only if not pypi + generate_headers.generate() + del generate_headers # Read the version from a bare string stored in file in root directory version = open(os.path.join(CProot,'.version'),'r').read().strip() @@ -121,9 +184,16 @@ if __name__=='__main__': ) ) - CoolProp_module = Extension('CoolProp.CoolProp', - [os.path.join('CoolProp','CoolProp.' + cy_ext)] + sources, - **common_args) + if STATIC_LIBRARY_BUILT == True: + CoolProp_module = Extension('CoolProp.CoolProp', + [os.path.join('CoolProp','CoolProp.' + cy_ext)], + libraries = ['CoolProp'], + library_dirs = [static_library_path], + **common_args) + else: + CoolProp_module = Extension('CoolProp.CoolProp', + [os.path.join('CoolProp','CoolProp.' + cy_ext)] + sources, + **common_args) constants_module = Extension('CoolProp.constants', [os.path.join('CoolProp','constants.' + cy_ext)], **common_args) From 3eab7dcd508eec66d67e70b3ffcfa183043c0a1d Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:01:06 +0200 Subject: [PATCH 40/54] Updated ancillary for SES36 from v4 Signed-off-by: Ian Bell --- dev/fluids/SES36.json | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/dev/fluids/SES36.json b/dev/fluids/SES36.json index fdf15e4e..06453809 100644 --- a/dev/fluids/SES36.json +++ b/dev/fluids/SES36.json @@ -50,23 +50,21 @@ "Tmax": 449.7, "Tmin": 200.0, "description": "rho' = rhoc*(1+sum(n_i*theta^t_i))", - "max_abserror_percentage": 32.94120614200753, + "max_abserror_percentage": -1, "n": [ - 514.1312054060722, - -1848.2456018708629, - 8650.456163417914, - -72548.98608130115, - 94049.29472462909, - -496673.06801196904 + -0.3968, + 17.9889, + -52.375, + 67.9231, + -31.7301 ], "reducing_value": 2800.0, "t": [ - 2.448, - 3.217, - 5.164, - 7.701, - 8.763, - 17.504 + 0.33333333333, + 0.66666666666, + 1.0, + 1.333333333333, + 1.666666666666 ], "type": "rhoLnoexp", "using_tau_r": false From 1c18190ca6b2b4e9c7b7dd64db6863b0e9c57da5 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:01:49 +0200 Subject: [PATCH 41/54] moved flag for critical region splines to Configuration Signed-off-by: Ian Bell --- src/Backends/Helmholtz/Configuration.cpp | 2 ++ src/Backends/Helmholtz/Configuration.h | 2 +- src/Backends/Helmholtz/FlashRoutines.cpp | 5 ++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Backends/Helmholtz/Configuration.cpp b/src/Backends/Helmholtz/Configuration.cpp index 0c209124..5b07f3da 100644 --- a/src/Backends/Helmholtz/Configuration.cpp +++ b/src/Backends/Helmholtz/Configuration.cpp @@ -17,6 +17,8 @@ bool get_config_bool(configuration_keys key) { case NORMALIZE_GAS_CONSTANTS: return true; + case CRITICAL_SPLINES_ENABLED: + return true; default: throw ValueError(format("%d is invalid key to get_config_bool",key)); } diff --git a/src/Backends/Helmholtz/Configuration.h b/src/Backends/Helmholtz/Configuration.h index b061ebde..3fcc4112 100644 --- a/src/Backends/Helmholtz/Configuration.h +++ b/src/Backends/Helmholtz/Configuration.h @@ -4,7 +4,7 @@ #include "Exceptions.h" #include "CoolPropTools.h" -enum configuration_keys {NORMALIZE_GAS_CONSTANTS}; +enum configuration_keys {NORMALIZE_GAS_CONSTANTS, CRITICAL_SPLINES_ENABLED}; namespace CoolProp { diff --git a/src/Backends/Helmholtz/FlashRoutines.cpp b/src/Backends/Helmholtz/FlashRoutines.cpp index e50eff7c..627cec78 100644 --- a/src/Backends/Helmholtz/FlashRoutines.cpp +++ b/src/Backends/Helmholtz/FlashRoutines.cpp @@ -2,6 +2,7 @@ #include "FlashRoutines.h" #include "HelmholtzEOSMixtureBackend.h" #include "PhaseEnvelopeRoutines.h" +#include "Configuration.h" namespace CoolProp{ @@ -158,8 +159,6 @@ void FlashRoutines::QT_flash(HelmholtzEOSMixtureBackend &HEOS) throw ValueError(format("Temperature to QT_flash [%6g K] must be in range [%8g K, %8g K]",HEOS._T, Tmin_sat, Tmax_sat)); } - //splines.enabled = false; - // If exactly at the critical temperature, liquid and vapor have the critial density if (std::abs(T-HEOS.T_critical())< 1e-14){ HEOS.SatL->update(DmolarT_INPUTS, HEOS.rhomolar_critical(), HEOS._T); @@ -167,7 +166,7 @@ void FlashRoutines::QT_flash(HelmholtzEOSMixtureBackend &HEOS) HEOS._rhomolar = HEOS.rhomolar_critical(); HEOS._p = HEOS.SatL->p(); } - else if (splines.enabled && HEOS._T > splines.T_min){ + else if (get_config_bool(CRITICAL_SPLINES_ENABLED) && splines.enabled && HEOS._T > splines.T_min){ double rhoL = _HUGE, rhoV = _HUGE; // Use critical region spline if it has it and temperature is in its range splines.get_densities(T, splines.rhomolar_min, HEOS.rhomolar_critical(), splines.rhomolar_max, rhoL, rhoV); From ef95b824d5304f7467d7f89887735e449e0fba5a Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:03:04 +0200 Subject: [PATCH 42/54] Don't use enthalpy/entropy ancillaries if they don't exist Signed-off-by: Ian Bell --- include/Ancillaries.h | 13 ++++++++----- .../Helmholtz/HelmholtzEOSMixtureBackend.cpp | 4 ++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/include/Ancillaries.h b/include/Ancillaries.h index 4ff7f205..205d0bea 100644 --- a/include/Ancillaries.h +++ b/include/Ancillaries.h @@ -85,17 +85,20 @@ private: std::vector n, t, s; bool using_tau_r; long double Tmax, Tmin, reducing_value, T_r, max_abs_error; - int type; - enum ancillaryfunctiontypes{TYPE_NOT_SET = -1, - TYPE_NOT_EXPONENTIAL = 0, - TYPE_EXPONENTIAL = 1, - TYPE_RATIONAL_POLYNOMIAL = 2}; + enum ancillaryfunctiontypes{TYPE_NOT_SET = 0, + TYPE_NOT_EXPONENTIAL, + TYPE_EXPONENTIAL, + TYPE_RATIONAL_POLYNOMIAL}; + ancillaryfunctiontypes type; std::size_t N; public: SaturationAncillaryFunction(){type = TYPE_NOT_SET;}; SaturationAncillaryFunction(rapidjson::Value &json_code); + /// Return true if the ancillary is enabled + bool enabled(void){return type != TYPE_NOT_SET;} + /// Get the maximum absolute error for this fit /// @returns max_abs_error the maximum absolute error for ancillaries that are characterized by maximum absolute error long double get_max_abs_error(){return max_abs_error;}; diff --git a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp index a7e8e0a0..9188d1f4 100644 --- a/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp +++ b/src/Backends/Helmholtz/HelmholtzEOSMixtureBackend.cpp @@ -915,6 +915,7 @@ void HelmholtzEOSMixtureBackend::p_phase_determination_pure_or_pseudopure(int ot } case iHmolar: { + if (!component.ancillaries.hL.enabled()){break;} // Ancillaries are h-h_anchor, so add back h_anchor long double h_liq = component.ancillaries.hL.evaluate(_TLanc) + component.pEOS->hs_anchor.hmolar; long double h_liq_error_band = component.ancillaries.hL.get_max_abs_error(); @@ -939,6 +940,7 @@ void HelmholtzEOSMixtureBackend::p_phase_determination_pure_or_pseudopure(int ot } case iSmolar: { + if (!component.ancillaries.sL.enabled()){break;} // Ancillaries are s-s_anchor, so add back s_anchor long double s_anchor = component.EOSVector[0].hs_anchor.smolar; long double s_liq = component.ancillaries.sL.evaluate(_TLanc) + s_anchor; @@ -958,7 +960,9 @@ void HelmholtzEOSMixtureBackend::p_phase_determination_pure_or_pseudopure(int ot } case iUmolar: { + if (!component.ancillaries.hL.enabled()){break;} // u = h-p/rho + // Ancillaries are h-h_anchor, so add back h_anchor long double h_liq = component.ancillaries.hL.evaluate(_TLanc) + component.EOSVector[0].hs_anchor.hmolar; long double h_liq_error_band = component.ancillaries.hL.get_max_abs_error(); From 0c5c7ec01ca67204b8a55f5dd052b142c9fb8303 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:06:12 +0200 Subject: [PATCH 43/54] CMake does not use EXTERNC by default for static library * Unless you ask for -DCOOLPROP_EXTERN_STATIC_LIBRARY=ON Signed-off-by: Ian Bell --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6913bbe1..9ed2884e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -143,14 +143,18 @@ if (COOLPROP_SHARED_LIBRARY) list(APPEND APP_SOURCES "${CMAKE_SOURCE_DIR}/src/CoolPropLib.cpp") endif() -if (COOLPROP_STATIC_LIBRARY_MODULE OR COOLPROP_STATIC_LIBRARY) +if (COOLPROP_STATIC_LIBRARY_MODULE OR COOLPROP_STATIC_LIBRARY OR COOLPROP_EXTERNC_STATIC_LIBRARY) list(APPEND APP_SOURCES "${CMAKE_SOURCE_DIR}/src/CoolPropLib.cpp") add_library(${app_name} STATIC ${APP_SOURCES}) add_dependencies (${app_name} generate_headers) - set_target_properties (${app_name} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -DEXTERNC") install (TARGETS ${app_name} DESTINATION static_library/${CMAKE_SYSTEM_NAME}) endif() +if (COOLPROP_EXTERNC_STATIC_LIBRARY) + set_target_properties (${app_name} PROPERTIES COMPILE_FLAGS "${COMPILE_FLAGS} -DEXTERNC") +endif() + + if (COOLPROP_64BIT_SHARED_LIBRARY_MODULE OR COOLPROP_64BIT_SHARED_LIBRARY) list(APPEND APP_SOURCES "${CMAKE_SOURCE_DIR}/src/CoolPropLib.cpp") add_library(${app_name} SHARED ${APP_SOURCES}) From 5b2f054010646b51b9e1de1f752c31a762bddc48 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:17:29 +0200 Subject: [PATCH 44/54] When using CMake, touch CoolProp.pyx to make sure rebuild actually happens Signed-off-by: Ian Bell --- wrappers/Python/setup.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/wrappers/Python/setup.py b/wrappers/Python/setup.py index b81db3ea..2ec7468b 100644 --- a/wrappers/Python/setup.py +++ b/wrappers/Python/setup.py @@ -13,8 +13,14 @@ def remove_files(): os.remove(os.path.join('CoolProp', 'CoolPropBibTeXLibrary.bib')) print('files removed.') +def touch(fname): + open(fname, 'a').close() + os.utime(fname, None) + if __name__=='__main__': + + import subprocess, shutil, os, sys, glob if '--cmake-compiler' in sys.argv: @@ -38,6 +44,9 @@ if __name__=='__main__': STATIC_LIBRARY_BUILT = False if USING_CMAKE: + # Always force build since any changes in the C++ files will not force a rebuild + touch('CoolProp/CoolProp.pyx') + if 'clean' in sys.argv: if os.path.exists('cmake_build'): print('removing cmake_build folder...') From 2e190f1a9ddf5f93a683e35caaa6da9f87207f81 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:18:47 +0200 Subject: [PATCH 45/54] PropsSI and Props function docs Signed-off-by: Ian Bell --- src/CoolPropLib.cpp | 2 +- wrappers/Python/CoolProp/CoolProp.pxd | 2 +- wrappers/Python/CoolProp/CoolProp.pyx | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/CoolPropLib.cpp b/src/CoolPropLib.cpp index b0fe63af..5842db37 100644 --- a/src/CoolPropLib.cpp +++ b/src/CoolPropLib.cpp @@ -97,7 +97,7 @@ EXPORT_CODE double CONVENTION PropsS(const char *Output, const char* Name1, doub double val = Props(Output,Name1[0],Prop1,Name2[0],Prop2,Ref); return val; } -EXPORT_CODE double CONVENTION Props(const char *Output, char Name1, double Prop1, char Name2, double Prop2, const char * Ref) +EXPORT_CODE double CONVENTION Props(const char *Output, const char Name1, double Prop1, const char Name2, double Prop2, const char * Ref) { try { diff --git a/wrappers/Python/CoolProp/CoolProp.pxd b/wrappers/Python/CoolProp/CoolProp.pxd index 70294aba..f8c6deb6 100644 --- a/wrappers/Python/CoolProp/CoolProp.pxd +++ b/wrappers/Python/CoolProp/CoolProp.pxd @@ -24,7 +24,7 @@ cdef extern from "DataStructures.h" namespace "CoolProp": constants_header.input_pairs _generate_update_pair "CoolProp::generate_update_pair"(long key1, double value1, long key2, double value2, double &out1, double &out2) except + cdef extern from "CoolPropLib.h": - double _Props "Props"(const char* Output, char Name1, double Prop1, char Name2, double Prop2, const char* Ref) + double _Props "Props"(const char* Output, const char Name1, double Prop1, const char Name2, double Prop2, const char* Ref) cdef extern from "CoolProp.h" namespace "CoolProp": double _Props1SI "CoolProp::Props1SI"(string Ref, string Output) diff --git a/wrappers/Python/CoolProp/CoolProp.pyx b/wrappers/Python/CoolProp/CoolProp.pyx index 0dedc70a..aa98be71 100644 --- a/wrappers/Python/CoolProp/CoolProp.pyx +++ b/wrappers/Python/CoolProp/CoolProp.pyx @@ -153,7 +153,7 @@ cpdef __Props_err2(fcn, in1, in2, in3, in4, in5, in6): cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None): """ - A Python wrapper of :cpapi:'`CoolProp::Props`. This function is deprecated, use PropsSI instead + A Python wrapper of :cpapi:`CoolProp::Props`. This function is deprecated, use PropsSI instead """ import warnings dep_warning = "Props() function is deprecated; Use the PropsSI() function" @@ -172,7 +172,7 @@ cpdef Props(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None): cpdef PropsSI(in1, in2, in3 = None, in4 = None, in5 = None, in6 = None, in7 = None): """ - A Python wrapper of C++ function :cpapi:'`CoolProp::PropsSI`. + A Python wrapper of C++ function :cpapi:`CoolProp::PropsSI` . """ cdef double val From c1e9bc49790299760955d307a6c6bfa8b87d6511 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:19:20 +0200 Subject: [PATCH 46/54] Removed deriv terms from CoolProp.h header Signed-off-by: Ian Bell --- include/CoolProp.h | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/include/CoolProp.h b/include/CoolProp.h index 8028225a..d6a199aa 100644 --- a/include/CoolProp.h +++ b/include/CoolProp.h @@ -161,19 +161,7 @@ You might want to start by looking at CoolProp.h /// @param T Temperature [K] /// @param p Pressure [kPa] /// @returns Phase as string, one of ""Two-Phase","Supercritical","Gas","Liquid" - std::string Phase_Tp(std::string FluidName, double T, double p); - /// Return some low level derivative terms, see source for a complete list - /// @param Term String, some options are "phir" (residual Helmholtz energy),"dphir_dDelta", "dphir_dTau", etc. - /// @param T Temperature [K] - /// @param rho Density [kg/m^3] - /// @param FluidName String - double DerivTerms(std::string Term, double T, double rho, std::string FluidName); - /// Return some low level derivative terms, see source for a complete list - /// @param iTerm long desired output - /// @param T Temperature [K] - /// @param rho Density [kg/m^3] - /// @param pFluid Pointer to Fluid instance - double DerivTerms(long iTerm, double T, double rho, Fluid * pFluid);*/ + std::string Phase_Tp(std::string FluidName, double T, double p);*/ } /* namespace CoolProp */ #endif From b4f288a206ade85b878bedae1e274cfbbc894747 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:21:09 +0200 Subject: [PATCH 47/54] Fortran needs EXTERNC in the static library Signed-off-by: Ian Bell --- Web/coolprop/wrappers/FORTRAN/index.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Web/coolprop/wrappers/FORTRAN/index.rst b/Web/coolprop/wrappers/FORTRAN/index.rst index 3a3e316e..4ee5e066 100644 --- a/Web/coolprop/wrappers/FORTRAN/index.rst +++ b/Web/coolprop/wrappers/FORTRAN/index.rst @@ -30,14 +30,14 @@ On linux/OSX, start in root folder of recursively-cloned CoolProp repo and do:: mkdir build && cd build mkdir gccstatic && cd gccstatic - cmake ../.. -DCOOLPROP_STATIC_LIBRARY=ON + cmake ../.. -DCOOLPROP_EXTERNC_STATIC_LIBRARY=ON cmake --build . -On Windows, the call to CMake should be done using the MinGW generator, but otherwise procedure is the same:: +On Windows, the call to CMake should be done using the MinGW generator, but otherwise the procedure is the same:: mkdir build && cd build mkdir gccstatic && cd gccstatic - cmake ../.. -G "MinGW Makefiles" -DCOOLPROP_STATIC_LIBRARY=ON + cmake ../.. -G "MinGW Makefiles" -DCOOLPROP_EXTERNC_STATIC_LIBRARY=ON cmake --build . This will generate the file libCoolProp.a which is a GCC static library that can be linked with GCC/GFORTRAN code. Copy this .a file into the directory with the coolprop FORTRAN example ``cool_fortran_bind.f90``: From 0746859e3d58b94d29fda449e7c9d76bc5e0a73b Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Sat, 27 Sep 2014 18:30:24 +0200 Subject: [PATCH 48/54] Fixed typo in FORTRAN docs Signed-off-by: Ian Bell --- Web/coolprop/wrappers/FORTRAN/index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Web/coolprop/wrappers/FORTRAN/index.rst b/Web/coolprop/wrappers/FORTRAN/index.rst index 4ee5e066..6b6ac011 100644 --- a/Web/coolprop/wrappers/FORTRAN/index.rst +++ b/Web/coolprop/wrappers/FORTRAN/index.rst @@ -9,7 +9,7 @@ Compilers On linux, you need gcc and gfortran, which are easy to install using your package manager. -On windows, the most reliable mixed compilation seems to be using the mingw-provided gfortran/gcc combination from mingw-get. Theese are the versions used as of June 20, 2014:: +On windows, the most reliable mixed compilation seems to be using the mingw-provided gfortran/gcc combination from mingw-get. These are the versions used as of June 20, 2014:: >gfortran --version GNU Fortran (GCC) 4.8.1 From 1bff16ee93614f4fb51816466dbd655592130ce0 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 1 Oct 2014 17:55:39 +0200 Subject: [PATCH 49/54] Add PYPI slave Signed-off-by: Ian Bell --- CMakeLists.txt | 8 +------- dev/buildbot/master/master.cfg | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ed2884e..2ce6807a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -661,15 +661,9 @@ if (COOLPROP_PYTHON_BINARIES) endif() if (COOLPROP_PYTHON_PYPI) - - if (DEFINED AND_UPLOAD) - set(_AND_UPLOAD upload) - else() - set(_AND_UPLOAD ) - endif() add_custom_target(CoolProp - COMMAND python prepare_pypi.py ${_AND_UPLOAD} --dist-dir=${CMAKE_INSTALL_PREFIX}/Python + COMMAND python prepare_pypi.py --dist-dir=${CMAKE_INSTALL_PREFIX}/Python WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/wrappers/Python/pypi ) endif() diff --git a/dev/buildbot/master/master.cfg b/dev/buildbot/master/master.cfg index ac800329..a3373220 100644 --- a/dev/buildbot/master/master.cfg +++ b/dev/buildbot/master/master.cfg @@ -151,6 +151,25 @@ def python_slave(key, platform, conda_env, cmake_args = [], cmake_env = {}, buil return factory +def python_source_slave(key, platform, conda_env, cmake_args = [], cmake_env = {}, build_args = [], git_mode = 'incremental'): + factory = BuildFactory() + working_folder = "build/build" + + factory.addStep(ShellCommand(command=cleanCommand, description='fullclean?', workdir="")) + # Check out sources + factory.addStep(Git(repourl='git://github.com/CoolProp/CoolProp', mode=git_mode, submodules = True, progress=True, haltOnFailure = True)) + # Remove the temporary folder for installs + factory.addStep(RemoveDirectory(dir="build/install_root", haltOnFailure = True)) + factory.addStep(MakeDirectory(dir=working_folder, haltOnFailure = True)) + + factory.addStep(ShellCommand(command = ' '.join(source + ["activate",conda_env,"&&","cmake", "..", "-DCOOLPROP_PYTHON_PYPI=ON"]+cmake_args), + env = cmake_env, + workdir= working_folder, + haltOnFailure = True)) + factory.addStep(DirectoryUpload(slavesrc="install_root", masterdest="public_html/binaries", url="binaries", compress="bz2")) + + return factory + def deb_slave(git_mode = 'incremental'): factory = BuildFactory() working_folder = "build/wrappers/DEB" @@ -298,7 +317,7 @@ BuilderConfig(name="Javascript-linux", c['builders'].append( BuilderConfig(name="Python-sdist", slavenames=["OSX-slave"], - factory = python_slave("PYPI", platform = 'OSX', conda_env = 'py27') + factory = python_source_slave("PYPI", platform = 'OSX', conda_env = 'py27') ) ) From 573f1f8707cbe1337ee731caacd38e7cc380a328 Mon Sep 17 00:00:00 2001 From: coolprop Date: Wed, 1 Oct 2014 09:08:14 -0700 Subject: [PATCH 50/54] Fix buildbot for PYPI --- dev/buildbot/master/master.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/buildbot/master/master.cfg b/dev/buildbot/master/master.cfg index a3373220..d4cc6e30 100644 --- a/dev/buildbot/master/master.cfg +++ b/dev/buildbot/master/master.cfg @@ -162,7 +162,7 @@ def python_source_slave(key, platform, conda_env, cmake_args = [], cmake_env = { factory.addStep(RemoveDirectory(dir="build/install_root", haltOnFailure = True)) factory.addStep(MakeDirectory(dir=working_folder, haltOnFailure = True)) - factory.addStep(ShellCommand(command = ' '.join(source + ["activate",conda_env,"&&","cmake", "..", "-DCOOLPROP_PYTHON_PYPI=ON"]+cmake_args), + factory.addStep(ShellCommand(command = ' '.join(['source',"activate",conda_env,"&&","cmake", "..", "-DCOOLPROP_PYTHON_PYPI=ON","&&","cmake","--build","."]+cmake_args), env = cmake_env, workdir= working_folder, haltOnFailure = True)) From 54b1d59a67ee277f957984200cdc4c71fac8497a Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 1 Oct 2014 19:05:54 +0200 Subject: [PATCH 51/54] Generate the CPP files for PYPI Signed-off-by: Ian Bell --- wrappers/Python/pypi/prepare_pypi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wrappers/Python/pypi/prepare_pypi.py b/wrappers/Python/pypi/prepare_pypi.py index e7d0c47b..40fa4c8b 100644 --- a/wrappers/Python/pypi/prepare_pypi.py +++ b/wrappers/Python/pypi/prepare_pypi.py @@ -23,7 +23,7 @@ if __name__=='__main__': import shutil, os, sys, subprocess - subprocess.check_call('python generate_headers.py', shell = True, cwd = os.path.join('..','..','..','dev'), stdout = sys.stdout, stderr = sys.stderr) + subprocess.check_call('python setup.py build_ext --inplace', shell = True, cwd = os.path.join('..'), stdout = sys.stdout, stderr = sys.stderr) name = 'CoolProp' # Make a temporary directory in this folder From 2aec8babf48ace1a77d997d27520bc127429f09f Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Wed, 1 Oct 2014 19:52:46 +0200 Subject: [PATCH 52/54] run cython to generate headers Signed-off-by: Ian Bell --- wrappers/Python/pypi/prepare_pypi.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wrappers/Python/pypi/prepare_pypi.py b/wrappers/Python/pypi/prepare_pypi.py index 40fa4c8b..6b624c2a 100644 --- a/wrappers/Python/pypi/prepare_pypi.py +++ b/wrappers/Python/pypi/prepare_pypi.py @@ -21,9 +21,11 @@ def collect(tmp): if __name__=='__main__': - import shutil, os, sys, subprocess + import shutil, os, sys, subprocess, glob - subprocess.check_call('python setup.py build_ext --inplace', shell = True, cwd = os.path.join('..'), stdout = sys.stdout, stderr = sys.stderr) + subprocess.check_call('python generate_headers.py', shell = True, cwd = os.path.join('..','..','..','dev'), stdout = sys.stdout, stderr = sys.stderr) + for pyx in ['CoolProp.pyx','constants.pyx']: + subprocess.check_call('cython --cplus '+os.path.split(pyx)[1], shell = True, cwd = os.path.join('..','CoolProp'), stdout = sys.stdout, stderr = sys.stderr) name = 'CoolProp' # Make a temporary directory in this folder From 70f737c55d2e532e4a02dd2059df797320506a93 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 2 Oct 2014 09:57:01 +0200 Subject: [PATCH 53/54] Predefined mixtures are added, can be accessed with a fluid name like R410A.mix Closes https://github.com/CoolProp/CoolProp/issues/153 Signed-off-by: Ian Bell --- dev/generate_headers.py | 7 +- dev/mixtures/predefined_mixtures.json | 1077 ++++++++++++++++++ src/AbstractState.cpp | 2 +- src/Backends/Helmholtz/HelmholtzEOSBackend.h | 24 +- src/Backends/Helmholtz/MixtureParameters.cpp | 42 + src/Backends/Helmholtz/MixtureParameters.h | 5 + 6 files changed, 1151 insertions(+), 6 deletions(-) create mode 100644 dev/mixtures/predefined_mixtures.json diff --git a/dev/generate_headers.py b/dev/generate_headers.py index ce079097..9c4f2c9d 100644 --- a/dev/generate_headers.py +++ b/dev/generate_headers.py @@ -38,7 +38,8 @@ values = [ ('all_fluids.json','all_fluids_JSON.h','all_fluids_JSON'), ('all_incompressibles.json','all_incompressibles_JSON.h','all_incompressibles_JSON'), ('mixtures/mixture_departure_functions.json', 'mixture_departure_functions_JSON.h', 'mixture_departure_functions_JSON'), - ('mixtures/mixture_binary_pairs.json', 'mixture_binary_pairs_JSON.h', 'mixture_binary_pairs_JSON') + ('mixtures/mixture_binary_pairs.json', 'mixture_binary_pairs_JSON.h', 'mixture_binary_pairs_JSON'), + ('mixtures/predefined_mixtures.json', 'predefined_mixtures_JSON.h', 'predefined_mixtures_JSON') ] def TO_CPP(root_dir, hashes): @@ -67,8 +68,6 @@ def TO_CPP(root_dir, hashes): subprocess.call('python -mjson.tool '+file, shell = True) raise ValueError('unable to decode file %s' % file) - - json = open(os.path.join(root_dir,'dev',infile),'r').read().encode('ascii') # convert each character to hex and add a terminating NULL character to end the @@ -90,7 +89,7 @@ def TO_CPP(root_dir, hashes): if variable not in hashes or (variable in hashes and hashes[variable] != get_hash(hex_string.encode('ascii'))): # Generate the output string - output = '// File generated by the script dev/JSON_to_CPP.py on '+ str(datetime.now()) + '\n\n' + output = '// File generated by the script dev/generate_headers.py on '+ str(datetime.now()) + '\n\n' output += '// JSON file encoded in binary form\n' output += 'const unsigned char '+variable+'_binary[] = {\n' + hex_string + '\n};'+'\n\n' output += '// Combined into a single std::string \n' diff --git a/dev/mixtures/predefined_mixtures.json b/dev/mixtures/predefined_mixtures.json new file mode 100644 index 00000000..f521eb5f --- /dev/null +++ b/dev/mixtures/predefined_mixtures.json @@ -0,0 +1,1077 @@ +[ + { + "fluids": [ + "NITROGEN", + "ARGON", + "OXYGEN" + ], + "mole_fractions": [ + 0.7812, + 0.0092, + 0.2096 + ], + "name": "Air" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE", + "IPENTANE", + "PENTANE", + "HEXANE" + ], + "mole_fractions": [ + 0.906724, + 0.031284, + 0.004676, + 0.045279, + 0.00828, + 0.001037, + 0.001563, + 0.000321, + 0.000443, + 0.000393 + ], + "name": "Amarillo" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE", + "IPENTANE", + "PENTANE" + ], + "mole_fractions": [ + 0.859063, + 0.010068, + 0.014954, + 0.084919, + 0.023015, + 0.003486, + 0.003506, + 0.000509, + 0.00048 + ], + "name": "Ekofisk" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE", + "IPENTANE", + "PENTANE", + "HEXANE" + ], + "mole_fractions": [ + 0.965222, + 0.002595, + 0.005956, + 0.018186, + 0.004596, + 0.000977, + 0.001007, + 0.000473, + 0.000324, + 0.000664 + ], + "name": "GulfCoast" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE" + ], + "mole_fractions": [ + 0.81212, + 0.05702, + 0.07585, + 0.04303, + 0.00895, + 0.00151, + 0.00152 + ], + "name": "HighCO2" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE" + ], + "mole_fractions": [ + 0.81441, + 0.13465, + 0.00985, + 0.033, + 0.00605, + 0.001, + 0.00104 + ], + "name": "HighN2" + }, + { + "fluids": [ + "METHANE", + "NITROGEN", + "CO2", + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE", + "IPENTANE", + "PENTANE", + "HEXANE" + ], + "mole_fractions": [ + 0.95123, + 0.00089, + 0.02555, + 0.01835, + 0.00238, + 0.0004, + 0.00016, + 0.00014, + 0.00011, + 0.00079 + ], + "name": "NaturalGasSample" + }, + { + "fluids": [ + "R22", + "R152A", + "R124" + ], + "mole_fractions": [ + 0.578854210704231, + 0.185871453986601, + 0.235274335309169 + ], + "name": "R401A" + }, + { + "fluids": [ + "R22", + "R152A", + "R124" + ], + "mole_fractions": [ + 0.654924685341436, + 0.154607382276918, + 0.190467932381646 + ], + "name": "R401B" + }, + { + "fluids": [ + "R22", + "R152A", + "R124" + ], + "mole_fractions": [ + 0.385591186504412, + 0.229445970225924, + 0.384962843269664 + ], + "name": "R401C" + }, + { + "fluids": [ + "R125", + "PROPANE", + "R22" + ], + "mole_fractions": [ + 0.507659889396724, + 0.0460590346231213, + 0.446281075980154 + ], + "name": "R402A" + }, + { + "fluids": [ + "R125", + "PROPANE", + "R22" + ], + "mole_fractions": [ + 0.299858744498276, + 0.0429562491180057, + 0.657185006383719 + ], + "name": "R402B" + }, + { + "fluids": [ + "PROPANE", + "R22", + "R218" + ], + "mole_fractions": [ + 0.104301635230068, + 0.797852142841926, + 0.0978462219280052 + ], + "name": "R403A" + }, + { + "fluids": [ + "PROPANE", + "R22", + "R218" + ], + "mole_fractions": [ + 0.117083478399255, + 0.668734422027154, + 0.214182099573591 + ], + "name": "R403B" + }, + { + "fluids": [ + "R125", + "R134A", + "R143A" + ], + "mole_fractions": [ + 0.357816784026318, + 0.0382639950410712, + 0.603919220932611 + ], + "name": "R404A" + }, + { + "fluids": [ + "R22", + "R152A", + "R142B", + "RC318" + ], + "mole_fractions": [ + 0.582397185883849, + 0.118598940913682, + 0.0612463586573, + 0.237757514545169 + ], + "name": "R405A" + }, + { + "fluids": [ + "R22", + "ISOBUTAN", + "R142B" + ], + "mole_fractions": [ + 0.571559096367276, + 0.0618403319459979, + 0.366600571686726 + ], + "name": "R406A" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.346419854360797, + 0.300315552114308, + 0.353264593524896 + ], + "name": "R407A" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.197865007175653, + 0.600360468492644, + 0.201774524331703 + ], + "name": "R407B" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.381109419953993, + 0.179558888662016, + 0.439331691383991 + ], + "name": "R407C" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.262268077791873, + 0.113681680758968, + 0.624050241449159 + ], + "name": "R407D" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.402611526984881, + 0.104708637358978, + 0.492679835656141 + ], + "name": "R407E" + }, + { + "fluids": [ + "R32", + "R125", + "R134A" + ], + "mole_fractions": [ + 0.473194694453358, + 0.205109095413331, + 0.321696210133311 + ], + "name": "R407F" + }, + { + "fluids": [ + "R125", + "R143A", + "R22" + ], + "mole_fractions": [ + 0.0507496395780536, + 0.476277681499092, + 0.472972678922854 + ], + "name": "R408A" + }, + { + "fluids": [ + "R22", + "R124", + "R142B" + ], + "mole_fractions": [ + 0.676088021274302, + 0.178481953421098, + 0.1454300253046 + ], + "name": "R409A" + }, + { + "fluids": [ + "R22", + "R124", + "R142B" + ], + "mole_fractions": [ + 0.726713817097545, + 0.177089324155708, + 0.0961968587467468 + ], + "name": "R409B" + }, + { + "fluids": [ + "R32", + "R125" + ], + "mole_fractions": [ + 0.697614699375863, + 0.302385300624138 + ], + "name": "R410A" + }, + { + "fluids": [ + "R32", + "R125" + ], + "mole_fractions": [ + 0.653688938033229, + 0.346311061966771 + ], + "name": "R410B" + }, + { + "fluids": [ + "PROPYLEN", + "R22", + "R152A" + ], + "mole_fractions": [ + 0.0293595987641706, + 0.833472654512905, + 0.137167746722925 + ], + "name": "R411A" + }, + { + "fluids": [ + "PROPYLEN", + "R22", + "R152A" + ], + "mole_fractions": [ + 0.0592216130255444, + 0.903048917855743, + 0.0377294691187131 + ], + "name": "R411B" + }, + { + "fluids": [ + "R22", + "R218", + "R142B" + ], + "mole_fractions": [ + 0.746189416536491, + 0.0245117299030133, + 0.229298853560496 + ], + "name": "R412A" + }, + { + "fluids": [ + "R218", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.0497604388838132, + 0.896582929746185, + 0.0536566313700015 + ], + "name": "R413A" + }, + { + "fluids": [ + "R22", + "R124", + "ISOBUTAN", + "R142B" + ], + "mole_fractions": [ + 0.571718248653786, + 0.202422623615037, + 0.0667091242374272, + 0.159150003493749 + ], + "name": "R414A" + }, + { + "fluids": [ + "R22", + "R124", + "ISOBUTAN", + "R142B" + ], + "mole_fractions": [ + 0.58743911052603, + 0.29030851296569, + 0.0262178745861124, + 0.0960345019221677 + ], + "name": "R414B" + }, + { + "fluids": [ + "R22", + "R152A" + ], + "mole_fractions": [ + 0.776780159383737, + 0.223219840616263 + ], + "name": "R415A" + }, + { + "fluids": [ + "R22", + "R152A" + ], + "mole_fractions": [ + 0.202949716550675, + 0.797050283449325 + ], + "name": "R415B" + }, + { + "fluids": [ + "R134A", + "R124", + "BUTANE" + ], + "mole_fractions": [ + 0.647182715864291, + 0.323933072881677, + 0.0288842112540324 + ], + "name": "R416A" + }, + { + "fluids": [ + "R125", + "R134A", + "BUTANE" + ], + "mole_fractions": [ + 0.414456113615123, + 0.523100248809492, + 0.0624436375753851 + ], + "name": "R417A" + }, + { + "fluids": [ + "PROPANE", + "R22", + "R152A" + ], + "mole_fractions": [ + 0.0287766462758765, + 0.939204558675462, + 0.0320187950486611 + ], + "name": "R418A" + }, + { + "fluids": [ + "R125", + "R134A", + "DME" + ], + "mole_fractions": [ + 0.701459965531065, + 0.203604819551495, + 0.0949352149174398 + ], + "name": "R419A" + }, + { + "fluids": [ + "R134A", + "R142B" + ], + "mole_fractions": [ + 0.878387913267685, + 0.121612086732315 + ], + "name": "R420A" + }, + { + "fluids": [ + "R125", + "R134A" + ], + "mole_fractions": [ + 0.540011717389644, + 0.459988282610356 + ], + "name": "R421A" + }, + { + "fluids": [ + "R125", + "R134A" + ], + "mole_fractions": [ + 0.828099498512419, + 0.171900501487581 + ], + "name": "R421B" + }, + { + "fluids": [ + "R125", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.805501067600345, + 0.128043250123554, + 0.0664556822761011 + ], + "name": "R422A" + }, + { + "fluids": [ + "R125", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.497287395965083, + 0.446700400155301, + 0.0560122038796163 + ], + "name": "R422B" + }, + { + "fluids": [ + "R125", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.774757115908852, + 0.166711388687975, + 0.0585314954031729 + ], + "name": "R422C" + }, + { + "fluids": [ + "R125", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.596291711495645, + 0.339399053279791, + 0.064309235224564 + ], + "name": "R422D" + }, + { + "fluids": [ + "R134A", + "R227EA" + ], + "mole_fractions": [ + 0.648115324820034, + 0.351884675179966 + ], + "name": "R423A" + }, + { + "fluids": [ + "R125", + "R134A", + "ISOBUTAN", + "BUTANE", + "IPENTANE" + ], + "mole_fractions": [ + 0.45615402931289, + 0.49939050863627, + 0.0167872396578164, + 0.0186524885086849, + 0.00901573388433862 + ], + "name": "R424A" + }, + { + "fluids": [ + "R32", + "R134A", + "R227EA" + ], + "mole_fractions": [ + 0.321134464075019, + 0.615130603145805, + 0.0637349327791751 + ], + "name": "R425A" + }, + { + "fluids": [ + "R125", + "R134A", + "BUTANE", + "IPENTANE" + ], + "mole_fractions": [ + 0.0431546741714159, + 0.925684310853531, + 0.0227152573734822, + 0.00844575760157109 + ], + "name": "R426A" + }, + { + "fluids": [ + "R32", + "R125", + "R143A", + "R134A" + ], + "mole_fractions": [ + 0.260775797534104, + 0.188391404795509, + 0.107618901019853, + 0.443213896650535 + ], + "name": "R427A" + }, + { + "fluids": [ + "R125", + "R143A", + "PROPANE", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.694325251072399, + 0.255893190962662, + 0.0146310583647717, + 0.0351504996001673 + ], + "name": "R428A" + }, + { + "fluids": [ + "DME", + "R152A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.66113457206158, + 0.0768533364747054, + 0.262012091463714 + ], + "name": "R429A" + }, + { + "fluids": [ + "R152A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.735906531919507, + 0.264093468080493 + ], + "name": "R430A" + }, + { + "fluids": [ + "PROPANE", + "R152A" + ], + "mole_fractions": [ + 0.785742532365466, + 0.214257467634534 + ], + "name": "R431A" + }, + { + "fluids": [ + "PROPYLEN", + "DME" + ], + "mole_fractions": [ + 0.814097241703795, + 0.185902758296205 + ], + "name": "R432A" + }, + { + "fluids": [ + "PROPYLEN", + "PROPANE" + ], + "mole_fractions": [ + 0.309917763130151, + 0.690082236869849 + ], + "name": "R433A" + }, + { + "fluids": [ + "R125", + "R143A", + "R134A", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.556782765664377, + 0.226468961005242, + 0.165810098372986, + 0.0509381749573948 + ], + "name": "R434A" + }, + { + "fluids": [ + "DME", + "R152A" + ], + "mole_fractions": [ + 0.85152261670421, + 0.14847738329579 + ], + "name": "R435A" + }, + { + "fluids": [ + "PROPANE", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.62652773298942, + 0.37347226701058 + ], + "name": "R436A" + }, + { + "fluids": [ + "PROPANE", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.588127503607667, + 0.411872496392333 + ], + "name": "R436B" + }, + { + "fluids": [ + "R125", + "R134A", + "BUTANE", + "PENTANE" + ], + "mole_fractions": [ + 0.168496314343733, + 0.797898667324292, + 0.0249804624362383, + 0.00862455589573693 + ], + "name": "R437A" + }, + { + "fluids": [ + "R32", + "R125", + "R134A", + "BUTANE", + "IPENTANE" + ], + "mole_fractions": [ + 0.161915681788051, + 0.371558801739542, + 0.42929872424902, + 0.0289854872298073, + 0.00824130499357989 + ], + "name": "R438A" + }, + { + "fluids": [ + "ETHANE", + "PROPANE", + "ISOBUTAN", + "BUTANE" + ], + "mole_fractions": [ + 0.049800395690461, + 0.600310262208399, + 0.0498654644324665, + 0.300023877668674 + ], + "name": "R441A" + }, + { + "fluids": [ + "R32", + "R125", + "R134A", + "R152A", + "R227EA" + ], + "mole_fractions": [ + 0.487220106766942, + 0.211188495005419, + 0.240409765511042, + 0.0371371957951017, + 0.0240444369214954 + ], + "name": "R442A" + }, + { + "fluids": [ + "PROPYLEN", + "PROPANE", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.568232931233387, + 0.394367661677695, + 0.0373994070889183 + ], + "name": "R443A" + }, + { + "fluids": [ + "R32", + "R152A", + "R1234ZE" + ], + "mole_fractions": [ + 0.223042202171548, + 0.0731981570161227, + 0.703759640812329 + ], + "name": "R444A" + }, + { + "fluids": [ + "R12", + "R152A" + ], + "mole_fractions": [ + 0.606101741397223, + 0.393898258602777 + ], + "name": "R500" + }, + { + "fluids": [ + "R22", + "R12" + ], + "mole_fractions": [ + 0.807509678166191, + 0.192490321833809 + ], + "name": "R501" + }, + { + "fluids": [ + "R22", + "R115" + ], + "mole_fractions": [ + 0.629994467193889, + 0.370005532806111 + ], + "name": "R502" + }, + { + "fluids": [ + "R23", + "R13" + ], + "mole_fractions": [ + 0.49970034990839, + 0.50029965009161 + ], + "name": "R503" + }, + { + "fluids": [ + "R32", + "R115" + ], + "mole_fractions": [ + 0.734239632563771, + 0.265760367436229 + ], + "name": "R504" + }, + { + "fluids": [ + "R125", + "R143A" + ], + "mole_fractions": [ + 0.411839711774438, + 0.588160288225562 + ], + "name": "R507A" + }, + { + "fluids": [ + "R23", + "R116" + ], + "mole_fractions": [ + 0.557576966356198, + 0.442423033643802 + ], + "name": "R508A" + }, + { + "fluids": [ + "R23", + "R116" + ], + "mole_fractions": [ + 0.626751006700703, + 0.373248993299297 + ], + "name": "R508B" + }, + { + "fluids": [ + "R22", + "R218" + ], + "mole_fractions": [ + 0.630790210153023, + 0.369209789846977 + ], + "name": "R509A" + }, + { + "fluids": [ + "DME", + "ISOBUTAN" + ], + "mole_fractions": [ + 0.902458936722509, + 0.0975410632774913 + ], + "name": "R510A" + }, + { + "fluids": [ + "R134A", + "R152A" + ], + "mole_fractions": [ + 0.0329487458964343, + 0.967051254103566 + ], + "name": "R512A" + } +] \ No newline at end of file diff --git a/src/AbstractState.cpp b/src/AbstractState.cpp index 67a7b162..ec18cced 100644 --- a/src/AbstractState.cpp +++ b/src/AbstractState.cpp @@ -22,7 +22,7 @@ AbstractState * AbstractState::factory(const std::string &backend, const std::st if (!backend.compare("HEOS")) { if (fluid_string.find('&') == std::string::npos){ - return new HelmholtzEOSBackend(&get_fluid(fluid_string)); + return new HelmholtzEOSBackend(fluid_string); } else{ // Split at the '&' diff --git a/src/Backends/Helmholtz/HelmholtzEOSBackend.h b/src/Backends/Helmholtz/HelmholtzEOSBackend.h index 03bc1b7f..610064b9 100644 --- a/src/Backends/Helmholtz/HelmholtzEOSBackend.h +++ b/src/Backends/Helmholtz/HelmholtzEOSBackend.h @@ -11,6 +11,7 @@ #include #include "HelmholtzEOSMixtureBackend.h" #include "Fluids/FluidLibrary.h" +#include "MixtureParameters.h" namespace CoolProp { @@ -18,7 +19,28 @@ class HelmholtzEOSBackend : public HelmholtzEOSMixtureBackend { public: HelmholtzEOSBackend(); HelmholtzEOSBackend(CoolPropFluid *pFluid){set_components(std::vector(1,pFluid));}; - HelmholtzEOSBackend(const std::string &name){set_components(std::vector(1,&(get_library().get(name))));}; + HelmholtzEOSBackend(const std::string &name){ + Dictionary dict; + std::vector mole_fractions; + std::vector components; + if (is_predefined_mixture(name, dict)){ + std::vector fluids = dict.get_string_vector("fluids"); + mole_fractions = dict.get_double_vector("mole_fractions"); + + components.resize(fluids.size()); + for (unsigned int i = 0; i < components.size(); ++i){ + components[i] = &(get_library().get(fluids[i])); + } + } + else{ + components = std::vector(1,&(get_library().get(name))); + mole_fractions = std::vector(1,1); + } + // Set the components + set_components(components); + // Set the mole fractions + set_mole_fractions(std::vector(mole_fractions.begin(), mole_fractions.end())); + }; virtual ~HelmholtzEOSBackend(){}; }; diff --git a/src/Backends/Helmholtz/MixtureParameters.cpp b/src/Backends/Helmholtz/MixtureParameters.cpp index 874ed222..34ec830e 100644 --- a/src/Backends/Helmholtz/MixtureParameters.cpp +++ b/src/Backends/Helmholtz/MixtureParameters.cpp @@ -1,9 +1,51 @@ #include "MixtureParameters.h" #include "mixture_departure_functions_JSON.h" // Creates the variable mixture_departure_functions_JSON #include "mixture_binary_pairs_JSON.h" // Creates the variable mixture_binary_pairs_JSON +#include "predefined_mixtures_JSON.h" // Makes a std::string variable called predefined_mixtures_JSON namespace CoolProp{ +/** \brief A library of predefined mixtures + * + * Each entry in the predefined mixture library contains the names and mole fractions for the binary pairs + */ +class PredefinedMixturesLibrary{ + public: + std::map predefined_mixture_map; + + PredefinedMixturesLibrary(){ + rapidjson::Document doc; + + doc.Parse<0>(predefined_mixtures_JSON.c_str()); + if (doc.HasParseError()){throw ValueError();} + + // Iterate over the papers in the listing + for (rapidjson::Value::ValueIterator itr = doc.Begin(); itr != doc.End(); ++itr) + { + // Instantiate the empty dictionary to be filled + Dictionary dict; + // Get the name + std::string name = cpjson::get_string(*itr, "name")+".mix"; + // Get the fluid names + dict.add_string_vector("fluids", cpjson::get_string_array(*itr, "fluids")); + // Get the mole fractions + dict.add_double_vector("mole_fractions", cpjson::get_double_array(*itr,"mole_fractions")); + + predefined_mixture_map.insert(std::pair(name, dict)); + } + } +}; +static PredefinedMixturesLibrary predefined_mixtures_library; + +bool is_predefined_mixture(const std::string name, Dictionary &dict){ + if (predefined_mixtures_library.predefined_mixture_map.find(name) != predefined_mixtures_library.predefined_mixture_map.end()){ + dict = predefined_mixtures_library.predefined_mixture_map[name]; + return true; + } + else{ + return false; + } +} /** \brief A library of binary pair parameters for the mixture * diff --git a/src/Backends/Helmholtz/MixtureParameters.h b/src/Backends/Helmholtz/MixtureParameters.h index fdb48480..563f56bd 100644 --- a/src/Backends/Helmholtz/MixtureParameters.h +++ b/src/Backends/Helmholtz/MixtureParameters.h @@ -11,6 +11,11 @@ namespace CoolProp{ */ std::string get_csv_mixture_binary_pairs(); +/** \brief Get the parameters for a predefined mixture - R410A, R404A, etc. + * + */ +bool is_predefined_mixture(const std::string name, Dictionary &dict); + /** \brief Get a string for the given binary pair * * From 1092a2f64f74498dc10310ab3b9354f966761790 Mon Sep 17 00:00:00 2001 From: Ian Bell Date: Thu, 2 Oct 2014 09:59:27 +0200 Subject: [PATCH 54/54] Remove JSON_to_CPP.py Signed-off-by: Ian Bell --- dev/JSON_to_CPP.py | 90 ---------------------------------------------- 1 file changed, 90 deletions(-) delete mode 100644 dev/JSON_to_CPP.py diff --git a/dev/JSON_to_CPP.py b/dev/JSON_to_CPP.py deleted file mode 100644 index 93733fe9..00000000 --- a/dev/JSON_to_CPP.py +++ /dev/null @@ -1,90 +0,0 @@ -from __future__ import print_function - -import json as pyjson -from datetime import datetime -import struct -import os -import argparse, textwrap -import sys -import generate_headers - -# 0: Input file path relative to dev folder -# 1: Output file path relative to include folder -# 2: Name of variable -values = [ - ('all_fluids.json','all_fluids_JSON.h','all_fluids_JSON'), - ('all_incompressibles.json','all_incompressibles_JSON.h','all_incompressibles_JSON'), - ('mixtures/mixture_excess_term.json', 'mixture_excess_term_JSON.h', 'mixture_excess_term_JSON'), - ('mixtures/mixture_reducing_parameters.json', 'mixture_reducing_parameters_JSON.h', 'mixture_reducing_parameters_JSON') -] - -def TO_CPP(root_dir, hashes): - def to_chunks(l, n): - if n<1: - n=1 - return [l[i:i+n] for i in range(0, len(l), n)] - - # Normalise path name - root_dir = os.path.normpath(root_dir) - - # First we package up the JSON files - import package_json - package_json.combine_json(root_dir) - - for infile,outfile,variable in values: - - json = open(os.path.join(root_dir,'dev',infile),'r').read() - - # convert each character to hex and add a terminating NULL character to end the - # string, join into a comma separated string - if sys.version_info[0] == 2: - h = [hex(struct.unpack("b",b)[0]) for b in json] + ['0x00'] - else: - # Encode as ASCII characters - json = json.encode('ascii') - h = [str(hex(b)) for b in json] + [str('0x00')] - - # Break up the file into lines of 16 hex characters - chunks = to_chunks(h, 16) - - # Put the lines back together again - # The chunks are joined together with commas, and then EOL are used to join the rest - hex_string = ',\n'.join([', '.join(chunk) for chunk in chunks]) - - # Check if hash is up to date based on using variable as key - if variable not in hashes or (variable in hashes and hashes[variable] != generate_headers.get_hash(hex_string)): - - # Generate the output string - output = '// File generated by the script dev/JSON_to_CPP.py on '+ str(datetime.now()) + '\n\n' - output += '// JSON file encoded in binary form\n' - output += 'const unsigned char '+variable+'_binary[] = {\n' + hex_string + '\n};'+'\n\n' - output += '// Combined into a single std::string \n' - output += 'std::string {v:s}({v:s}_binary, {v:s}_binary + sizeof({v:s}_binary)/sizeof({v:s}_binary[0]));'.format(v = variable) - - # Write it to file - f = open(os.path.join(root_dir,'include',outfile), 'w') - f.write(output) - f.close() - - # Store the hash of the data that was written to file (not including the header) - hashes[variable] = generate_headers.get_hash(hex_string) - else: - print(outfile + ' is up to date') - -if __name__=='__main__': - parser = argparse.ArgumentParser( - formatter_class=argparse.RawDescriptionHelpFormatter, - description=textwrap.dedent("""CoolProp - This program converts the JSON files from dev/fluid etc - to header files. It is necessary to give this program the - value for --path, this is the root directory where - dev/ can be found.""") - ) - - parser.add_argument('--path', required=False, - help='Location of the root folder', - default=None) - - args = parser.parse_args() - - TO_CPP(args.path) \ No newline at end of file