void CoolPropSolver::setFluidConstants(){ if (isCompressible){ if (debug_level > 5) std::cout << format("Setting constants for fluid %s \n",substanceName.c_str()); // Theses values are part of the `trivial_keyed_output` and do not require a state update. _fluidConstants.pc = state->p_critical(); _fluidConstants.Tc = state->T_critical(); _fluidConstants.MM = state->molar_mass(); _fluidConstants.dc = state->rhomass_critical(); // Now we fill the close to crit record if (debug_level > 5) std::cout << format("Setting near-critical saturation conditions for fluid %s \n",substanceName.c_str()); _satPropsClose2Crit.psat = _fluidConstants.pc*(1.0-_p_eps); // Needs update, setSat_p relies on it setSat_p(_satPropsClose2Crit.psat, &_satPropsClose2Crit); } else { // incompressible if (debug_level > 5) std::cout << format("Setting constants for incompressible fluid %s \n",substanceName.c_str()); _fluidConstants.pc = NAN; _fluidConstants.Tc = NAN; _fluidConstants.MM = NAN; //state->molar_mass(); //NAN _fluidConstants.dc = NAN; } }
void CoolPropSolver::setFluidConstants(){ if ((fluidType==FLUID_TYPE_PURE)||(fluidType==FLUID_TYPE_PSEUDOPURE)||(fluidType==FLUID_TYPE_REFPROP)){ if (debug_level > 5) std::cout << format("Setting constants for fluid %s \n",substanceName.c_str()); _fluidConstants.pc = PropsSI((char *)"pcrit" ,(char *)"T",0,(char *)"P",0,(char *)substanceName.c_str()); _fluidConstants.Tc = PropsSI((char *)"Tcrit" ,(char *)"T",0,(char *)"P",0,(char *)substanceName.c_str()); _fluidConstants.MM = PropsSI((char *)"molemass",(char *)"T",0,(char *)"P",0,(char *)substanceName.c_str()); /* TODO: Fix this dirty, dirty workaround */ if (_fluidConstants.MM > 1.0) _fluidConstants.MM *= 1e-3; _fluidConstants.dc = PropsSI((char *)"rhocrit" ,(char *)"T",0,(char *)"P",0,(char *)substanceName.c_str()); // Now we fill the close to crit record if (debug_level > 5) std::cout << format("Setting near-critical saturation conditions for fluid %s \n",substanceName.c_str()); _satPropsClose2Crit.psat = _fluidConstants.pc*(1.0-_p_eps); // Needs update, setSat_p relies on it setSat_p(_satPropsClose2Crit.psat, &_satPropsClose2Crit); } else if ((fluidType==FLUID_TYPE_INCOMPRESSIBLE_LIQUID)||(fluidType==FLUID_TYPE_INCOMPRESSIBLE_SOLUTION)){ if (debug_level > 5) std::cout << format("Setting constants for incompressible fluid %s \n",substanceName.c_str()); _fluidConstants.pc = NAN; _fluidConstants.Tc = NAN; _fluidConstants.MM = NAN; _fluidConstants.dc = NAN; } }