usnistgov / REFPROP-issues

A repository solely used for reporting issues with NIST REFPROP
26 stars 13 forks source link

Bug of calculating physical property of R454C #371

Closed xizheer closed 3 years ago

xizheer commented 3 years ago

Bug of R454C.pptx Now we are facing a serious problem when calculating some physical properties for R454C in REFROP version.10.0. As we known, R454C is a mixed refrigerant which has different bubble point and dew point. However, the values of bubble point and dew point are totally different when calculated from different plots. For example, at the same environmental conditions, the value of bubble point is -3.6 degree C in Pressure vs. Enthalpy plot, whereas is 1.5 degree C in Temperature vs. Composition plot. Attached PPT shows more details about the gap between two. The 5 degree C gap confused us since we can only check the result but no calculation process. That’s why I have to ask you for helping us figure out this problem. Waiting for your reply!

ianhbell commented 3 years ago

I concur. There seems to be a bug in the p-x plots, but the models themselves seem to be ok.

In Python, agreeing with the results from the p-h plot:

from ctREFPROP.ctREFPROP import REFPROPFunctionLibrary

root = 'C:/Program Files (x86)/REFPROP'
RP = REFPROPFunctionLibrary(root)
RP.SETPATHdll(root)

fluid = 'R454C.MIX'
p = 0.52e6 # [Pa]

# Bubble-point temperature
Q_bub = 0
r1 = RP.REFPROPdll(fluid, "PQmolar","T",RP.MOLAR_BASE_SI, 0,0, p, Q_bub, [])
print("Bubble-point temperature:", r1.Output[0]-273.15)

# Dew-point temperature
Q_dew = 1
r2 = RP.REFPROPdll(fluid, "PQmolar","T",RP.MOLAR_BASE_SI, 0,0, p, Q_dew, [])
print("Dew-point temperature", r2.Output[0]-273.15)

yields

Bubble-point temperature: -3.637164423444915
Dew-point temperature 4.120033590396417

Same calculation in the GUI: image

I thought maybe the isochoric tracing routines used in the GUI (https://github.com/usnistgov/isochoric) were somehow falling back to the use of CoolProp's routines, but that doesn't seem to be the case, as CoolProp gives the same result as REFPROP:

import CoolProp.CoolProp as CP
AS = CP.AbstractState('HEOS', "R32&R1234yf")
AS.set_mass_fractions([0.215, 0.785])
for k in ['betaT','gammaT','betaV','gammaV',"Fij"]:
    print(k, AS.get_binary_interaction_double(0,1,k))
AS.update(CP.PQ_INPUTS, 0.52e6, 0)
print(AS.T()-273.15)

yields

-3.6371644234392306
ianhbell commented 3 years ago

Maybe #386 is related?

EricLemmon commented 3 years ago

@xizheer: If this is still an issue for you, can you send me a private email and I will send you an updated DLL that hopefully fixes this? eric.lemmon@nist.gov

ianhbell commented 3 years ago

@EricLemmon the problem is the GUI, not the DLL (I think).

EricLemmon commented 3 years ago

Hum, I thought I had wrote "DLL and GUI", but maybe that was in a different email or issue. It's been a long day...