From 2ac8a0ef088166883ee1639ba12bd13462169e6e Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Sat, 2 Dec 2017 16:06:19 -0500 Subject: [PATCH] [Thermo] Use min/max temperatures from equation of state The values in the liquidvapor.cti should be ignored, since this thermo data is not actually applicable -- it is just used to set the reference state. --- include/cantera/thermo/PureFluidPhase.h | 3 +++ interfaces/cython/cantera/test/test_purefluid.py | 5 +++++ src/thermo/PureFluidPhase.cpp | 10 ++++++++++ 3 files changed, 18 insertions(+) diff --git a/include/cantera/thermo/PureFluidPhase.h b/include/cantera/thermo/PureFluidPhase.h index 7328085ddb..6ea1f83b36 100644 --- a/include/cantera/thermo/PureFluidPhase.h +++ b/include/cantera/thermo/PureFluidPhase.h @@ -43,6 +43,9 @@ class PureFluidPhase : public ThermoPhase m_tpx_name = name; } + virtual double minTemp(size_t k=npos) const; + virtual double maxTemp(size_t k=npos) const; + virtual doublereal enthalpy_mole() const; virtual doublereal intEnergy_mole() const; virtual doublereal entropy_mole() const; diff --git a/interfaces/cython/cantera/test/test_purefluid.py b/interfaces/cython/cantera/test/test_purefluid.py index 122dcbb815..37ed15715f 100644 --- a/interfaces/cython/cantera/test/test_purefluid.py +++ b/interfaces/cython/cantera/test/test_purefluid.py @@ -17,6 +17,11 @@ def test_critical_properties(self): self.assertNear(self.water.critical_temperature, 647.286) self.assertNear(self.water.critical_density, 317.0) + def test_temperature_limits(self): + co2 = ct.CarbonDioxide() + self.assertNear(co2.min_temp, 216.54) + self.assertNear(co2.max_temp, 1500.0) + def test_set_state(self): self.water.PX = 101325, 0.5 self.assertNear(self.water.P, 101325) diff --git a/src/thermo/PureFluidPhase.cpp b/src/thermo/PureFluidPhase.cpp index ddb736f5c1..51783e71b9 100644 --- a/src/thermo/PureFluidPhase.cpp +++ b/src/thermo/PureFluidPhase.cpp @@ -73,6 +73,16 @@ void PureFluidPhase::setParametersFromXML(const XML_Node& eosdata) } } +double PureFluidPhase::minTemp(size_t k) const +{ + return m_sub->Tmin(); +} + +double PureFluidPhase::maxTemp(size_t k) const +{ + return m_sub->Tmax(); +} + doublereal PureFluidPhase::enthalpy_mole() const { setTPXState();