CoolProp icon indicating copy to clipboard operation
CoolProp copied to clipboard

Inconsistent critical compressibility factor?

Open banuti opened this issue 3 years ago • 7 comments

I am trying to get critical compressibility factors Zcr for pure fluids using CoolProp. Is there a recommended way to do that? Right now, it depends on how I calculate it, and then it's still different from tables:

Tcr = CP.PropsSI('Tcrit',fluid) pcr = CP.PropsSI('Pcrit',fluid) Rcr = CP.PropsSI('rhocrit',fluid) M = CP.PropsSI('molarmass',fluid) R = 8.3144598

Zcr1 = pcr/Rcr/R*M/Tcr Zcr2 = CP.PropsSI('Z','T',Tcr,'P',pcr,fluid)

As examples, for water, I get Zcr1 = 0.22943852984823915 Zcr2 = 0.22767060631765856 , from tables (Elliott&Lira) the value is 0.233

for methanol Zcr1 = 0.22629957151909907 Zcr2 = 0.1629708165060253 E&L: 0.224

Versions

CoolProp Version: Version: 6.4.1 Operating System and Version: macOS 10.15.7 Access Method: python in jupyter notebook

Thank you!

banuti avatar Sep 05 '22 21:09 banuti

Actually there is a third way which should be the "right" answer. Take the critical density and temperature to obtain the pressure and compressibility factor.

The value from the Wagner and Pruss EOS is the reference, not the value from literature, which is only useful for checking the EOS implementation. This is because the EOS weights all the available experimental data to obtain the critical point.

For methanol the EOS I implemented has problems in the critical region, and I would recommend you use the older EOS, although work is ongoing to improve the EOS for associating fluids.

ibell avatar Sep 06 '22 16:09 ibell

A further point is that the EOS for Wagner and Pruss for water is non-analytic - you cannot evaluate it at the critical point. So you should bump the temperature by 1e-6 or so to get a value.

ibell avatar Sep 06 '22 16:09 ibell

This third option still relies on the evaluation of an EOS, would you still recommend it over Z1=pcr/Rcr/R*M/Tcr rom the critical parameters tabulated in CoolProp?

Thank you!

Daniel

banuti avatar Sep 06 '22 16:09 banuti

Yes I would, because those values are not necessarily the same as used for the EOS. Always safest to use the EOS. In most cases the differences between methods should be less than a part in 10^4 or so. Also, make sure you take R from the EOS.

ibell avatar Sep 06 '22 16:09 ibell

Would that be through GAS_CONSTANT?

banuti avatar Sep 06 '22 16:09 banuti

Yes, that's right

Message ID: @.***>

ibell avatar Sep 06 '22 16:09 ibell

Thank you!

Daniel

banuti avatar Sep 06 '22 17:09 banuti