# ThermodynamicData: Incorrect reference state for CO2

Posted 5 months ago
700 Views
|
3 Replies
|
2 Total Likes
|
 It appears that ThermodynamicData has the incorrect reference state for carbon dioxide.Span and Wagner (1996) define the reference state of CO2 for which entropy and enthalpy are zero to have pressure 0.101325 MPa and temperature 298.15 K (25 C). The functions below calculate the entropy of saturated vapor and saturated liquid CO2 relative to a specified reference state. The reference state pressure is set to 0.101325 MPa. By varying the reference temperature and comparing the result to the values from Table 34 of Span and Wagner, it appears that ThermodynamicData assumes a reference state with temperature 27.776 C (instead of 25 C).This discrepancy only affects the absolute value of entropy. The difference in entropy between two states is not affected. Remove["Global*"] Needs["NumericalCalculus"] Print["T0 = ", tref = 25.776, " \[Degree]C"] (* temperature of reference state (degrees Celsius) *) (* Entropy *) sSatVapor[t_?NumericQ] := Module[{psat, obj, m}, psat = ThermodynamicData["CarbonDioxide", "LiquidVaporPhaseBoundary", {"Temperature" -> Quantity[t, "DegreesCelsius"]}]; obj[\[Mu]_?NumericQ] := QuantityMagnitude[ ThermodynamicData["CarbonDioxide", "Entropy", {"Temperature" -> Quantity[t, "DegreesCelsius"], "Pressure" -> \[Mu]*psat}]] - QuantityMagnitude[ ThermodynamicData["CarbonDioxide", "Entropy", {"Temperature" -> Quantity[tref, "DegreesCelsius"], "Pressure" -> Quantity[0.101325, "Megapascals"]}]]; NLimit[obj[m], m -> 1, Direction -> 1]] sSatLiquid[t_?NumericQ] := Module[{psat, obj, m}, psat = ThermodynamicData["CarbonDioxide", "LiquidVaporPhaseBoundary", {"Temperature" -> Quantity[t, "DegreesCelsius"]}]; obj[\[Mu]_?NumericQ] := QuantityMagnitude[ ThermodynamicData["CarbonDioxide", "Entropy", {"Temperature" -> Quantity[t, "DegreesCelsius"], "Pressure" -> \[Mu]*psat}] - ThermodynamicData["CarbonDioxide", "Entropy", {"Temperature" -> Quantity[tref, "DegreesCelsius"], "Pressure" -> Quantity[0.101325, "Megapascals"]}]]; NLimit[obj[m], m -> 1, Direction -> -1]] 
3 Replies
Sort By:
Posted 5 months ago
 For agreement between calculated enthalpies from Span and Wagner (1996) and ThermodynamicData, the temperature of the reference state used in ThermodynamicData is 26.1024 C instead of 25 C.As with entropy, this problem affects absolute enthalpy values. Enthalpy differences are unaffected.
 Span and Wagner ...Are you sure MM uses that book? In Mathematica 4.0 there is notation in the ".m" of the source of information (perhaps which CRC book?). Also in the ".m" is certain "usage messages" needed when considering data. (an example below)NOTE: i did not check your homework, i only noticed you referred to a book's idea of data conditions but didn't list or mention mathematica's sources conditions. In[16]:= Density[Hydrogen] Density::temp: Density is for Hydrogen at 11 Kelvin. 76. Kilogram Out[16]= ------------ 3 Meter So in a CRC book the data is (unless noted) is Empirical data (from tests), and the test conditions are listed with the datem (the lab testing can be found as well). A person using data in mathematica 4.0 would look in the ".m" for the source of data and use it "knowingly", knowing that not all tests and test conditions were in mm 4.0's ".m". 4.0's ".m" was complimentary - not, ie, advertised as a full reproduction of some CRC edition.Even if you are "right" (i didn't check), your problem is having a lab redo these tests to obtain Empirical data (not estimated data) so that it fits an algorithm plan of not using "in-convenient conditions". However that is possible (at expense) sometimes, but for some lab tests you surely know that the accuracy of the data might be effected. A paradox of best data to be sure.