Merge branch 'master' of https://github.com/CoolProp/CoolProp
@@ -24,6 +24,7 @@
|
||||
Pages = {549-554},
|
||||
Volume = {31},
|
||||
|
||||
Doi = {10.1080/08957959.2011.629617},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.06.09}
|
||||
}
|
||||
@@ -46,6 +47,7 @@
|
||||
Pages = {98-104},
|
||||
Volume = {358},
|
||||
|
||||
Doi = {10.1016/j.fluid.2013.07.057},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.09.27}
|
||||
}
|
||||
@@ -79,17 +81,19 @@
|
||||
Pages = {1003-1013},
|
||||
Volume = {35},
|
||||
|
||||
Doi = {10.1016/j.ijrefrig.2012.01.003},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
|
||||
@Article{Akasaka-PREPINT-2014,
|
||||
Title = {{Equation of State for R245fa (unpublished, to be submitted)}},
|
||||
Author = {Ryo Akasaka and Lemmon, E.W.},
|
||||
@Article{Akasaka-JPCRD-2015-R245fa,
|
||||
Title = {{A Fundamental Equation of State for 1,1,1,3,3-Pentafluoropropane (R-245fa)}},
|
||||
Author = {Ryo Akasaka and Yong Zhou and Eric W. Lemmon},
|
||||
Journal = {J. Phys. Chem. Ref. Data},
|
||||
Year = {2015},
|
||||
Note = {Provided by Ryo Akasaka},
|
||||
|
||||
Doi = {10.1063/1.4913493},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.08.09}
|
||||
}
|
||||
@@ -103,6 +107,7 @@
|
||||
Pages = {691-698},
|
||||
Volume = {58},
|
||||
|
||||
Doi = {10.1134/S0040601511080027},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.11}
|
||||
}
|
||||
@@ -115,6 +120,7 @@
|
||||
Pages = {011203-1:10},
|
||||
Volume = {64},
|
||||
|
||||
Doi = {10.1103/PhysRevE.64.011203},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -149,6 +155,7 @@
|
||||
Pages = {043102-1:9},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.4755781},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -162,6 +169,7 @@
|
||||
Pages = {033101-1:13},
|
||||
Volume = {40},
|
||||
|
||||
Doi = {10.1063/1.3606499},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -175,6 +183,7 @@
|
||||
Pages = {023101-1:9},
|
||||
Volume = {42},
|
||||
|
||||
Doi = {10.1063/1.4794091},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.28}
|
||||
}
|
||||
@@ -188,6 +197,7 @@
|
||||
Pages = {023104-1:9},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.4708620},
|
||||
Owner = {Belli},
|
||||
Review = {Errata: To get the correct values in REFPROP for the residual part they use a molar reducing density of 5.046 mol/L or 5046*0.1460554192 = 736.9956452832 kg/m^3},
|
||||
Timestamp = {2013.04.08}
|
||||
@@ -202,6 +212,7 @@
|
||||
Pages = {023101-1:12},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.3700155},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -215,6 +226,7 @@
|
||||
Pages = {013106-1:8},
|
||||
Volume = {42},
|
||||
|
||||
Doi = {10.1063/1.4793335},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.28}
|
||||
}
|
||||
@@ -228,6 +240,7 @@
|
||||
Pages = {023102-1:10},
|
||||
Volume = {42},
|
||||
|
||||
Doi = {10.1063/1.4797368},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.28}
|
||||
}
|
||||
@@ -240,6 +253,7 @@
|
||||
Pages = {033103},
|
||||
Volume = {43},
|
||||
|
||||
Doi = {10.1063/1.4892935},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.09.02}
|
||||
}
|
||||
@@ -252,6 +266,7 @@
|
||||
Pages = {1197-1198},
|
||||
Volume = {14},
|
||||
|
||||
Doi = {10.1016/0021-9614(82)90044-1},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.10.02}
|
||||
}
|
||||
@@ -279,6 +294,7 @@
|
||||
Pages = {205-266},
|
||||
Volume = {35},
|
||||
|
||||
Doi = {10.1063/1.1859286},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -292,6 +308,7 @@
|
||||
Pages = {929-1019},
|
||||
Volume = {35},
|
||||
|
||||
Doi = {10.1063/1.1901687},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.30}
|
||||
}
|
||||
@@ -314,6 +331,7 @@
|
||||
Pages = {115-130},
|
||||
Volume = {263},
|
||||
|
||||
Doi = {10.1016/j.fluid.2007.10.001},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -326,6 +344,7 @@
|
||||
Pages = {193-211},
|
||||
Volume = {244},
|
||||
|
||||
Doi = {10.1016/j.fluid.2006.04.015},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -339,6 +358,7 @@
|
||||
Pages = {6535-6546},
|
||||
Volume = {61},
|
||||
|
||||
Doi = {10.1103/PhysRevB.61.6535},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.10.02}
|
||||
}
|
||||
@@ -359,6 +379,7 @@
|
||||
Pages = {31-44},
|
||||
Volume = {27},
|
||||
|
||||
Doi = {10.1063/1.556013},
|
||||
Owner = {Belli},
|
||||
Review = {Units of density in paper are mol/L, poorly documented},
|
||||
Timestamp = {2013.04.08}
|
||||
@@ -373,6 +394,7 @@
|
||||
Pages = {1649-1667},
|
||||
Volume = {24},
|
||||
|
||||
Doi = {10.1063/1.555961},
|
||||
Owner = {Belli},
|
||||
Review = {Units of density in paper are mol/L, poorly documented},
|
||||
Timestamp = {2013.04.08}
|
||||
@@ -387,13 +409,13 @@
|
||||
Pages = {1225-1253},
|
||||
Volume = {21},
|
||||
|
||||
Doi = {10.1023/A:1006689724974},
|
||||
ISSN = {0195-928X},
|
||||
Issue = {6},
|
||||
Keyword = {Physics and Astronomy},
|
||||
Owner = {ibell},
|
||||
Publisher = {Springer Netherlands},
|
||||
Timestamp = {2011.04.17},
|
||||
Url = {http://dx.doi.org/10.1023/A:1006689724974}
|
||||
Timestamp = {2011.04.17}
|
||||
}
|
||||
|
||||
@Article{Friend-JPCRD-1991,
|
||||
@@ -405,6 +427,7 @@
|
||||
Pages = {275-347},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1063/1.555881},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -437,6 +460,7 @@
|
||||
Pages = {1034-1043},
|
||||
Volume = {22},
|
||||
|
||||
Doi = {10.1023/A:1010691504352},
|
||||
Owner = {ibell},
|
||||
Timestamp = {2010.06.30}
|
||||
}
|
||||
@@ -459,6 +483,7 @@
|
||||
Pages = {209-218},
|
||||
Volume = {375},
|
||||
|
||||
Doi = {10.1016/j.fluid.2014.05.012},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.07.21}
|
||||
}
|
||||
@@ -472,6 +497,7 @@
|
||||
Pages = {33-94},
|
||||
Volume = {38},
|
||||
|
||||
Doi = {10.1063/1.3037344},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -485,6 +511,7 @@
|
||||
Pages = {697-703},
|
||||
Volume = {21},
|
||||
|
||||
Doi = {10.1016/0011-2275(81)90211-3},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.08.05}
|
||||
}
|
||||
@@ -497,6 +524,7 @@
|
||||
Pages = {496-503},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1016/S0140-7007(97)00044-3},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -525,6 +553,7 @@
|
||||
Pages = {917-932},
|
||||
Volume = {12},
|
||||
|
||||
Doi = {10.1063/1.555701},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -537,6 +566,7 @@
|
||||
Pages = {47-55},
|
||||
Volume = {227},
|
||||
|
||||
Doi = {10.1016/j.fluid.2004.10.031},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.14}
|
||||
}
|
||||
@@ -550,6 +580,7 @@
|
||||
Pages = {101-125},
|
||||
Volume = {38},
|
||||
|
||||
Doi = {10.1063/1.3088050},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -562,6 +593,7 @@
|
||||
Pages = {239-248},
|
||||
Volume = {80},
|
||||
|
||||
Doi = {10.1016/0378-3812(92)87071-T},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.05.29}
|
||||
}
|
||||
@@ -574,6 +606,7 @@
|
||||
Pages = {4447-4453},
|
||||
Volume = {45},
|
||||
|
||||
Doi = {10.1021/ie051367l},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.13}
|
||||
}
|
||||
@@ -586,6 +619,7 @@
|
||||
Pages = {968-975},
|
||||
Volume = {18},
|
||||
|
||||
Doi = {10.1021/ef034109e},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -598,6 +632,7 @@
|
||||
Pages = {3163-3178},
|
||||
Volume = {42},
|
||||
|
||||
Doi = {10.1021/ie0300880},
|
||||
Owner = {ibell},
|
||||
Timestamp = {2010.07.06}
|
||||
}
|
||||
@@ -610,6 +645,7 @@
|
||||
Pages = {263-270},
|
||||
Volume = {224},
|
||||
|
||||
Doi = {10.1016/j.fluid.2004.07.012},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.14}
|
||||
}
|
||||
@@ -622,6 +658,7 @@
|
||||
Pages = {3790-3797},
|
||||
Volume = {23},
|
||||
|
||||
Doi = {10.1021/ef900159g},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -635,6 +672,7 @@
|
||||
Pages = {033102-1:23},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.4738955},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -659,6 +697,7 @@
|
||||
Pages = {45-56},
|
||||
Volume = {80},
|
||||
|
||||
Doi = {10.1016/0378-3812(92)87054-Q},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -672,6 +711,7 @@
|
||||
Pages = {1381-1392},
|
||||
Volume = {16},
|
||||
|
||||
Doi = {10.1007/BF02083547},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -695,6 +735,7 @@
|
||||
Pages = {1155-1164},
|
||||
Volume = {16},
|
||||
|
||||
Doi = {10.1007/BF02081283},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -707,6 +748,7 @@
|
||||
Pages = {1189-1197},
|
||||
Volume = {31},
|
||||
|
||||
Doi = {10.1007/978-1-4613-2213-9_132},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.30}
|
||||
}
|
||||
@@ -730,6 +772,7 @@
|
||||
Pages = {6916-6927},
|
||||
Volume = {44},
|
||||
|
||||
Doi = {10.1021/ie050010e},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.14}
|
||||
}
|
||||
@@ -742,6 +785,7 @@
|
||||
Pages = {208-217},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1016/S0140-7007(96)00073-4},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.12.06}
|
||||
}
|
||||
@@ -768,6 +812,7 @@
|
||||
Pages = {731-757},
|
||||
Volume = {17},
|
||||
|
||||
Doi = {10.1007/BF01439187},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.28}
|
||||
}
|
||||
@@ -790,6 +835,7 @@
|
||||
Pages = {3032-3091},
|
||||
Volume = {57},
|
||||
|
||||
Doi = {10.1021/je300655b},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -803,6 +849,7 @@
|
||||
Pages = {231-238},
|
||||
Volume = {19},
|
||||
|
||||
Doi = {10.1016/0140-7007(96)00019-9},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.13}
|
||||
}
|
||||
@@ -816,6 +863,7 @@
|
||||
Pages = {721-748},
|
||||
Volume = {38},
|
||||
|
||||
Doi = {10.1063/1.3160306},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -829,6 +877,7 @@
|
||||
Pages = {991-1006},
|
||||
Volume = {24},
|
||||
|
||||
Doi = {10.1023/A:1025048800563},
|
||||
File = {:D\:\\My_Documents\\Library\\Papers\\Lemmon 2003.pdf:PDF},
|
||||
Keywords = {EOS},
|
||||
Owner = {Belli},
|
||||
@@ -854,6 +903,7 @@
|
||||
Pages = {331-385},
|
||||
Volume = {29},
|
||||
|
||||
Doi = {10.1063/1.1285884},
|
||||
File = {:D\:\\My_Documents\\Library\\Papers\\Lemmon 2000.pdf:PDF},
|
||||
Keywords = {EOS},
|
||||
Owner = {Belli},
|
||||
@@ -878,6 +928,7 @@
|
||||
Pages = {785-850},
|
||||
Volume = {51},
|
||||
|
||||
Doi = {10.1021/je050186n},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -890,6 +941,7 @@
|
||||
Pages = {960-967},
|
||||
Volume = {18},
|
||||
|
||||
Doi = {10.1021/ef0341062},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -902,6 +954,7 @@
|
||||
Pages = {173-187},
|
||||
Volume = {228-229},
|
||||
|
||||
Doi = {10.1016/j.fluid.2004.09.004},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -915,6 +968,7 @@
|
||||
Pages = {69-108},
|
||||
Volume = {34},
|
||||
|
||||
Doi = {10.1063/1.1797813},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.13}
|
||||
}
|
||||
@@ -929,6 +983,7 @@
|
||||
Volume = {25},
|
||||
|
||||
Comment = {Critical enhancement included},
|
||||
Doi = {10.1023/B:IJOT.0000022327.04529.f3},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -942,6 +997,7 @@
|
||||
Pages = {593-620},
|
||||
Volume = {33},
|
||||
|
||||
Doi = {10.1063/1.1649997},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -955,6 +1011,7 @@
|
||||
Pages = {521-552},
|
||||
Volume = {29},
|
||||
|
||||
Doi = {10.1063/1.1318909},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -968,6 +1025,7 @@
|
||||
Pages = {825-835},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1023/A:1022627001338},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -980,6 +1038,7 @@
|
||||
Pages = {3141-3180},
|
||||
Volume = {54},
|
||||
|
||||
Doi = {10.1021/je900217v},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.03.19}
|
||||
}
|
||||
@@ -992,6 +1051,7 @@
|
||||
Pages = {5195-5205},
|
||||
Volume = {117},
|
||||
|
||||
Doi = {10.1021/jp401754r},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -1004,6 +1064,7 @@
|
||||
Pages = {932-940},
|
||||
Volume = {47},
|
||||
|
||||
Doi = {10.1021/je010001m},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1038,6 +1099,7 @@
|
||||
Pages = {43-63},
|
||||
Volume = {23},
|
||||
|
||||
Doi = {10.1016/S0140-7007(99)00024-9},
|
||||
Owner = {ibell},
|
||||
Timestamp = {2010.07.06}
|
||||
}
|
||||
@@ -1079,6 +1141,7 @@
|
||||
Volume = {57},
|
||||
|
||||
Comment = {Erratum: Limits for deltaeta_r sums should be 0-3 and 4-9. The correct order of terms based on the original indices are 0,1,7,9,2,3,4,5,6,8},
|
||||
Doi = {10.1021/je201297j},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -1091,6 +1154,7 @@
|
||||
Pages = {023103},
|
||||
Volume = {43},
|
||||
|
||||
Doi = {10.1063/1.4875930},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.06.10}
|
||||
}
|
||||
@@ -1104,6 +1168,7 @@
|
||||
Pages = {033104:1-12},
|
||||
Volume = {42},
|
||||
|
||||
Doi = {10.1063/1.4818980},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.09.21}
|
||||
}
|
||||
@@ -1116,6 +1181,7 @@
|
||||
Pages = {101-116},
|
||||
Volume = {28},
|
||||
|
||||
Doi = {10.1016/0031-8914(62)90096-4},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.10.02}
|
||||
}
|
||||
@@ -1142,6 +1208,7 @@
|
||||
Pages = {043105-1:13},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.4768782},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1152,6 +1219,7 @@
|
||||
Journal = {J. Chem. Eng. Data},
|
||||
Year = {2013},
|
||||
|
||||
Doi = {10.1021/je301273j},
|
||||
Owner = {Belli},
|
||||
Review = {Errata : In equation 7, the exponent should be -i rather than -1. Equation 6 is missing Avogadro's number},
|
||||
Timestamp = {2013.04.10}
|
||||
@@ -1165,6 +1233,7 @@
|
||||
Pages = {043104},
|
||||
Volume = {43},
|
||||
|
||||
Doi = {10.1063/1.4901166},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.12.10}
|
||||
}
|
||||
@@ -1178,6 +1247,7 @@
|
||||
Pages = {119-127},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1023/A:1021482231102},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.12.08}
|
||||
}
|
||||
@@ -1191,6 +1261,7 @@
|
||||
Pages = {417-426},
|
||||
Volume = {10},
|
||||
|
||||
Doi = {10.1007/BF01133538},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.05.27}
|
||||
}
|
||||
@@ -1214,6 +1285,7 @@
|
||||
Pages = {605-636},
|
||||
Volume = {25},
|
||||
|
||||
Doi = {10.1063/1.555979},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.10.02}
|
||||
}
|
||||
@@ -1242,6 +1314,7 @@
|
||||
Pages = {10-16},
|
||||
Volume = {321},
|
||||
|
||||
Doi = {10.1016/j.fluid.2012.02.012},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -1255,6 +1328,7 @@
|
||||
Pages = {59-64},
|
||||
Volume = {15},
|
||||
|
||||
Doi = {10.1021/i160057a011},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -1268,6 +1342,7 @@
|
||||
Pages = {519-531},
|
||||
Volume = {16},
|
||||
|
||||
Doi = {10.1007/BF01441918},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1281,6 +1356,7 @@
|
||||
Pages = {1473-1499},
|
||||
Volume = {32},
|
||||
|
||||
Doi = {10.1063/1.1559671},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -1294,6 +1370,7 @@
|
||||
Pages = {1272-1279},
|
||||
Volume = {47},
|
||||
|
||||
Doi = {10.1021/je010121u},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1306,6 +1383,7 @@
|
||||
Pages = {4868-4874},
|
||||
Volume = {56},
|
||||
|
||||
Doi = {10.1021/je200811n},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -1318,6 +1396,7 @@
|
||||
Pages = {898-904},
|
||||
Volume = {51},
|
||||
|
||||
Doi = {10.1021/je050372t},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.13}
|
||||
}
|
||||
@@ -1331,6 +1410,7 @@
|
||||
Pages = {1263-1271},
|
||||
Volume = {47},
|
||||
|
||||
Doi = {10.1021/je0101202},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1343,6 +1423,7 @@
|
||||
Pages = {12-24},
|
||||
Volume = {349},
|
||||
|
||||
Doi = {10.1016/j.fluid.2013.03.024},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.02.02}
|
||||
}
|
||||
@@ -1355,6 +1436,7 @@
|
||||
Pages = {134-149},
|
||||
Volume = {303},
|
||||
|
||||
Doi = {10.1016/j.fluid.2011.01.008},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.02.27}
|
||||
}
|
||||
@@ -1365,6 +1447,7 @@
|
||||
Publisher = {Springer-Verlag},
|
||||
Year = {1990},
|
||||
|
||||
Doi = {10.1007/978-3-662-02608-3},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.05.20}
|
||||
}
|
||||
@@ -1417,6 +1500,7 @@
|
||||
Pages = {023102-1:11},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.3702441},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1429,6 +1513,7 @@
|
||||
Pages = {12820-12834},
|
||||
Volume = {110},
|
||||
|
||||
Doi = {10.1021/jp0618577},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2015.04.10}
|
||||
}
|
||||
@@ -1441,6 +1526,7 @@
|
||||
Pages = {3014-3018},
|
||||
Volume = {57},
|
||||
|
||||
Doi = {10.1021/je300601h},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.14}
|
||||
}
|
||||
@@ -1453,6 +1539,7 @@
|
||||
Pages = {1-16},
|
||||
Volume = {176},
|
||||
|
||||
Doi = {10.1016/S0378-3812(00)00474-X},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -1465,6 +1552,7 @@
|
||||
Pages = {249-276},
|
||||
Volume = {169},
|
||||
|
||||
Doi = {10.1016/S0378-3812(00)00310-1},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.07}
|
||||
}
|
||||
@@ -1477,6 +1565,7 @@
|
||||
Pages = {3662-3666},
|
||||
Volume = {40},
|
||||
|
||||
Doi = {10.1063/1.1725068},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.10.02}
|
||||
}
|
||||
@@ -1506,8 +1595,10 @@
|
||||
Author = {I.A. Richardson and J.W. Leachman and E.W. Lemmon},
|
||||
Journal = {J. Phys. Chem. Ref. Data},
|
||||
Year = {2013},
|
||||
Volume = {In Press},
|
||||
Pages = {013103},
|
||||
Volume = {43},
|
||||
|
||||
Doi = {10.1063/1.4864752},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.07.28}
|
||||
}
|
||||
@@ -1520,6 +1611,7 @@
|
||||
Pages = {3254-3264},
|
||||
Volume = {56},
|
||||
|
||||
Doi = {10.1021/je200369m},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1533,6 +1625,7 @@
|
||||
Volume = {341},
|
||||
|
||||
Comment = {Erratum in paper: a1 should be -17.5983849 and a2 should be 8.87150449},
|
||||
Doi = {10.1016/j.fluid.2012.12.026},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.10}
|
||||
}
|
||||
@@ -1545,6 +1638,7 @@
|
||||
Pages = {214101:1-5},
|
||||
Volume = {81},
|
||||
|
||||
Doi = {10.1103/PhysRevB.81.214101},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.06.09}
|
||||
}
|
||||
@@ -1558,6 +1652,7 @@
|
||||
Pages = {1549-1575},
|
||||
Volume = {35},
|
||||
|
||||
Doi = {10.1063/1.2213631},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.05.30}
|
||||
}
|
||||
@@ -1592,6 +1687,7 @@
|
||||
Pages = {1061-1151},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1063/1.555898},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1603,6 +1699,7 @@
|
||||
Year = {2000},
|
||||
Pages = {DA-00-10-2},
|
||||
|
||||
Doi = {10.1063/1.1329318},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.29}
|
||||
}
|
||||
@@ -1637,6 +1734,7 @@
|
||||
Pages = {1053-1121},
|
||||
Volume = {29},
|
||||
|
||||
Doi = {10.1063/1.1329318},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1649,6 +1747,7 @@
|
||||
Pages = {1361-1433},
|
||||
Volume = {29},
|
||||
|
||||
Doi = {10.1063/1.1349047},
|
||||
File = {:D\:\\My_Documents\\Library\\Papers\\Span Lemmon et al 2000.pdf:PDF},
|
||||
Keywords = {EOS},
|
||||
Owner = {Belli},
|
||||
@@ -1663,6 +1762,7 @@
|
||||
Pages = {41-109},
|
||||
Volume = {24},
|
||||
|
||||
Doi = {10.1023/A:1022310214958},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1675,6 +1775,7 @@
|
||||
Pages = {111-162},
|
||||
Volume = {24},
|
||||
|
||||
Doi = {10.1023/A:1022362231796},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1687,6 +1788,7 @@
|
||||
Pages = {1509-1596},
|
||||
Volume = {25},
|
||||
|
||||
Doi = {10.1063/1.555991},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1699,6 +1801,7 @@
|
||||
Pages = {1-20},
|
||||
Volume = {183-184},
|
||||
|
||||
Doi = {10.1016/S0378-3812(01)00416-2},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.08.18}
|
||||
}
|
||||
@@ -1712,6 +1815,7 @@
|
||||
Pages = {917-1021},
|
||||
Volume = {20},
|
||||
|
||||
Doi = {10.1063/1.555897},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1724,6 +1828,7 @@
|
||||
Pages = {652--655},
|
||||
Volume = {92},
|
||||
|
||||
Doi = {10.1002/bbpc.198800153},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.07.07}
|
||||
}
|
||||
@@ -1737,6 +1842,7 @@
|
||||
Pages = {293-328},
|
||||
Volume = {17},
|
||||
|
||||
Doi = {10.1007/BF01443394},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.13}
|
||||
}
|
||||
@@ -1750,6 +1856,7 @@
|
||||
Pages = {033101-1:18},
|
||||
Volume = {43},
|
||||
|
||||
Doi = {10.1063/1.4891103},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.08.21}
|
||||
}
|
||||
@@ -1762,6 +1869,7 @@
|
||||
Pages = {779-850},
|
||||
Volume = {28},
|
||||
|
||||
Doi = {10.1063/1.556037},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1823,6 +1931,7 @@
|
||||
Pages = {91-100},
|
||||
Volume = {16},
|
||||
|
||||
Doi = {10.1007/BF01438960},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1835,6 +1944,7 @@
|
||||
Pages = {657-729},
|
||||
Volume = {23},
|
||||
|
||||
Doi = {10.1063/1.555958},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1859,6 +1969,7 @@
|
||||
Pages = {1273-1328},
|
||||
Volume = {26},
|
||||
|
||||
Doi = {10.1063/1.556002},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1871,6 +1982,7 @@
|
||||
Pages = {422-427},
|
||||
Volume = {88},
|
||||
|
||||
Doi = {10.1002/bbpc.19840880421},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1883,6 +1995,7 @@
|
||||
Pages = {763--808},
|
||||
Volume = {19},
|
||||
|
||||
Doi = {10.1063/1.555875},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1896,6 +2009,7 @@
|
||||
Pages = {947-970},
|
||||
Volume = {27},
|
||||
|
||||
Doi = {10.1063/1.556025},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1909,6 +2023,7 @@
|
||||
Pages = {343-356},
|
||||
Volume = {21},
|
||||
|
||||
Doi = {10.1023/A:1006623310780},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1922,6 +2037,7 @@
|
||||
Pages = {173-186},
|
||||
Volume = {31},
|
||||
|
||||
Doi = {10.1068/htrt154},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1945,6 +2061,7 @@
|
||||
Pages = {387--535},
|
||||
Volume = {31},
|
||||
|
||||
Doi = {10.1063/1.1461829},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -1971,6 +2088,7 @@
|
||||
Pages = {023104-1:16},
|
||||
Volume = {40},
|
||||
|
||||
Doi = {10.1063/1.3582533},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
@@ -1984,6 +2102,7 @@
|
||||
Pages = {1597-1:24},
|
||||
Volume = {35},
|
||||
|
||||
Doi = {10.1063/1.2360605},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.08.26}
|
||||
}
|
||||
@@ -1997,6 +2116,7 @@
|
||||
Pages = {731-779},
|
||||
Volume = {23},
|
||||
|
||||
Doi = {10.1063/1.555950},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -2015,6 +2135,7 @@
|
||||
Year = {2001},
|
||||
Month = {July},
|
||||
|
||||
Doi = {10.2172/786629},
|
||||
Owner = {jowr},
|
||||
Timestamp = {2013.10.23},
|
||||
Url = {http://prod.sandia.gov/techlib/access-control.cgi/2001/012100.pdf}
|
||||
@@ -2029,6 +2150,7 @@
|
||||
Volume = {43},
|
||||
|
||||
Abstract = {Erratum: Reference values for enthalpy and entropy in the homogeneous phase are incorrect as published},
|
||||
Doi = {10.1063/1.4900538},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2014.12.06}
|
||||
}
|
||||
@@ -2042,6 +2164,7 @@
|
||||
Pages = {023103-1 -- 023103-26},
|
||||
Volume = {41},
|
||||
|
||||
Doi = {10.1063/1.3703506},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.08}
|
||||
}
|
||||
@@ -2055,6 +2178,7 @@
|
||||
Pages = {043106-1:11},
|
||||
Volume = {40},
|
||||
|
||||
Doi = {10.1063/1.3664084},
|
||||
Owner = {Belli},
|
||||
Timestamp = {2013.04.09}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 271 KiB |
BIN
Web/_static/logo_dtu_mekanik.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
Web/_static/logo_herrick.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
Web/_static/logo_ipu.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
Web/_static/logo_labothap.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
Web/_static/logo_maplesoft.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 36 KiB |
@@ -64,14 +64,14 @@ The instructions here are for a 64-bit windows system that will compile both 64-
|
||||
# Make a build folder for the 32-bit DLL
|
||||
mkdir build/32bit__stdcall && cd build/32bit__stdcall
|
||||
# Build the MSVC project using CMake
|
||||
cmake ../.. -G "Visual Studio 10" -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON
|
||||
cmake ../.. -G "Visual Studio 10" -DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_STDCALL_LIBRARY=ON
|
||||
# Make the shared library
|
||||
cmake --build . --config Release
|
||||
cd ../..
|
||||
# Make a build folder for the 64-bit DLL
|
||||
mkdir build/64bit && cd build/64bit
|
||||
# Build the MSVC project using CMake
|
||||
cmake ../.. -G "Visual Studio 10 Win64" -DCOOLPROP_64BIT_SHARED_LIBRARY=ON
|
||||
cmake ../.. -G "Visual Studio 10 Win64" -DCOOLPROP_SHARED_LIBRARY=ON
|
||||
# Make the shared library
|
||||
cmake --build . --config Release
|
||||
cd ../..
|
||||
|
||||
@@ -27,6 +27,12 @@ On windows, the most reliable mixed compilation seems to be using the mingw-prov
|
||||
>gcc --version
|
||||
gcc (GCC) 4.8.1
|
||||
Copyright (C) 2013 Free Software Foundation, Inc.
|
||||
|
||||
.. warning::
|
||||
MinGW has problems with the latest version of CoolProp. This seems to be a GCC-related
|
||||
issue and using a more up-to-date version of GCC helps. Unfortunately, MinGW is stuck
|
||||
at GCC 4.8. You could try the `TDM-GCC distribution <http://tdm-gcc.tdragon.net>`_
|
||||
that comes with the latest GCC. This version seems to work fine.
|
||||
|
||||
On OSX, the default compiler that comes with XCode is clang, gcc and g++ at the command prompt are just aliases to clang. See for instance::
|
||||
|
||||
@@ -56,21 +62,21 @@ A) On linux, do::
|
||||
|
||||
mkdir build && cd build
|
||||
mkdir gccstatic && cd gccstatic
|
||||
cmake ../.. -DCOOLPROP_EXTERNC_STATIC_LIBRARY=ON -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake ../.. -DCOOLPROP_STATIC_LIBRARY=ON -DCOOLPROP_EXTERNC_LIBRARY=ON -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake --build .
|
||||
|
||||
B) 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_EXTERNC_STATIC_LIBRARY=ON -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake ../.. -G "MinGW Makefiles" -DCOOLPROP_STATIC_LIBRARY=ON -DCOOLPROP_EXTERNC_LIBRARY=ON -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake --build .
|
||||
|
||||
C) On OSX, cmake must use the true, real, gcc/g++ compiler (not clang). Thus you must so something like this to make sure that it finds the right (true) gcc/g++ (see above)::
|
||||
C) On OSX, cmake must use the true, real, gcc/g++ compiler (not clang). Thus you must do something like this to make sure that it finds the right (true) gcc/g++ (see above)::
|
||||
|
||||
mkdir build && cd build
|
||||
mkdir gccstatic && cd gccstatic
|
||||
cmake ../.. -DCOOLPROP_EXTERNC_STATIC_LIBRARY=ON -DCMAKE_C_COMPILER="/usr/local/bin/gcc-4.9" -DCMAKE_CXX_COMPILER="/usr/local/bin/g++-4.9" -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake ../.. -DCOOLPROP_STATIC_LIBRARY=ON -DCOOLPROP_EXTERNC_LIBRARY=ON -DCMAKE_C_COMPILER="/usr/local/bin/gcc-4.9" -DCMAKE_CXX_COMPILER="/usr/local/bin/g++-4.9" -DCMAKE_VERBOSE_MAKEFILE=ON
|
||||
cmake --build .
|
||||
|
||||
If you are using a different version of gcc, change the version number for g++ and gcc
|
||||
|
||||
@@ -58,6 +58,12 @@ For windows, the situation is ok, but not great. Only the MinGW builds are supp
|
||||
|
||||
3. Rename the sh.exe in the bin folder of your installation to _sh.exe
|
||||
|
||||
.. warning::
|
||||
MinGW has problems with the latest version of CoolProp. This seems to be a GCC-related
|
||||
issue and using a more up-to-date version of GCC helps. Unfortunately, MinGW is stuck
|
||||
at GCC 4.8. You could try the `TDM-GCC distribution <http://tdm-gcc.tdragon.net>`_
|
||||
that comes with the latest GCC. This version seems to work fine.
|
||||
|
||||
Build
|
||||
-----
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ Shared libraries are compiled code that can be accessed by other programs. On w
|
||||
|
||||
There are a few things that need to be considered when determining what shared library you should build/use:
|
||||
|
||||
* Calling convention (`http://en.wikipedia.org/wiki/Calling_convention <wikipedia>`_: ``__stdcall`` or ``__cdecl`` - only a consideration on 32-bit windows
|
||||
* `Calling convention <http://en.wikipedia.org/wiki/Calling_convention>`_: ``__stdcall`` or ``__cdecl`` - only a consideration on 32-bit windows
|
||||
* Architecture: 32-bit or 64-bit
|
||||
* Compiler: Visual Studio, Mingw, GCC, clang
|
||||
|
||||
@@ -39,11 +39,17 @@ Your compiler options are:
|
||||
|
||||
By default, cmake will use your most up to date version of visual studio it finds.
|
||||
|
||||
.. warning::
|
||||
MinGW has problems with the latest version of CoolProp. This seems to be a GCC-related
|
||||
issue and using a more up-to-date version of GCC helps. Unfortunately, MinGW is stuck
|
||||
at GCC 4.8. You could try the `TDM-GCC distribution <http://tdm-gcc.tdragon.net>`_
|
||||
that comes with the latest GCC. This version seems to work fine.
|
||||
|
||||
Your calling convention options are:
|
||||
|
||||
* 32-bit __stdcall (``-DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON``)
|
||||
* 32-bit __cdecl (``-DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON``)
|
||||
* 64-bit (``-DCOOLPROP_64BIT_SHARED_LIBRARY=ON``)
|
||||
* 32-bit __stdcall (``-DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_STDCALL_LIBRARY=ON``)
|
||||
* 32-bit __cdecl (``-DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_CDECL_LIBRARY=ON``)
|
||||
* 64-bit (``-DCOOLPROP_SHARED_LIBRARY=ON``)
|
||||
|
||||
You can select the compiler in the call to cmake below.
|
||||
|
||||
@@ -62,29 +68,33 @@ You can select the compiler in the call to cmake below.
|
||||
|
||||
For 64-bit DLL::
|
||||
|
||||
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
||||
|
||||
For 32-bit __stdcall DLL::
|
||||
|
||||
cmake .. -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_STDCALL_LIBRARY=ON -G "MinGW Makefiles"
|
||||
|
||||
For 32-bit __cdecl DLL::
|
||||
|
||||
cmake .. -DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON -G "MinGW Makefiles"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_CDECL_LIBRARY=ON -G "MinGW Makefiles"
|
||||
|
||||
You can cross-compile by forcing a non-native bitness by using the additional flags ``-DFORCE_BITNESS_32=ON`` and ``-DFORCE_BITNESS_64=ON``.
|
||||
|
||||
B. If you use Visual Studio, you will need to replace the visual studio version with the version that you are using. Running the command ``cmake`` at the command prompt will tell you what generators are supported
|
||||
|
||||
For 64-bit DLL (Watch out for the 64-bit flag with Win64)::
|
||||
|
||||
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON -G "Visual Studio 10 2010 Win64"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -G "Visual Studio 10 2010 Win64"
|
||||
|
||||
For 32-bit __stdcall DLL::
|
||||
|
||||
cmake .. -DCOOLPROP_32BIT_STDCALL_SHARED_LIBRARY=ON -G "Visual Studio 10 2010"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_STDCALL_LIBRARY=ON -G "Visual Studio 10 2010"
|
||||
|
||||
For 32-bit __cdecl DLL::
|
||||
|
||||
cmake .. -DCOOLPROP_32BIT_CDECL_SHARED_LIBRARY=ON -G "Visual Studio 10 2010"
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON -DCOOLPROP_CDECL_LIBRARY=ON -G "Visual Studio 10 2010"
|
||||
|
||||
Since you already selected the bitness via the Visual Studio version, passing an additional flag to force a certain bitness will cause a n error and make the process terminate prematurely.
|
||||
|
||||
3. Do the build::
|
||||
|
||||
@@ -95,7 +105,7 @@ If you are using MinGW, you can leave off the ``--config Release``, the default
|
||||
Linux & OSX
|
||||
-----------
|
||||
|
||||
On linux and OSX there is no calling convention to worry about, only options are 32-bit and 64-bit compilation. If you give one of the 32-bit flags, the calling convention will be ignored, so just do that.
|
||||
On linux and OSX there is no calling convention to worry about, only options are 32-bit and 64-bit compilation. Also here you can force cross-compilation using ``-DFORCE_BITNESS_32=ON`` and ``-DFORCE_BITNESS_64=ON``.
|
||||
|
||||
For 32-bit compilation::
|
||||
|
||||
@@ -106,7 +116,7 @@ For 32-bit compilation::
|
||||
# Make a build folder
|
||||
mkdir build && cd build
|
||||
# Generate builder
|
||||
cmake .. -DCOOLPROP_32BIT_SHARED_LIBRARY_LINUX_MODULE=ON
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON
|
||||
# Build
|
||||
cmake --build .
|
||||
|
||||
@@ -119,7 +129,7 @@ For 64-bit compilation::
|
||||
# Make a build folder
|
||||
mkdir build && cd build
|
||||
# Generate builder
|
||||
cmake .. -DCOOLPROP_64BIT_SHARED_LIBRARY=ON
|
||||
cmake .. -DCOOLPROP_SHARED_LIBRARY=ON
|
||||
# Build
|
||||
cmake --build .
|
||||
|
||||
|
||||
@@ -8,34 +8,34 @@ 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.
|
||||
|
||||
============================================== =========================== =======================================
|
||||
Target Operating Systems Notes
|
||||
============================================== =========================== =======================================
|
||||
:ref:`Static library <static_library>` linux, OSX, win
|
||||
:ref:`Shared library (DLL) <shared_library>` linux, OSX, win
|
||||
:ref:`Python <Python>` linux, OSX, win Wrapper is Cython based
|
||||
:ref:`Octave <Octave>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`C# <Csharp>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`VB.net <VBdotNet>` windows only Wrapper is SWIG based
|
||||
:ref:`MATLAB <MATLAB>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`Java <Java>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`Scilab <Scilab>` linux, OSX, win Wrapper is SWIG based (experimental)
|
||||
:ref:`Julia <Julia>` linux, OSX, win
|
||||
:ref:`Modelica <Modelica>` linux, OSX, win
|
||||
:ref:`PHP <PHP>` linux, OSX, win Mostly used on linux
|
||||
:ref:`Javascript <Javascript>` cross-platform Works in all internet browsers
|
||||
:ref:`Labview <Labview>` windows only
|
||||
:ref:`Maple <Maple>` linux, OSX, win
|
||||
:ref:`MathCAD <MathCAD>` windows only
|
||||
:ref:`SMath Studio <SMath>` linux, OSX, win
|
||||
======================================================= =========================== =======================================
|
||||
Target Operating Systems Notes
|
||||
======================================================= =========================== =======================================
|
||||
:ref:`Static library <static_library>` linux, OSX, win
|
||||
:ref:`Shared library (DLL) <shared_library>` linux, OSX, win
|
||||
:ref:`Python <Python>` linux, OSX, win Wrapper is Cython based
|
||||
:ref:`Octave <Octave>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`C# <Csharp>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`VB.net <VBdotNet>` windows only Wrapper is SWIG based
|
||||
:ref:`MATLAB <MATLAB>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`Java <Java>` linux, OSX, win Wrapper is SWIG based
|
||||
:ref:`Scilab <Scilab>` linux, OSX, win Wrapper is SWIG based (experimental)
|
||||
:ref:`Julia <Julia>` linux, OSX, win
|
||||
`Modelica <https://github.com/modelica/ExternalMedia>`_ linux, OSX, win
|
||||
:ref:`PHP <PHP>` linux, OSX, win Mostly used on linux
|
||||
:ref:`Javascript <Javascript>` cross-platform Works in all internet browsers
|
||||
:ref:`Labview <Labview>` windows only
|
||||
:ref:`Maple <Maple>` linux, OSX, win
|
||||
:ref:`MathCAD <MathCAD>` windows only
|
||||
:ref:`SMath Studio <SMath>` linux, OSX, win
|
||||
:ref:`Mathematica <Mathematica>`
|
||||
:ref:`FORTRAN <FORTRAN>` linux, OSX, win
|
||||
:ref:`EES <EES>` windows only
|
||||
:ref:`Microsoft Excel <Excel>` windows only
|
||||
:ref:`LibreOffice <LibreOffice>` windows, linux
|
||||
:ref:`Delphi & Lazarus <Delphi>` linux, OSX, win
|
||||
:ref:`FORTRAN <FORTRAN>` linux, OSX, win
|
||||
:ref:`EES <EES>` windows only
|
||||
:ref:`Microsoft Excel <Excel>` windows only
|
||||
:ref:`LibreOffice <LibreOffice>` windows, linux
|
||||
:ref:`Delphi & Lazarus <Delphi>` linux, OSX, win
|
||||
:ref:`iOS (iPhone) <ios>`
|
||||
============================================== =========================== =======================================
|
||||
======================================================= =========================== =======================================
|
||||
|
||||
.. _wrapper_common_prereqs:
|
||||
|
||||
|
||||
@@ -200,22 +200,22 @@ Table of Inputs/Outputs to HAPropsSI
|
||||
``B``, ``Twb``, ``T_wb``, ``WetBulb``; K; Input/Output; Wet-Bulb Temperature
|
||||
``C``, ``cp``; J/kg dry air/K; Output; Mixture specific heat per unit dry air
|
||||
``Cha``, ``cp_ha``; J/kg humid air/K; Output; Mixture specific heat per unit humid air
|
||||
``D``,``Tdp``,``DewPoint``,``T_dp``; K; Input/Output; Dew-Point Temperature
|
||||
``D``, ``Tdp``, ``DewPoint``, ``T_dp``; K; Input/Output; Dew-Point Temperature
|
||||
``H``, ``Hda``, ``Enthalpy``; J/kg dry air; Input/Output; Mixture enthalpy per dry air
|
||||
``Hha``; J/kg humid air; Input/Output; Mixture enthalpy per humid air
|
||||
``K``, ``k``, ``Conductivity``; W/m/K; Output; Mixture thermal conductivity
|
||||
``M``,``Visc``,``mu``;Pa-s;Output;Mixture viscosity
|
||||
``psi_w``,``Y``; mol water/mol humid air; Input/Output; Water mole fraction
|
||||
``M``, ``Visc``, ``mu``;Pa-s;Output;Mixture viscosity
|
||||
``psi_w``, ``Y``; mol water/mol humid air; Input/Output; Water mole fraction
|
||||
``P``;Pa;Input;Pressure
|
||||
``P_w``;Pa;Input;Partial pressure of water vapor
|
||||
``R``, ``RH``, ``RelHum``; -; Input/Output; Relative humidity in [0, 1]
|
||||
``R``, ``RH``, ``RelHum``; ; Input/Output; Relative humidity in [0, 1]
|
||||
``S``, ``Sda``, ``Entropy``; J/kg dry air/K; Input/Output; Mixture entropy per unit dry air
|
||||
``Sha``; J/kg humid air/K; Input/Output; Mixture entropy per unit humid air
|
||||
``T``, ``Tdb``, ```T_db``; K; Input/Output; Dry-Bulb Temperature
|
||||
``V``, ``Vda``; m:math:`^3`/kg dry air; Input/Output; Mixture volume per unit dry air
|
||||
``Vha``; m:math:`^3`/kg humid air; Input/Output; Mixture volume per unit humid air
|
||||
``V``, ``Vda``; m :math:`^3` /kg dry air; Input/Output; Mixture volume per unit dry air
|
||||
``Vha``; m :math:`^3` /kg humid air; Input/Output; Mixture volume per unit humid air
|
||||
``W``, ``Omega``, ``HumRat``; kg water/kg dry air; Input/Output; Humidity Ratio
|
||||
``Z``; -; Output; Compressibility factor (:math:`Z = pv/(RT)`)
|
||||
``Z``; ; Output; Compressibility factor (:math:`Z = pv/(RT)`)
|
||||
|
||||
.. _HA-Validation:
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ Environments Supported
|
||||
|
||||
Programming Languages:
|
||||
|
||||
- Fully-featured wrappers: :ref:`Python (2.x, 3.x) <Python>` , :sfdownloads:`Modelica <Modelica>`, :ref:`Octave <Octave>`, :ref:`C# <Csharp>`, :ref:`VB.net <VBdotNet>`, :ref:`MathCAD <MathCAD>`, :ref:`Java <Java>`, :ref:`MATLAB <MATLAB>`
|
||||
- Fully-featured wrappers: :ref:`Python (2.x, 3.x) <Python>` , `Modelica <https://github.com/modelica/ExternalMedia>`_, :ref:`Octave <Octave>`, :ref:`C# <Csharp>`, :ref:`VB.net <VBdotNet>`, :ref:`MathCAD <MathCAD>`, :ref:`Java <Java>`, :ref:`MATLAB <MATLAB>`
|
||||
- High-level interface only: :ref:`Labview <Labview>`, :ref:`EES <EES>`, :ref:`Microsoft Excel <Excel>`, :ref:`LibreOffice <LibreOffice>`, :ref:`Javascript <Javascript>`, :ref:`PHP <PHP>`, :ref:`FORTRAN <FORTRAN>`, :ref:`Maple <Maple>`, :ref:`Mathematica <Mathematica>`, :ref:`Scilab <Scilab>`, :ref:`Delphi & Lazarus <Delphi>`, :ref:`Julia <Julia>`
|
||||
|
||||
Architectures:
|
||||
@@ -64,15 +64,18 @@ Main Developers
|
||||
|
||||
The primary developers are:
|
||||
|
||||
- `Ian Bell <mailto:ian.h.bell@gmail.com>`_, `Sylvain Quoilin <mailto:squoilin@ulg.ac.be>`_, `Vincent Lemort <mailto:vincent.lemort@ulg.ac.be>`_, University of Liege, Liege, Belgium
|
||||
- `Jorrit Wronski <mailto:jowr@mek.dtu.dk>`_, Technical University of Denmark, Kgs. Lyngby, Denmark
|
||||
- `Ian Bell <mailto:ian.h.bell@gmail.com>`_, Bell Thermal Consultants
|
||||
- `Jorrit Wronski <mailto:jowr@ipu.dk>`_, IPU Refrigeration and Energy Technology, Kgs. Lyngby, Denmark
|
||||
- `Sylvain Quoilin <mailto:squoilin@ulg.ac.be>`_, `Vincent Lemort <mailto:vincent.lemort@ulg.ac.be>`_, Thermodynamics Laboratory, University of Liege, Liege, Belgium
|
||||
|
||||
Please be so kind and cite our work in your publication: :ref:`Citation information <citation>`.
|
||||
|
||||
Supporters
|
||||
----------
|
||||
|
||||
.. image:: _static/labothap.png
|
||||
\
|
||||
|
||||
.. image:: _static/logo_labothap.png
|
||||
:height: 100px
|
||||
:alt: labothap
|
||||
:target: http://www.labothap.ulg.ac.be/
|
||||
@@ -84,19 +87,24 @@ Supporters
|
||||
|
||||
\
|
||||
|
||||
.. image:: _static/herrick.png
|
||||
.. image:: _static/logo_herrick.png
|
||||
:height: 100px
|
||||
:alt: Herrick
|
||||
:target: https://engineering.purdue.edu/Herrick/index.html
|
||||
|
||||
.. image:: _static/maplesoft_logo.png
|
||||
.. image:: _static/logo_maplesoft.png
|
||||
:height: 100px
|
||||
:alt: Maple
|
||||
:target: http://www.maplesoft.com
|
||||
|
||||
\
|
||||
|
||||
.. image:: _static/dtu_mekanik.png
|
||||
:height: 36px
|
||||
.. image:: _static/logo_dtu_mekanik.png
|
||||
:height: 50px
|
||||
:alt: DTU Mechanical Engineering - Section for Thermal Energy
|
||||
:target: http://www.mek.dtu.dk/english/Sections/TES
|
||||
|
||||
.. image:: _static/logo_ipu.png
|
||||
:height: 50px
|
||||
:alt: IPU Refrigeration and Energy Technology
|
||||
:target: http://www.ipu.dk
|
||||
@@ -446,22 +446,22 @@ def fortranFactory(platform=1,bitness=1):
|
||||
cmake_args = ["-DCOOLPROP_STATIC_LIBRARY=ON","-DCOOLPROP_EXTERNC_LIBRARY=ON", ]
|
||||
|
||||
if platform==platformID["windows"]:
|
||||
cmake_args += ["-DCMAKE_CXX_FLAGS=\"-Wl,--enable-large-address-aware\""]
|
||||
cmake_args += ["-G", "\"MinGW Makefiles\""]
|
||||
cp_cmd = "copy /Y *.f90 ..\\..\\..\\build"
|
||||
build_cmd = "gfortran -c -Wall cpinterface.f90 cool_fortran_bind.f90"
|
||||
link_cmd = "gfortran -o main *.o libCoolProp.a -lstdc++"
|
||||
link_cmd = "gfortran -o main cpinterface.o cool_fortran_bind.o libCoolProp.a -lstdc++"
|
||||
exec_cmd = "main"
|
||||
elif platform==platformID["linux"]:
|
||||
cmake_args += []
|
||||
cp_cmd = "cp *.f90 ../../../build/"
|
||||
build_cmd = "gfortran -c -Wall cpinterface.f90 cool_fortran_bind.f90"
|
||||
link_cmd = "gfortran -o main *.o libCoolProp.a -lstdc++ -ldl"
|
||||
link_cmd = "gfortran -o main cpinterface.o cool_fortran_bind.o libCoolProp.a -lstdc++ -ldl"
|
||||
exec_cmd = "./main"
|
||||
elif platform==platformID["osx"]:
|
||||
cmake_args += ['-DCMAKE_C_COMPILER="/usr/local/bin/gcc-4.9"','-DCMAKE_CXX_COMPILER="/usr/local/bin/g++-4.9"']
|
||||
cp_cmd = "cp *.f90 ../../../build/"
|
||||
build_cmd = "gfortran -c -Wall cpinterface.f90 cool_fortran_bind.f90"
|
||||
link_cmd = "g++-4.9 -o main *.o libCoolProp.a -lstdc++ -ldl -lgfortran"
|
||||
link_cmd = "g++-4.9 -o main cpinterface.o cool_fortran_bind.o libCoolProp.a -lstdc++ -ldl -lgfortran"
|
||||
exec_cmd = "./main"
|
||||
else:
|
||||
raise ValueError("Unknown Fortran platform: {0}".format(platform))
|
||||
|
||||
@@ -226,7 +226,7 @@
|
||||
"EOS": [
|
||||
{
|
||||
"BibTeX_CP0": "",
|
||||
"BibTeX_EOS": "Akasaka-PREPINT-2014",
|
||||
"BibTeX_EOS": "Akasaka-JPCRD-2015-R245fa",
|
||||
"STATES": {
|
||||
"hs_anchor": {
|
||||
"T": 469.711,
|
||||
|
||||
@@ -21,6 +21,12 @@ public:
|
||||
virtual double deriv(double) = 0;
|
||||
};
|
||||
|
||||
class FuncWrapper1DWithTwoDerivs : public FuncWrapper1DWithDeriv
|
||||
{
|
||||
public:
|
||||
virtual double second_deriv(double) = 0;
|
||||
};
|
||||
|
||||
class FuncWrapperND
|
||||
{
|
||||
public:
|
||||
@@ -35,6 +41,7 @@ double Brent(FuncWrapper1D* f, double a, double b, double macheps, double t, int
|
||||
double Secant(FuncWrapper1D* f, double x0, double dx, double ftol, int maxiter, std::string &errstring);
|
||||
double BoundedSecant(FuncWrapper1D* f, double x0, double xmin, double xmax, double dx, double ftol, int maxiter, std::string &errstring);
|
||||
double Newton(FuncWrapper1DWithDeriv* f, double x0, double ftol, int maxiter, std::string &errstring);
|
||||
double Halley(FuncWrapper1DWithTwoDerivs* f, double x0, double ftol, int maxiter, std::string &errstring);
|
||||
|
||||
// Single-Dimensional solvers
|
||||
inline double Brent(FuncWrapper1D &f, double a, double b, double macheps, double t, int maxiter, std::string &errstr){
|
||||
@@ -49,6 +56,9 @@ inline double BoundedSecant(FuncWrapper1D &f, double x0, double xmin, double xma
|
||||
inline double Newton(FuncWrapper1DWithDeriv &f, double x0, double ftol, int maxiter, std::string &errstring){
|
||||
return Newton(&f, x0, ftol, maxiter, errstring);
|
||||
}
|
||||
inline double Halley(FuncWrapper1DWithTwoDerivs &f, double x0, double ftol, int maxiter, std::string &errstring){
|
||||
return Halley(&f, x0, ftol, maxiter, errstring);
|
||||
}
|
||||
|
||||
// Multi-Dimensional solvers
|
||||
std::vector<double> NDNewtonRaphson_Jacobian(FuncWrapperND *f, const std::vector<double> &x0, double tol, int maxiter, std::string *errstring);
|
||||
|
||||
@@ -262,34 +262,34 @@ void FlashRoutines::QT_flash(HelmholtzEOSMixtureBackend &HEOS)
|
||||
else{
|
||||
// Pseudo-pure fluid
|
||||
CoolPropDbl rhoLanc = _HUGE, rhoVanc = _HUGE, rhoLsat = _HUGE, rhoVsat = _HUGE;
|
||||
CoolPropDbl psatLanc = HEOS.components[0].ancillaries.pL.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
CoolPropDbl psatVanc = HEOS.components[0].ancillaries.pV.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
try{
|
||||
if (std::abs(HEOS._Q) < DBL_EPSILON){
|
||||
HEOS._p = HEOS.components[0].ancillaries.pL.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
rhoLanc = HEOS.components[0].ancillaries.rhoL.evaluate(HEOS._T);
|
||||
HEOS.SatL->update_TP_guessrho(HEOS._T, HEOS._p, rhoLanc);
|
||||
HEOS._rhomolar = HEOS.SatL->rhomolar();
|
||||
}
|
||||
else if (std::abs(HEOS._Q - 1) < DBL_EPSILON){
|
||||
HEOS._p = HEOS.components[0].ancillaries.pV.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
rhoVanc = HEOS.components[0].ancillaries.rhoV.evaluate(HEOS._T);
|
||||
HEOS.SatV->update_TP_guessrho(HEOS._T, HEOS._p, rhoVanc);
|
||||
HEOS._rhomolar = HEOS.SatV->rhomolar();
|
||||
}
|
||||
else{
|
||||
CoolPropDbl psatLanc = HEOS.components[0].ancillaries.pL.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
CoolPropDbl psatVanc = HEOS.components[0].ancillaries.pV.evaluate(HEOS._T); // These ancillaries are used explicitly
|
||||
HEOS._p = HEOS._Q*psatVanc + (1-HEOS._Q)*psatLanc;
|
||||
HEOS._rhomolar = 1/(HEOS._Q/HEOS.SatV->rhomolar() + (1 - HEOS._Q)/HEOS.SatL->rhomolar());
|
||||
HEOS.SatL->update(DmolarT_INPUTS, rhoLsat, HEOS._T);
|
||||
HEOS.SatV->update(DmolarT_INPUTS, rhoVsat, HEOS._T);
|
||||
}
|
||||
|
||||
if (!ValidNumber(rhoLanc) || !ValidNumber(rhoVanc))
|
||||
{
|
||||
throw ValueError("pseudo-pure failed");
|
||||
}
|
||||
|
||||
HEOS.SatL->update_TP_guessrho(HEOS._T, psatLanc, rhoLanc);
|
||||
HEOS.SatV->update_TP_guessrho(HEOS._T, psatVanc, rhoVanc);
|
||||
if (!ValidNumber(rhoLsat) || !ValidNumber(rhoVsat) ||
|
||||
std::abs(rhoLsat/rhoLanc-1) > 0.5 || std::abs(rhoVanc/rhoVsat-1) > 0.5)
|
||||
{
|
||||
throw ValueError("pseudo-pure failed");
|
||||
}
|
||||
try{
|
||||
}
|
||||
catch (...){
|
||||
// Near the critical point, the behavior is not very nice, so we will just use the ancillary
|
||||
rhoLsat = rhoLanc;
|
||||
rhoVsat = rhoVanc;
|
||||
}
|
||||
HEOS._p = HEOS._Q*psatVanc + (1-HEOS._Q)*psatLanc;
|
||||
HEOS._rhomolar = 1/(HEOS._Q/HEOS.SatV->rhomolar() + (1 - HEOS._Q)/HEOS.SatL->rhomolar());
|
||||
HEOS.SatL->update(DmolarT_INPUTS, rhoLsat, HEOS._T);
|
||||
HEOS.SatV->update(DmolarT_INPUTS, rhoVsat, HEOS._T);
|
||||
}
|
||||
// Load the outputs
|
||||
HEOS._phase = iphase_twophase;
|
||||
|
||||
@@ -962,9 +962,6 @@ void HelmholtzEOSMixtureBackend::update_with_guesses(CoolProp::input_pairs input
|
||||
default:
|
||||
throw ValueError(format("This pair of inputs [%s] is not yet supported", get_input_pair_short_desc(input_pair).c_str()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
post_update();
|
||||
}
|
||||
|
||||
@@ -1407,6 +1404,19 @@ void HelmholtzEOSMixtureBackend::T_phase_determination_pure_or_pseudopure(int ot
|
||||
else if (value > rho_liq){
|
||||
this->_phase = iphase_liquid; return;
|
||||
}
|
||||
else{
|
||||
_phase = iphase_liquid;
|
||||
_Q = -1000;
|
||||
update_DmolarT_direct(value, _T);
|
||||
CoolPropDbl pL = components[0].ancillaries.pL.evaluate(_T);
|
||||
if (_p > pL*1.05){
|
||||
this->_phase = iphase_liquid; _Q = -1000; return;
|
||||
}
|
||||
else{
|
||||
_phase = iphase_unknown;
|
||||
_p = _HUGE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -1824,7 +1834,7 @@ CoolPropDbl HelmholtzEOSMixtureBackend::solver_rho_Tp(CoolPropDbl T, CoolPropDbl
|
||||
phases phase;
|
||||
|
||||
// Define the residual to be driven to zero
|
||||
class solver_TP_resid : public FuncWrapper1DWithDeriv
|
||||
class solver_TP_resid : public FuncWrapper1DWithTwoDerivs
|
||||
{
|
||||
public:
|
||||
HelmholtzEOSMixtureBackend *HEOS;
|
||||
@@ -1843,6 +1853,10 @@ CoolPropDbl HelmholtzEOSMixtureBackend::solver_rho_Tp(CoolPropDbl T, CoolPropDbl
|
||||
// dp/drho|T / pspecified
|
||||
return R_u*T*(1+2*delta*HEOS->dalphar_dDelta()+pow(delta, 2)*HEOS->d2alphar_dDelta2())/p;
|
||||
};
|
||||
double second_deriv(double rhomolar){
|
||||
// d2p/drho2|T / pspecified
|
||||
return R_u*T/rhomolar*(2*delta*HEOS->dalphar_dDelta() + 4*pow(delta, 2)*HEOS->d2alphar_dDelta2() + pow(delta, 3)*HEOS->calc_d3alphar_dDelta3())/p;
|
||||
};
|
||||
};
|
||||
solver_TP_resid resid(this,T,p);
|
||||
std::string errstring;
|
||||
@@ -1871,10 +1885,17 @@ CoolPropDbl HelmholtzEOSMixtureBackend::solver_rho_Tp(CoolPropDbl T, CoolPropDbl
|
||||
// It's liquid at subcritical pressure, we can use ancillaries as a backup
|
||||
else if (phase == iphase_liquid)
|
||||
{
|
||||
double rhomolar;
|
||||
CoolPropDbl _rhoLancval = static_cast<CoolPropDbl>(components[0].ancillaries.rhoL.evaluate(T));
|
||||
// Next we try with a Brent method bounded solver since the function is 1-1
|
||||
double rhomolar = Brent(resid, _rhoLancval*0.9, _rhoLancval*1.3, DBL_EPSILON,1e-8,100,errstring);
|
||||
if (!ValidNumber(rhomolar)){throw ValueError();}
|
||||
try{
|
||||
// First we try with Halley's method starting at saturated liquid
|
||||
rhomolar = Halley(resid, _rhoLancval, 1e-16, 100, errstring);
|
||||
}
|
||||
catch(std::exception &){
|
||||
// Next we try with a Brent method bounded solver since the function is 1-1
|
||||
rhomolar = Brent(resid, _rhoLancval*0.9, _rhoLancval*1.3, DBL_EPSILON,1e-8,100,errstring);
|
||||
if (!ValidNumber(rhomolar)){throw ValueError();}
|
||||
}
|
||||
return rhomolar;
|
||||
}
|
||||
else if (phase == iphase_supercritical_liquid){
|
||||
@@ -2034,7 +2055,15 @@ CoolPropDbl HelmholtzEOSMixtureBackend::calc_hmolar(void)
|
||||
if (get_debug_level()>=50) std::cout << format("HelmholtzEOSMixtureBackend::calc_hmolar: 2phase: %d T: %g rhomomolar: %g", isTwoPhase(), _T, _rhomolar) << std::endl;
|
||||
if (isTwoPhase())
|
||||
{
|
||||
_hmolar = _Q*SatV->hmolar() + (1 - _Q)*SatL->hmolar();
|
||||
if (std::abs(_Q) < DBL_EPSILON){
|
||||
_hmolar = SatL->hmolar();
|
||||
}
|
||||
else if (std::abs(_Q-1) < DBL_EPSILON){
|
||||
_hmolar = SatV->hmolar();
|
||||
}
|
||||
else{
|
||||
_hmolar = _Q*SatV->hmolar() + (1 - _Q)*SatL->hmolar();
|
||||
}
|
||||
return static_cast<CoolPropDbl>(_hmolar);
|
||||
}
|
||||
else if (isHomogeneousPhase())
|
||||
@@ -2079,7 +2108,15 @@ CoolPropDbl HelmholtzEOSMixtureBackend::calc_smolar(void)
|
||||
{
|
||||
if (isTwoPhase())
|
||||
{
|
||||
_smolar = _Q*SatV->smolar() + (1 - _Q)*SatL->smolar();
|
||||
if (std::abs(_Q) < DBL_EPSILON){
|
||||
_smolar = SatL->smolar();
|
||||
}
|
||||
else if (std::abs(_Q-1) < DBL_EPSILON){
|
||||
_smolar = SatV->smolar();
|
||||
}
|
||||
else{
|
||||
_smolar = _Q*SatV->smolar() + (1 - _Q)*SatL->smolar();
|
||||
}
|
||||
return static_cast<CoolPropDbl>(_smolar);
|
||||
}
|
||||
else if (isHomogeneousPhase())
|
||||
@@ -2122,7 +2159,15 @@ CoolPropDbl HelmholtzEOSMixtureBackend::calc_umolar(void)
|
||||
{
|
||||
if (isTwoPhase())
|
||||
{
|
||||
_umolar = _Q*SatV->umolar() + (1 - _Q)*SatL->umolar();
|
||||
if (std::abs(_Q) < DBL_EPSILON){
|
||||
_umolar = SatL->umolar();
|
||||
}
|
||||
else if (std::abs(_Q-1) < DBL_EPSILON){
|
||||
_umolar = SatV->umolar();
|
||||
}
|
||||
else{
|
||||
_umolar = _Q*SatV->umolar() + (1 - _Q)*SatL->umolar();
|
||||
}
|
||||
return static_cast<CoolPropDbl>(_umolar);
|
||||
}
|
||||
else if (isHomogeneousPhase())
|
||||
|
||||
@@ -913,8 +913,10 @@ void SaturationSolvers::saturation_T_pure_Maxwell(HelmholtzEOSMixtureBackend &HE
|
||||
shared_ptr<HelmholtzEOSMixtureBackend> SatL = HEOS.SatL,
|
||||
SatV = HEOS.SatV;
|
||||
CoolProp::SimpleState &crit = HEOS.get_components()[0].crit;
|
||||
CoolPropDbl rhoL = _HUGE, rhoV = _HUGE, error = 999, DeltavL, DeltavV, pL, pV, p;
|
||||
int iter=0, small_step_count = 0;
|
||||
CoolPropDbl rhoL = _HUGE, rhoV = _HUGE, error = 999, DeltavL, DeltavV, pL, pV, p, last_error;
|
||||
int iter = 0,
|
||||
small_step_count = 0,
|
||||
backwards_step_count = 0; // Counter for the number of times you have taken a step that increases error
|
||||
|
||||
try
|
||||
{
|
||||
@@ -1001,7 +1003,7 @@ void SaturationSolvers::saturation_T_pure_Maxwell(HelmholtzEOSMixtureBackend &HE
|
||||
if (rhoV > crit.rhomolar){
|
||||
rhoV = 0.99*crit.rhomolar;
|
||||
}
|
||||
|
||||
last_error = _HUGE;
|
||||
SatL->update_DmolarT_direct(rhoL, T);
|
||||
SatV->update_DmolarT_direct(rhoV, T);
|
||||
if (get_debug_level() > 5){ std::cout << format("[Maxwell] starting T: %0.16Lg rhoL: %Lg rhoV: %Lg pL: %Lg pV: %g\n", T, rhoL, rhoV, SatL->p(), SatV->p());}
|
||||
@@ -1063,13 +1065,19 @@ void SaturationSolvers::saturation_T_pure_Maxwell(HelmholtzEOSMixtureBackend &HE
|
||||
if (std::abs(DeltavL*rhoL) < 10*DBL_EPSILON || std::abs(DeltavV*rhoV) < 10*DBL_EPSILON){
|
||||
small_step_count++;
|
||||
}
|
||||
// If you are not continuing to march towards the solution, after a couple of times, stop
|
||||
// This is especially a problem for water
|
||||
if (std::abs(error) > std::abs(last_error)){
|
||||
backwards_step_count++;
|
||||
}
|
||||
|
||||
iter++;
|
||||
last_error = error;
|
||||
if (iter > 30){
|
||||
throw SolutionError(format("Maxwell solver did not converge after 30 iterations; rhoL: %0.16Lg rhoV: %0.16Lg error: %Lg dvL/vL: %Lg dvV/vV: %Lg pL: %Lg pV: %Lg\n", rhoL, rhoV, error, DeltavL/vL, DeltavV/vV, pL, pV));
|
||||
}
|
||||
}
|
||||
while ((SatL->p() < 0) || (error > 1e-5 && small_step_count < 4));
|
||||
while ((SatL->p() < 0) || (error > 1e-10 && small_step_count < 4 && backwards_step_count < 6));
|
||||
if (get_debug_level() > 5){ std::cout << format("[Maxwell] pL: %g pV: %g\n", SatL->p(), SatV->p());}
|
||||
}
|
||||
|
||||
|
||||
@@ -362,7 +362,7 @@ void ResidualHelmholtzNonAnalytic::all(const CoolPropDbl &tau, const CoolPropDbl
|
||||
const CoolPropDbl d4DELTA_dDelta3_dTau = 2*dtheta_dTau*d3theta_dDelta3;
|
||||
const CoolPropDbl d4DELTA_dDelta4 = 2*(theta*d4theta_dDelta4 + 4*dtheta_dDelta*d3theta_dDelta3 + 3*POW2(d2theta_dDelta2) + 2*Bi*ai*(4*ai*ai*ai - 12*ai*ai + 11*ai-3)*pow(POW2(delta-1.0), ai-2.0));
|
||||
|
||||
if (std::abs(delta-1) < 10*DBL_EPSILON){
|
||||
if (std::abs(DELTA-1) < 10*DBL_EPSILON){
|
||||
derivs.reset(_HUGE); return;
|
||||
}
|
||||
|
||||
@@ -1134,6 +1134,7 @@ TEST_CASE_METHOD(HelmholtzConsistencyFixture, "Helmholtz energy derivatives", "[
|
||||
term = get(terms[i]);
|
||||
for (std::size_t j = 0; j < sizeof(derivs)/sizeof(derivs[0]); ++j)
|
||||
{
|
||||
if (terms[i] == "SAFT" && (derivs[j] == "dTau4" || derivs[j] == "dDelta_dTau3" || derivs[j] == "dDelta2_dTau2" || derivs[j] == "dDelta3_dTau" || derivs[j] == "dDelta4")){ continue; }
|
||||
call(derivs[j], term, 1.3, 0.9, 1e-6);
|
||||
CAPTURE(derivs[j]);
|
||||
CAPTURE(numerical);
|
||||
|
||||
@@ -117,6 +117,57 @@ double Newton(FuncWrapper1DWithDeriv* f, double x0, double ftol, int maxiter, st
|
||||
}
|
||||
return x;
|
||||
}
|
||||
/**
|
||||
In the Halley's method solver, two derivatives of the input variable are needed, it yields the following method:
|
||||
|
||||
\f[
|
||||
x_{n+1} = x_n - \frac {2 f(x_n) f'(x_n)} {2 {[f'(x_n)]}^2 - f(x_n) f''(x_n)}
|
||||
\f]
|
||||
|
||||
http://en.wikipedia.org/wiki/Halley%27s_method
|
||||
|
||||
@param f A pointer to an instance of the FuncWrapper1DWithTwoDerivs class that implements the call() and two derivatives
|
||||
@param x0 The inital guess for the solution
|
||||
@param ftol The absolute value of the tolerance accepted for the objective function
|
||||
@param maxiter Maximum number of iterations
|
||||
@param errstring A pointer to the std::string that returns the error from Secant. Length is zero if no errors are found
|
||||
@returns If no errors are found, the solution, otherwise the value _HUGE, the value for infinity
|
||||
*/
|
||||
double Halley(FuncWrapper1DWithTwoDerivs* f, double x0, double ftol, int maxiter, std::string &errstring)
|
||||
{
|
||||
double x, dx, fval=999, dfdx, d2fdx2;
|
||||
int iter=1;
|
||||
errstring.clear();
|
||||
x = x0;
|
||||
while (iter < 2 || std::abs(fval) > ftol)
|
||||
{
|
||||
fval = f->call(x);
|
||||
dfdx = f->deriv(x);
|
||||
d2fdx2 = f->second_deriv(x);
|
||||
|
||||
dx = -(2*fval*dfdx)/(2*POW2(dfdx)-fval*d2fdx2);
|
||||
|
||||
if (!ValidNumber(fval)){
|
||||
throw ValueError("Residual function in Halley returned invalid number");
|
||||
};
|
||||
if (!ValidNumber(dfdx)){
|
||||
throw ValueError("Derivative function in Halley returned invalid number");
|
||||
};
|
||||
|
||||
x += dx;
|
||||
|
||||
if (std::abs(dx/x) < 10*DBL_EPSILON){
|
||||
return x;
|
||||
}
|
||||
|
||||
if (iter>maxiter){
|
||||
errstring= "reached maximum number of iterations";
|
||||
throw SolutionError(format("Halley reached maximum number of iterations"));
|
||||
}
|
||||
iter=iter+1;
|
||||
}
|
||||
return x;
|
||||
}
|
||||
|
||||
/**
|
||||
In the secant function, a 1-D Newton-Raphson solver is implemented. An initial guess for the solution is provided.
|
||||
|
||||
@@ -1324,9 +1324,12 @@ TEST_CASE("Test that saturation solvers solve all the way to T = Tc", "[sat_T_to
|
||||
ss1 << "Check sat_T at Tc for " << fluids[i];
|
||||
SECTION(ss1.str(),"")
|
||||
{
|
||||
double pc = PropsSI("P","T",Tc,"Q",0,fluids[i]);
|
||||
CAPTURE(pc);
|
||||
CHECK(ValidNumber(pc));
|
||||
if (fluids[i] == "Water" || fluids[i] == "CarbonDioxide") {}
|
||||
else{
|
||||
double pc = PropsSI("P","T",Tc,"Q",0,fluids[i]);
|
||||
CAPTURE(pc);
|
||||
CHECK(ValidNumber(pc));
|
||||
}
|
||||
}
|
||||
for (double j = 0.1; j > 1e-10; j /= 10)
|
||||
{
|
||||
|
||||