Cantera
2.5.1
|
Class for the liquid water pressure dependent standard state. More...
#include <PDSS_Water.h>
Public Member Functions | |
PDSS_Water () | |
Default constructor. More... | |
Molar Thermodynamic Properties of the Species Standard State in the Solution | |
virtual doublereal | enthalpy_mole () const |
Return the molar enthalpy in units of J kmol-1. More... | |
virtual doublereal | intEnergy_mole () const |
Return the molar internal Energy in units of J kmol-1. More... | |
virtual doublereal | entropy_mole () const |
Return the molar entropy in units of J kmol-1 K-1. More... | |
virtual doublereal | gibbs_mole () const |
Return the molar Gibbs free energy in units of J kmol-1. More... | |
virtual doublereal | cp_mole () const |
Return the molar const pressure heat capacity in units of J kmol-1 K-1. More... | |
virtual doublereal | cv_mole () const |
Return the molar const volume heat capacity in units of J kmol-1 K-1. More... | |
virtual doublereal | molarVolume () const |
Return the molar volume at standard state. More... | |
virtual doublereal | density () const |
Return the standard state density at standard state. More... | |
Properties of the Reference State of the Species in the Solution | |
doublereal | pref_safe (doublereal temp) const |
Returns a reference pressure value that can be safely calculated by the underlying real equation of state for water. More... | |
virtual doublereal | gibbs_RT_ref () const |
Return the molar Gibbs free energy divided by RT at reference pressure. More... | |
virtual doublereal | enthalpy_RT_ref () const |
Return the molar enthalpy divided by RT at reference pressure. More... | |
virtual doublereal | entropy_R_ref () const |
Return the molar entropy divided by R at reference pressure. More... | |
virtual doublereal | cp_R_ref () const |
Return the molar heat capacity divided by R at reference pressure. More... | |
virtual doublereal | molarVolume_ref () const |
Return the molar volume at reference pressure. More... | |
Mechanical Equation of State Properties | |
virtual doublereal | pressure () const |
Returns the pressure (Pa) More... | |
virtual void | setPressure (doublereal pres) |
Sets the pressure in the object. More... | |
virtual void | setTemperature (doublereal temp) |
Set the internal temperature. More... | |
virtual void | setState_TP (doublereal temp, doublereal pres) |
Set the internal temperature and pressure. More... | |
virtual void | setState_TR (doublereal temp, doublereal rho) |
Set the internal temperature and density. More... | |
void | setDensity (doublereal dens) |
Set the density of the water phase. More... | |
virtual doublereal | thermalExpansionCoeff () const |
Return the volumetric thermal expansion coefficient. Units: 1/K. More... | |
virtual doublereal | dthermalExpansionCoeffdT () const |
Return the derivative of the volumetric thermal expansion coefficient. More... | |
virtual doublereal | isothermalCompressibility () const |
Returns the isothermal compressibility. Units: 1/Pa. More... | |
Miscellaneous properties of the standard state | |
virtual doublereal | critTemperature () const |
critical temperature More... | |
virtual doublereal | critPressure () const |
critical pressure More... | |
virtual doublereal | critDensity () const |
critical density More... | |
virtual doublereal | satPressure (doublereal t) |
saturation pressure More... | |
WaterPropsIAPWS * | getWater () |
Get a pointer to a changeable WaterPropsIAPWS object. More... | |
WaterProps * | getWaterProps () |
Get a pointer to a changeable WaterPropsIAPWS object. More... | |
Public Member Functions inherited from PDSS_Molar | |
virtual doublereal | enthalpy_RT () const |
Return the standard state molar enthalpy divided by RT. More... | |
virtual doublereal | entropy_R () const |
Return the standard state entropy divided by RT. More... | |
virtual doublereal | gibbs_RT () const |
Return the molar Gibbs free energy divided by RT. More... | |
virtual doublereal | cp_R () const |
Return the molar const pressure heat capacity divided by RT. More... | |
Public Member Functions inherited from PDSS | |
PDSS () | |
Default Constructor. More... | |
PDSS (const PDSS &b)=delete | |
PDSS & | operator= (const PDSS &b)=delete |
virtual | ~PDSS () |
virtual doublereal | enthalpyDelp_mole () const |
Get the difference in the standard state enthalpy between the current pressure and the reference pressure, p0. More... | |
virtual doublereal | entropyDelp_mole () const |
Get the difference in the standard state entropy between the current pressure and the reference pressure, p0. More... | |
virtual doublereal | gibbsDelp_mole () const |
Get the difference in the standard state Gibbs free energy between the current pressure and the reference pressure, p0. More... | |
virtual doublereal | cpDelp_mole () const |
Get the difference in standard state heat capacity between the current pressure and the reference pressure, p0. More... | |
doublereal | refPressure () const |
Return the reference pressure for this phase. More... | |
doublereal | minTemp () const |
return the minimum temperature More... | |
doublereal | maxTemp () const |
return the minimum temperature More... | |
virtual doublereal | temperature () const |
Return the current stored temperature. More... | |
doublereal | molecularWeight () const |
Return the molecular weight of the species in units of kg kmol-1. More... | |
void | setMolecularWeight (doublereal mw) |
Set the molecular weight of the species. More... | |
void | setReferenceThermo (shared_ptr< SpeciesThermoInterpType > stit) |
Set the SpeciesThermoInterpType object used to calculate reference state properties. More... | |
virtual void | setParent (VPStandardStateTP *phase, size_t k) |
Set the parent VPStandardStateTP object of this PDSS object. More... | |
virtual void | initThermo () |
Initialization routine. More... | |
void | setParameters (const AnyMap &node) |
Set model parameters from an AnyMap phase description, e.g. More... | |
virtual void | setParametersFromXML (const XML_Node &speciesNode) |
Initialization routine for the PDSS object based on the speciesNode. More... | |
virtual void | reportParams (size_t &kindex, int &type, doublereal *const c, doublereal &minTemp, doublereal &maxTemp, doublereal &refPressure) const |
This utility function reports back the type of parameterization and all of the parameters for the species, index. More... | |
Public Attributes | |
bool | m_allowGasPhase |
Since this phase represents a liquid phase, it's an error to return a gas-phase answer. More... | |
Private Attributes | |
WaterPropsIAPWS | m_sub |
Pointer to the WaterPropsIAPWS object, which does the actual calculations for the real equation of state. More... | |
WaterProps | m_waterProps |
Pointer to the WaterProps object. More... | |
doublereal | m_dens |
State of the system - density. More... | |
int | m_iState |
state of the fluid More... | |
doublereal | EW_Offset |
Offset constants used to obtain consistency with the NIST database. More... | |
doublereal | SW_Offset |
Offset constant used to obtain consistency with NIST convention. More... | |
Additional Inherited Members | |
Protected Attributes inherited from PDSS | |
doublereal | m_temp |
Current temperature used by the PDSS object. More... | |
doublereal | m_pres |
State of the system - pressure. More... | |
doublereal | m_p0 |
Reference state pressure of the species. More... | |
doublereal | m_minTemp |
Minimum temperature. More... | |
doublereal | m_maxTemp |
Maximum temperature. More... | |
doublereal | m_mw |
Molecular Weight of the species. More... | |
AnyMap | m_input |
Input data supplied via setParameters. More... | |
shared_ptr< SpeciesThermoInterpType > | m_spthermo |
Pointer to the species thermodynamic property manager. More... | |
Class for the liquid water pressure dependent standard state.
Notes:
Base state for thermodynamic properties:
The thermodynamic base state for water is set to the NIST basis here by specifying constants EW_Offset and SW_Offset. These offsets are specified so that the following properties hold:
Delta_Hfo_gas(298.15) = -241.826 kJ/gmol So_gas(298.15, 1bar) = 188.835 J/gmolK
The "o" here refers to a hypothetical ideal gas state. The way we achieve this in practice is to evaluate at a very low pressure and then use the theoretical ideal gas results to scale up to higher pressures:
Ho(1bar) = H(P0)
So(1bar) = S(P0) + RT ln(1bar/P0)
The offsets used in the steam tables are different than NIST's. They assume u_liq(TP) = 0.0, s_liq(TP) = 0.0, where TP is the triple point conditions.
Definition at line 49 of file PDSS_Water.h.
PDSS_Water | ( | ) |
Default constructor.
Definition at line 16 of file PDSS_Water.cpp.
|
virtual |
Return the molar enthalpy in units of J kmol-1.
Reimplemented from PDSS.
Definition at line 57 of file PDSS_Water.cpp.
References WaterPropsIAPWS::enthalpy(), PDSS_Water::EW_Offset, and PDSS_Water::m_sub.
|
virtual |
Return the molar internal Energy in units of J kmol-1.
Reimplemented from PDSS.
Definition at line 62 of file PDSS_Water.cpp.
References PDSS_Water::EW_Offset, WaterPropsIAPWS::intEnergy(), and PDSS_Water::m_sub.
|
virtual |
Return the molar entropy in units of J kmol-1 K-1.
Reimplemented from PDSS.
Definition at line 67 of file PDSS_Water.cpp.
References WaterPropsIAPWS::entropy(), PDSS_Water::m_sub, and PDSS_Water::SW_Offset.
|
virtual |
Return the molar Gibbs free energy in units of J kmol-1.
Reimplemented from PDSS.
Definition at line 72 of file PDSS_Water.cpp.
References PDSS_Water::EW_Offset, WaterPropsIAPWS::Gibbs(), PDSS_Water::m_sub, PDSS::m_temp, and PDSS_Water::SW_Offset.
|
virtual |
Return the molar const pressure heat capacity in units of J kmol-1 K-1.
Reimplemented from PDSS.
Definition at line 77 of file PDSS_Water.cpp.
References WaterPropsIAPWS::cp(), and PDSS_Water::m_sub.
|
virtual |
Return the molar const volume heat capacity in units of J kmol-1 K-1.
Reimplemented from PDSS.
Definition at line 82 of file PDSS_Water.cpp.
References WaterPropsIAPWS::cv(), and PDSS_Water::m_sub.
|
virtual |
Return the molar volume at standard state.
Reimplemented from PDSS.
Definition at line 87 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, and WaterPropsIAPWS::molarVolume().
|
virtual |
Return the standard state density at standard state.
Reimplemented from PDSS.
Definition at line 217 of file PDSS_Water.cpp.
References PDSS_Water::m_dens.
Referenced by DebyeHuckel::calcDensity(), PDSS_HKFT::g(), and PDSS_HKFT::initThermo().
doublereal pref_safe | ( | doublereal | temp | ) | const |
Returns a reference pressure value that can be safely calculated by the underlying real equation of state for water.
Note, this function is needed because trying to calculate a one atm value around the critical point will cause a crash
temp | Temperature (Kelvin) |
Definition at line 241 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, Cantera::OneAtm, WaterPropsIAPWS::Pcrit(), WaterPropsIAPWS::psat_est(), and WaterPropsIAPWS::Tcrit().
Referenced by PDSS_HKFT::cp_R_ref(), PDSS_HKFT::enthalpy_RT_ref(), PDSS_HKFT::entropy_R_ref(), PDSS_HKFT::gibbs_RT_ref(), and PDSS_HKFT::molarVolume_ref().
|
virtual |
Return the molar Gibbs free energy divided by RT at reference pressure.
Reimplemented from PDSS.
Definition at line 92 of file PDSS_Water.cpp.
|
virtual |
Return the molar enthalpy divided by RT at reference pressure.
Reimplemented from PDSS.
Definition at line 101 of file PDSS_Water.cpp.
|
virtual |
Return the molar entropy divided by R at reference pressure.
Reimplemented from PDSS.
Definition at line 110 of file PDSS_Water.cpp.
|
virtual |
Return the molar heat capacity divided by R at reference pressure.
Reimplemented from PDSS.
Definition at line 119 of file PDSS_Water.cpp.
|
virtual |
Return the molar volume at reference pressure.
Reimplemented from PDSS.
Definition at line 128 of file PDSS_Water.cpp.
|
virtual |
Returns the pressure (Pa)
Reimplemented from PDSS.
Definition at line 137 of file PDSS_Water.cpp.
References PDSS::m_pres, PDSS_Water::m_sub, and WaterPropsIAPWS::pressure().
Referenced by PDSS_Water::dthermalExpansionCoeffdT().
|
virtual |
Sets the pressure in the object.
Currently, this sets the pressure in the PDSS object. It is indeterminant what happens to the owning VPStandardStateTP object.
pres | Pressure to be set (Pascal) |
Reimplemented from PDSS.
Definition at line 143 of file PDSS_Water.cpp.
Referenced by PDSS_Water::setState_TP().
|
virtual |
Set the internal temperature.
temp | Temperature (Kelvin) |
Reimplemented from PDSS.
Definition at line 222 of file PDSS_Water.cpp.
References PDSS_Water::m_dens, PDSS_Water::m_sub, PDSS::m_temp, and WaterPropsIAPWS::setState_TR().
|
virtual |
Set the internal temperature and pressure.
temp | Temperature (Kelvin) |
pres | pressure (Pascals) |
Reimplemented from PDSS.
Definition at line 228 of file PDSS_Water.cpp.
References PDSS::m_temp, and PDSS_Water::setPressure().
Referenced by PDSS_HKFT::g(), and PDSS_HKFT::initThermo().
|
virtual |
Set the internal temperature and density.
temp | Temperature (Kelvin) |
rho | Density (kg m-3) |
Reimplemented from PDSS.
Definition at line 234 of file PDSS_Water.cpp.
References PDSS_Water::m_dens, PDSS_Water::m_sub, PDSS::m_temp, and WaterPropsIAPWS::setState_TR().
void setDensity | ( | doublereal | dens | ) |
Set the density of the water phase.
This is a non-virtual function because it specific to this object.
dens | Density of the water (kg/m3) |
Definition at line 211 of file PDSS_Water.cpp.
References PDSS_Water::m_dens, PDSS_Water::m_sub, PDSS::m_temp, and WaterPropsIAPWS::setState_TR().
|
virtual |
Return the volumetric thermal expansion coefficient. Units: 1/K.
The thermal expansion coefficient is defined as
\[ \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P \]
Reimplemented from PDSS.
Definition at line 170 of file PDSS_Water.cpp.
References WaterPropsIAPWS::coeffThermExp(), and PDSS_Water::m_sub.
|
virtual |
Return the derivative of the volumetric thermal expansion coefficient.
Units: 1/K2.
The thermal expansion coefficient is defined as
\[ \beta = \frac{1}{v}\left(\frac{\partial v}{\partial T}\right)_P \]
Definition at line 175 of file PDSS_Water.cpp.
References WaterPropsIAPWS::coeffThermExp(), WaterPropsIAPWS::density(), PDSS_Water::m_dens, PDSS_Water::m_iState, PDSS_Water::m_sub, PDSS::m_temp, PDSS_Water::pressure(), and WaterPropsIAPWS::setState_TR().
|
virtual |
Returns the isothermal compressibility. Units: 1/Pa.
The isothermal compressibility is defined as
\[ \kappa_T = -\frac{1}{v}\left(\frac{\partial v}{\partial P}\right)_T \]
or
\[ \kappa_T = \frac{1}{\rho}\left(\frac{\partial \rho}{\partial P}\right)_T \]
Definition at line 191 of file PDSS_Water.cpp.
References WaterPropsIAPWS::isothermalCompressibility(), and PDSS_Water::m_sub.
|
virtual |
critical temperature
Reimplemented from PDSS.
Definition at line 196 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, and WaterPropsIAPWS::Tcrit().
|
virtual |
critical pressure
Reimplemented from PDSS.
Definition at line 201 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, and WaterPropsIAPWS::Pcrit().
|
virtual |
critical density
Reimplemented from PDSS.
Definition at line 206 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, and WaterPropsIAPWS::Rhocrit().
|
virtual |
saturation pressure
T | Temperature (Kelvin) |
Reimplemented from PDSS.
Definition at line 254 of file PDSS_Water.cpp.
References PDSS_Water::m_sub, and WaterPropsIAPWS::psat().
|
inline |
Get a pointer to a changeable WaterPropsIAPWS object.
Definition at line 142 of file PDSS_Water.h.
References PDSS_Water::m_sub.
Referenced by WaterProps::WaterProps().
|
inline |
Get a pointer to a changeable WaterPropsIAPWS object.
Definition at line 147 of file PDSS_Water.h.
References PDSS_Water::m_waterProps.
|
mutableprivate |
Pointer to the WaterPropsIAPWS object, which does the actual calculations for the real equation of state.
This object owns m_sub
Definition at line 159 of file PDSS_Water.h.
Referenced by PDSS_Water::cp_mole(), PDSS_Water::critDensity(), PDSS_Water::critPressure(), PDSS_Water::critTemperature(), PDSS_Water::cv_mole(), PDSS_Water::dthermalExpansionCoeffdT(), PDSS_Water::enthalpy_mole(), PDSS_Water::entropy_mole(), PDSS_Water::getWater(), PDSS_Water::gibbs_mole(), PDSS_Water::intEnergy_mole(), PDSS_Water::isothermalCompressibility(), PDSS_Water::molarVolume(), PDSS_Water::pref_safe(), PDSS_Water::pressure(), PDSS_Water::satPressure(), PDSS_Water::setDensity(), PDSS_Water::setState_TR(), PDSS_Water::setTemperature(), and PDSS_Water::thermalExpansionCoeff().
|
private |
Pointer to the WaterProps object.
This class is used to house several approximation routines for properties of water.
This object owns m_waterProps, and the WaterPropsIAPWS object used by WaterProps is m_sub, which is defined above.
Definition at line 169 of file PDSS_Water.h.
Referenced by PDSS_Water::getWaterProps().
|
private |
State of the system - density.
Density is the independent variable here, but it's hidden behind the object's interface.
Definition at line 176 of file PDSS_Water.h.
Referenced by PDSS_Water::density(), PDSS_Water::dthermalExpansionCoeffdT(), PDSS_Water::setDensity(), PDSS_Water::setState_TR(), and PDSS_Water::setTemperature().
|
private |
state of the fluid
Definition at line 188 of file PDSS_Water.h.
Referenced by PDSS_Water::dthermalExpansionCoeffdT().
|
private |
Offset constants used to obtain consistency with the NIST database.
This is added to all internal energy and enthalpy results. units = J kmol-1.
Definition at line 195 of file PDSS_Water.h.
Referenced by PDSS_Water::enthalpy_mole(), PDSS_Water::gibbs_mole(), and PDSS_Water::intEnergy_mole().
|
private |
Offset constant used to obtain consistency with NIST convention.
This is added to all internal entropy results. units = J kmol-1 K-1.
Definition at line 202 of file PDSS_Water.h.
Referenced by PDSS_Water::entropy_mole(), and PDSS_Water::gibbs_mole().
bool m_allowGasPhase |
Since this phase represents a liquid phase, it's an error to return a gas-phase answer.
However, if the below is true, then a gas-phase answer is allowed. This is used to check the thermodynamic consistency with ideal-gas thermo functions for example.
Definition at line 211 of file PDSS_Water.h.