This commit is contained in:
Ian Bell
2015-04-25 14:21:56 -06:00
27 changed files with 380 additions and 108 deletions

View File

@@ -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}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
Web/_static/logo_ipu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -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 ../..

View File

@@ -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

View File

@@ -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
-----

View File

@@ -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 .

View File

@@ -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:

View File

@@ -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:

View File

@@ -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

View File

@@ -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))

View File

@@ -226,7 +226,7 @@
"EOS": [
{
"BibTeX_CP0": "",
"BibTeX_EOS": "Akasaka-PREPINT-2014",
"BibTeX_EOS": "Akasaka-JPCRD-2015-R245fa",
"STATES": {
"hs_anchor": {
"T": 469.711,

View File

@@ -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);

View File

@@ -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;

View File

@@ -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())

View File

@@ -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());}
}

View File

@@ -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);

View File

@@ -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.

View File

@@ -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)
{