Took out the property set States for most property evalulation calls.

This conforms to Cantera's look and feel.
This commit is contained in:
Harry Moffat 2008-09-10 15:12:28 +00:00
parent bea1952ee3
commit 45e5388e5b
4 changed files with 39 additions and 166 deletions

View file

@ -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;
}

View file

@ -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);

View file

@ -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;

View file

@ -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;
}