44 VPSSMgr(right.m_vptp_ptr, right.m_spthermo)
64 for (
size_t k = 0; k <
m_kk; k++) {
83 for (
size_t k = 0; k <
m_kk; k++) {
91 for (
size_t k = 0; k <
m_kk; k++) {
105 for (
size_t k = 0; k <
m_kk; k++) {
128 for (
size_t k = 0; k <
m_kk; k++) {
133 g[k] = _rt * (h0_RT - s0_R);
146 const XML_Node*
const phaseNode_ptr,
bool& doST)
159 std::string model = (*ss)[
"model"];
160 if (model ==
"constant_incompressible") {
164 throw CanteraError(
"VPSSMgr_General::returnPDSS_ptr",
"new PDSS_ConstVol failed");
166 }
else if (model ==
"waterIAPWS" || model ==
"waterPDSS") {
171 "failed dynamic cast");
175 }
else if (model ==
"HKFT") {
180 "failed dynamic cast");
184 }
else if (model ==
"IonFromNeutral") {
187 "failed dynamic cast");
193 "new PDSS_IonsFromNeutral failed");
197 }
else if (model ==
"constant" || model ==
"temperature_polynomial" || model ==
"density_temperature_polynomial") {
201 throw CanteraError(
"VPSSMgr_General::returnPDSS_ptr",
"new PDSS_SSVol failed");
205 "unknown standard state formulation: " + model);
212 const XML_Node*
const phaseNode_ptr)
vector_fp m_V0
Vector containing the species reference molar volumes.
PDSS * returnPDSS_ptr(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr, bool &doST)
Local factory routine for the creation of PDSS objects.
doublereal m_minTemp
minimum temperature for the standard state calculations
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.
bool m_useTmpRefStateStorage
void initLengths()
Initialize the lengths within the object.
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data...
VPSSMgr_General & operator=(const VPSSMgr_General &right)
Assignment operator.
Derived class for pressure dependent standard states of an ideal gas species.
virtual doublereal cp_R_ref() const
Return the molar heat capacity divided by R at reference pressure.
vector_fp m_sss_R
Vector containing the species Standard State entropies at T = m_tlast and P = m_plast.
doublereal m_maxTemp
maximum temperature for the standard state calculations
doublereal maxTemp() const
return the minimum temperature
virtual void initAllPtrs(VPStandardStateTP *vp_ptr, SpeciesThermo *sp_ptr)
Initialize the internal shallow pointers in this object.
Virtual base class for the classes that manage the calculation of standard state properties for all t...
VPSSMgr & operator=(const VPSSMgr &right)
Assignment operator.
VPSSMgr_General(VPStandardStateTP *vp_ptr, SpeciesThermo *spth)
Constructor.
virtual doublereal maxTemp(size_t k=npos) const
Maximum temperature.
bool m_useTmpStandardStateStorage
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
virtual doublereal enthalpy_RT() const
Return the standard state molar enthalpy divided by RT.
Variable pressure SS calculate for phases consisting of completing general representations.
size_t m_kk
Number of species in the phase.
std::vector< PDSS * > m_PDSS_ptrs
Shallow pointers containing the PDSS objects for the species in this phase.
Declaration file for a derived class that handles the calculation of standard state thermo properties...
Class XML_Node is a tree-based representation of the contents of an XML file.
Implementation of a pressure dependent standard state virtual function for a Pure Water Phase (see Sp...
doublereal refPressure() const
Return the reference pressure for this phase.
doublereal minTemp() const
return the minimum temperature
virtual void _updateRefStateThermo() const
Updates the reference state thermodynamic functions at the current T of the solution and the referenc...
Pure Virtual base class for the species thermo manager classes.
VPSSMgr_enumType
enum for VPSSMgr types that are responsible for calculating the species standard state and reference-...
const XML_Node * findByName(const std::string &nm, int depth=100000) const
This routine carries out a recursive search for an XML node based on the name of the node...
Declarations for the class PDSS_IdealGas (pressure dependent standard state) which handles calculatio...
virtual doublereal entropy_R() const
Return the standard state entropy divided by RT.
vector_fp m_cp0_R
Vector containing the species reference constant pressure heat capacities at T = m_tlast and P = p_re...
Declarations for the virtual base class PDSS (pressure dependent standard state) which handles calcul...
A species thermodynamic property manager for a phase.
VPStandardStateTP * m_vptp_ptr
Variable pressure ThermoPhase object.
Class for pressure dependent standard states that use a constant volume model.
virtual void getGibbs_ref(doublereal *g) const
virtual void initAllPtrs(VPStandardStateTP *vp_ptr, SpeciesThermo *sp_ptr)
Initialize the internal shallow pointers in this object.
Class for the liquid water pressure dependent standard state.
doublereal m_plast
The last pressure at which the Standard State thermodynamic properties were calculated at...
PDSS_enumType
Types of PDSS's.
Declarations for the class PDSS_SSVol (pressure dependent standard state) which handles calculations ...
Classes providing support for XML data files.
Base class for exceptions thrown by Cantera classes.
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual PDSS_enumType reportPDSSType(int index=-1) const
This utility function reports the type of parameterization used for the species with index number ind...
virtual doublereal minTemp(size_t k=npos) const
Minimum temperature.
Class for pressure dependent standard states that uses a standard state volume model of some sort...
vector_fp m_Vss
Vector containing the species standard state volumes at T = m_tlast and P = m_plast.
vector_fp m_hss_RT
Vector containing the species Standard State enthalpies at T = m_tlast and P = m_plast.
vector_fp m_cpss_R
Vector containing the species Standard State constant pressure heat capacities at T = m_tlast and P =...
virtual doublereal cp_R() const
Return the molar const pressure heat capacity divided by RT.
Headers for a completely general species thermodynamic property manager for a phase (see Managers for...
virtual doublereal molarVolume() const
Return the molar volume at standard state.
Virtual base class for a species with a pressure dependent standard state.
void scale(InputIter begin, InputIter end, OutputIter out, S scale_factor)
Multiply elements of an array by a scale factor.
vector_fp m_g0_RT
Vector containing the species reference Gibbs functions at T = m_tlast and P = p_ref.
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
virtual doublereal entropy_R_ref() const
Return the molar entropy divided by R at reference pressure.
Declarations for the class PDSS_ConstVol (pressure dependent standard state) which handles calculatio...
Class for pressure dependent standard states corresponding to ionic solutes in electrolyte water...
SpeciesThermo * m_spthermo
Pointer to reference state thermo calculator.
Derived class for pressure dependent standard states of an ideal gas species.
void installSTSpecies(size_t k, const XML_Node &speciesNode, const XML_Node *phaseNode_ptr)
Install specific content for species k in the reference-state thermodynamic SpeciesManager object...
doublereal m_tlast
The last temperature at which the standard state thermodynamic properties were calculated at...
Class that handles the calculation of standard state thermo properties for a set of species belonging...
vector_fp m_gss_RT
Vector containing the species Standard State Gibbs functions at T = m_tlast and P = m_plast...
Declarations for the class PDSS_IonsFromNeutral ( which handles calculations for a single ion in a fl...
virtual PDSS * createInstallPDSS(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr)
Factory routine for the creation of PDSS objects that are then internally registered with this VPSSMg...
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
PDSS_enumType reportPDSSType() const
Returns the type of the standard state parameterization.
Declarations for the class PDSS_HKFT (pressure dependent standard state) which handles calculations f...
virtual doublereal molarVolume_ref() const
Return the molar volume at reference pressure.
virtual void initThermo()
vector_fp m_s0_R
Vector containing the species reference entropies at T = m_tlast and P = p_ref.
virtual doublereal enthalpy_RT_ref() const
Return the molar enthalpy divided by RT at reference pressure.
void installPDSShandler(size_t k, PDSS *PDSS_ptr, VPSSMgr *vpssmgr_ptr)
Install a PDSS object to handle the reference state thermodynamics calculation.