From 45e5388e5b8b4abacb172d13aaa177b1fa536fdf Mon Sep 17 00:00:00 2001 From: Harry Moffat Date: Wed, 10 Sep 2008 15:12:28 +0000 Subject: [PATCH] Took out the property set States for most property evalulation calls. This conforms to Cantera's look and feel. --- Cantera/src/thermo/PDSS_Water.cpp | 75 +++++++++----------------- Cantera/src/thermo/WaterPropsIAPWS.cpp | 53 ++---------------- Cantera/src/thermo/WaterPropsIAPWS.h | 49 ++--------------- Cantera/src/thermo/WaterSSTP.cpp | 28 ++++------ 4 files changed, 39 insertions(+), 166 deletions(-) diff --git a/Cantera/src/thermo/PDSS_Water.cpp b/Cantera/src/thermo/PDSS_Water.cpp index 8bba86f7a..5d10ac591 100644 --- a/Cantera/src/thermo/PDSS_Water.cpp +++ b/Cantera/src/thermo/PDSS_Water.cpp @@ -274,8 +274,7 @@ namespace Cantera { PDSS::initThermo(); } - void PDSS_Water:: - initThermoXML(const XML_Node& phaseNode, std::string id) { + void PDSS_Water::initThermoXML(const XML_Node& phaseNode, std::string id) { PDSS::initThermoXML(phaseNode, id); } @@ -284,55 +283,37 @@ namespace Cantera { return (h + EW_Offset); } - doublereal PDSS_Water:: - intEnergy_mole() const { + doublereal PDSS_Water::intEnergy_mole() const { doublereal u = m_sub->intEnergy(); return (u + EW_Offset); } - doublereal PDSS_Water:: - entropy_mole() const { + doublereal PDSS_Water::entropy_mole() const { doublereal s = m_sub->entropy(); return (s + SW_Offset); } - - doublereal PDSS_Water:: - gibbs_mole() const { - doublereal T = m_temp; - doublereal dens = m_dens; - doublereal g = m_sub->Gibbs(T, dens); - return (g + EW_Offset - SW_Offset*T); + doublereal PDSS_Water::gibbs_mole() const { + doublereal g = m_sub->Gibbs(); + return (g + EW_Offset - SW_Offset*m_temp); } - - doublereal PDSS_Water:: - cp_mole() const { - doublereal T = m_temp; - doublereal dens = m_dens; - doublereal cp = m_sub->cp(T, dens); - return cp; + doublereal PDSS_Water::cp_mole() const { + doublereal cp = m_sub->cp(); + return cp; } - - doublereal PDSS_Water:: - cv_mole() const { - doublereal T = m_temp; - doublereal dens = m_dens; - doublereal cv = m_sub->cv(T, dens); + doublereal PDSS_Water::cv_mole() const { + doublereal cv = m_sub->cv(); return cv; } - doublereal - PDSS_Water::molarVolume() const { - doublereal T = m_temp; - doublereal dens = m_dens; - doublereal mv = m_sub->molarVolume(T, dens); + doublereal PDSS_Water::molarVolume() const { + doublereal mv = m_sub->molarVolume(); return (mv); } - doublereal - PDSS_Water::gibbs_RT_ref() const { + doublereal PDSS_Water::gibbs_RT_ref() const { doublereal T = m_temp; m_sub->density(T, m_p0); doublereal h = m_sub->enthalpy(); @@ -340,9 +321,7 @@ namespace Cantera { return ((h + EW_Offset - SW_Offset*T)/(T * GasConstant)); } - - doublereal - PDSS_Water::enthalpy_RT_ref() const { + doublereal PDSS_Water::enthalpy_RT_ref() const { doublereal T = m_temp; m_sub->density(T, m_p0); doublereal h = m_sub->enthalpy(); @@ -350,8 +329,7 @@ namespace Cantera { return ((h + EW_Offset)/(T * GasConstant)); } - doublereal PDSS_Water:: - entropy_R_ref() const { + doublereal PDSS_Water::entropy_R_ref() const { doublereal T = m_temp; m_sub->density(T, m_p0); doublereal s = m_sub->entropy(); @@ -359,20 +337,18 @@ namespace Cantera { return ((s + SW_Offset)/GasConstant); } - doublereal PDSS_Water:: - cp_R_ref() const { + doublereal PDSS_Water::cp_R_ref() const { doublereal T = m_temp; - doublereal dens0 = m_sub->density(T, m_p0); - doublereal cp = m_sub->cp(T, dens0); + m_sub->density(T, m_p0); + doublereal cp = m_sub->cp(); m_sub->setState_TR(m_temp, m_dens); return (cp/GasConstant); } - doublereal PDSS_Water:: - molarVolume_ref() const { + doublereal PDSS_Water::molarVolume_ref() const { doublereal T = m_temp; - doublereal dens0 = m_sub->density(T, m_p0); - doublereal mv = m_sub->molarVolume(T, dens0); + m_sub->density(T, m_p0); + doublereal mv = m_sub->molarVolume(); m_sub->setState_TR(m_temp, m_dens); return (mv); } @@ -383,11 +359,8 @@ namespace Cantera { * Temperature: kelvin * rho: density in kg m-3 */ - doublereal PDSS_Water:: - pressure() const { - doublereal T = m_temp; - doublereal dens = m_dens; - doublereal p = m_sub->pressure(T, dens); + doublereal PDSS_Water::pressure() const { + doublereal p = m_sub->pressure(); m_pres = p; return p; } diff --git a/Cantera/src/thermo/WaterPropsIAPWS.cpp b/Cantera/src/thermo/WaterPropsIAPWS.cpp index 0f9e857ed..76609924c 100644 --- a/Cantera/src/thermo/WaterPropsIAPWS.cpp +++ b/Cantera/src/thermo/WaterPropsIAPWS.cpp @@ -92,34 +92,13 @@ void WaterPropsIAPWS::calcDim(double temperature, double rho) { } } -/* - * Calculate the Helmholtz free energy in mks units of - * J kmol-1 K-1. - */ -double WaterPropsIAPWS::helmholtzFE(double temperature, double rho) { - setState_TR(temperature, rho); - double retn = m_phi->phi(tau, delta); - double RT = Rgas * temperature; - return (retn * RT); -} -double WaterPropsIAPWS::helmholtzFE() const{ +double WaterPropsIAPWS::helmholtzFE() const { double retn = m_phi->phi(tau, delta); double temperature = T_c/tau; double RT = Rgas * temperature; return (retn * RT); } -/* - * Calculate the pressure (Pascals), given the temperature and density - * Temperature: kelvin - * rho: density in kg m-3 - */ -double WaterPropsIAPWS::pressure(double temperature, double rho) { - calcDim(temperature, rho); - double retn = m_phi->pressureM_rhoRT(tau, delta); - return (retn * rho * Rgas * temperature/M_water); -} - /* * Calculate the pressure (Pascals), using the * current internally storred temperature and density @@ -283,16 +262,6 @@ double WaterPropsIAPWS:: coeffThermExp() const { return (kappa * dens * Rgas * beta / M_water); } -/* - * Calculate the Gibbs free energy in mks units of - * J kmol-1 K-1. - */ -double WaterPropsIAPWS::Gibbs(double temperature, double rho) { - setState_TR(temperature, rho); - double gRT = m_phi->gibbs_RT(); - return (gRT * Rgas * temperature); -} - double WaterPropsIAPWS::Gibbs() const { double gRT = m_phi->gibbs_RT(); double temperature = T_c/tau; @@ -414,7 +383,7 @@ double WaterPropsIAPWS::intEnergy() const{ } /* - * Calculate the enthalpy in mks units of + * Calculate the enthalpy in mks units of356 * J kmol-1 K-1. */ double WaterPropsIAPWS::entropy() const { @@ -426,32 +395,16 @@ double WaterPropsIAPWS::entropy() const { * Calculate heat capacity at constant volume * J kmol-1 K-1. */ -double WaterPropsIAPWS::cv(double temperature, double rho) { - setState_TR(temperature, rho); +double WaterPropsIAPWS::cv() const { double cvR = m_phi->cv_R(); return (cvR * Rgas); } -/* - * Calculate heat capacity at constant pressure - * J kmol-1 K-1. - */ -double WaterPropsIAPWS::cp(double temperature, double rho) { - setState_TR(temperature, rho); - double cpR = m_phi->cp_R(); - return (cpR * Rgas); -} - double WaterPropsIAPWS::cp() const { double cpR = m_phi->cp_R(); return (cpR * Rgas); } -double WaterPropsIAPWS::molarVolume(double temperature, double rho) { - setState_TR(temperature, rho); - return (M_water / rho); -} - double WaterPropsIAPWS::molarVolume() const { double rho = delta * Rho_c; return (M_water / rho); diff --git a/Cantera/src/thermo/WaterPropsIAPWS.h b/Cantera/src/thermo/WaterPropsIAPWS.h index 77a162ae6..5ae190f8d 100644 --- a/Cantera/src/thermo/WaterPropsIAPWS.h +++ b/Cantera/src/thermo/WaterPropsIAPWS.h @@ -165,25 +165,10 @@ public: */ void setState_TR(double temperature, double rho); - - //! Calculate the Helmholtz free energy in mks units of J kmol-1 K-1. - /*! - * @param temperature temperature (kelvin) - * @param rho density (kg m-3) - */ - double helmholtzFE(double temperature, double rho); - //! Calculate the Helmholtz free energy in mks units of J kmol-1 K-1, //! using the last temperature and density double helmholtzFE() const; - //! Calculate the Gibbs free energy in mks units of J kmol-1 K-1. - /*! - * @param temperature temperature (kelvin) - * @param rho density (kg m-3) - */ - double Gibbs(double temperature, double rho); - //! Calculate the Gibbs free energy in mks units of J kmol-1 K-1. //! using the last temperature and density double Gibbs() const; @@ -198,53 +183,25 @@ public: //! Calculate the entropy in mks units of J kmol-1 K-1 double entropy() const; - //! Calculate the constant volume heat capacity in mks units of J kmol-1 K-1 - /*! - * @param temperature temperature (kelvin) - * @param rho density (kg m-3) - */ - double cv(double temperature, double rho); - //! Calculate the constant volume heat capacity in mks units of J kmol-1 K-1 //! at the last temperature and density double cv() const; - //! Calculate the constant pressure heat capacity in mks units of J kmol-1 K-1 - /*! - * @param temperature temperature (kelvin) - * @param rho density (kg m-3) - */ - double cp(double temperature, double rho); - //! Calculate the constant pressure heat capacity in mks units of J kmol-1 K-1 //! at the last temperature and density double cp() const; - //! Calculate the molar volume (kmol m-3) - /*! - * @param temperature temperature (kelvin) - * @param rho density (kg m-3) - */ - double molarVolume(double temperature, double rho); - //! Calculate the molar volume (kmol m-3) //! at the last temperature and density double molarVolume() const; - //! Calculate the pressure (Pascals), given the temperature and density - /*! - * @param temperature input temperature kelvin - * @param rho density in kg m-3 - * - * @return - * returns the pressure (Pascal) - */ - double pressure(double temperature, double rho); - //! Calculates the pressure (Pascals), given the current value of the //! temperature and density. /*! * The density is an independent variable in the underlying equation of state + * + * @return + * returns the pressure (Pascal) */ double pressure() const; diff --git a/Cantera/src/thermo/WaterSSTP.cpp b/Cantera/src/thermo/WaterSSTP.cpp index 78f236700..b27f643a7 100644 --- a/Cantera/src/thermo/WaterSSTP.cpp +++ b/Cantera/src/thermo/WaterSSTP.cpp @@ -319,8 +319,7 @@ namespace Cantera { */ void WaterSSTP::getGibbs_RT(doublereal *grt) const { double T = temperature(); - double dens = density(); - doublereal g = m_sub->Gibbs(T, dens); + doublereal g = m_sub->Gibbs(); *grt = (g + EW_Offset - SW_Offset*T) / (GasConstant * T); if (!m_ready) { throw CanteraError("waterSSTP::", "Phase not ready"); @@ -333,8 +332,7 @@ namespace Cantera { */ void WaterSSTP::getStandardChemPotentials(doublereal *gss) const { double T = temperature(); - double dens = density(); - doublereal g = m_sub->Gibbs(T, dens); + doublereal g = m_sub->Gibbs(); *gss = (g + EW_Offset - SW_Offset*T); if (!m_ready) { throw CanteraError("waterSSTP::", "Phase not ready"); @@ -342,9 +340,7 @@ namespace Cantera { } void WaterSSTP::getCp_R(doublereal* cpr) const { - double T = temperature(); - double dens = density(); - doublereal cp = m_sub->cp(T, dens); + doublereal cp = m_sub->cp(); cpr[0] = cp / GasConstant; } @@ -352,11 +348,8 @@ namespace Cantera { * Calculate the constant volume heat capacity * in mks units of J kmol-1 K-1 */ - doublereal WaterSSTP:: - cv_mole() const { - double T = temperature(); - double dens = density(); - doublereal cv = m_sub->cv(T, dens); + doublereal WaterSSTP::cv_mole() const { + doublereal cv = m_sub->cv(); return cv; } @@ -395,7 +388,7 @@ namespace Cantera { throw CanteraError("setPressure", "error"); } m_sub->setState_TR(T, dd); - doublereal g = m_sub->Gibbs(T, dd); + doublereal g = m_sub->Gibbs(); *grt = (g + EW_Offset - SW_Offset*T)/ (GasConstant * T); dd = m_sub->density(T, p, waterState, dens); @@ -445,7 +438,7 @@ namespace Cantera { if (dd <= 0.0) { throw CanteraError("setPressure", "error"); } - doublereal cp = m_sub->cp(T, dd); + doublereal cp = m_sub->cp(); *cpr = cp / (GasConstant); dd = m_sub->density(T, p, waterState, dens); } @@ -472,11 +465,8 @@ namespace Cantera { * Temperature: kelvin * rho: density in kg m-3 */ - doublereal WaterSSTP:: - pressure() const { - double T = temperature(); - double dens = density(); - doublereal p = m_sub->pressure(T, dens); + doublereal WaterSSTP::pressure() const { + doublereal p = m_sub->pressure(); return p; }