34 VPSSMgr(right.m_vptp_ptr, right.m_spthermo)
41 VPSSMgr_Water_ConstVol&
42 VPSSMgr_Water_ConstVol::operator=(
const VPSSMgr_Water_ConstVol& b)
62 throw CanteraError(
"VPSSMgr_Water_ConstVol::initAllPtrs",
98 for (
size_t k = 0; k <
m_kk; k++) {
142 copy(
m_V0.begin(),
m_V0.end(), vol);
149 for (
size_t k = 0; k <
m_kk; k++) {
166 for (
size_t k = 1; k <
m_kk; k++) {
185 const std::string&
id)
193 throw CanteraError(
"VPSSMgr_Water_ConstVol::initThermoXML",
200 for (
size_t k = 1; k <
m_kk; k++) {
203 throw CanteraError(
"VPSSMgr_Water_ConstVol::initThermoXML",
208 throw CanteraError(
"VPSSMgr_Water_ConstVol::initThermoXML",
209 "no standardState Node for species " + s->
attrib(
"name"));
211 if (ss->
attrib(
"model") !=
"constant_incompressible") {
212 throw CanteraError(
"VPSSMgr_Water_ConstVol::initThermoXML",
213 "standardState model for species isn't " 214 "constant_incompressible: " + s->
attrib(
"name"));
228 string xn = speciesNode[
"name"];
229 if (xn !=
"H2O(L)") {
230 throw CanteraError(
"VPSSMgr_Water_ConstVol::installSpecies",
231 "h2o wrong name: " + xn);
234 std::string model = ss->
attrib(
"model");
235 if (model !=
"waterIAPWS" && model !=
"waterPDSS") {
236 throw CanteraError(
"VPSSMgr_Water_ConstVol::installSpecies",
237 "wrong SS mode: " + model);
247 throw CanteraError(
"VPSSMgr_Water_ConstVol::installSpecies",
248 "no standardState Node for species " + speciesNode.
name());
250 if (ss->
attrib(
"model") !=
"constant_incompressible") {
251 throw CanteraError(
"VPSSMgr_Water_ConstVol::initThermoXML",
252 "standardState model for species isn't " 253 "constant_incompressible: " + speciesNode.
name());
255 if (
m_Vss.size() < k+1) {
256 m_Vss.resize(k+1, 0.0);
269 "To be removed after Cantera 2.3.");
276 "To be removed after Cantera 2.3.");
vector_fp m_V0
Vector containing the species reference molar volumes.
virtual void getStandardVolumes_ref(doublereal *vol) const
Get the molar volumes of the species reference states at the current T and P_ref of the solution...
PDSS_Water * m_waterSS
Pointer to the Water PDSS object.
bool m_useTmpRefStateStorage
boolean indicating whether temporary reference state storage is used -> default is false ...
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data...
std::string name() const
Returns the name of the XML node.
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 PDSS * createInstallPDSS(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr)
Install specific content for species k in the standard-state thermodynamic calculator and also create...
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...
const doublereal OneAtm
One atmosphere [Pa].
vector_fp m_sss_R
Vector containing the species Standard State entropies at T = m_tlast and P = m_plast.
virtual void update(doublereal T, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const
Compute the reference-state properties for all species.
Virtual base class for the classes that manage the calculation of standard state properties for all t...
VPSSMgr & operator=(const VPSSMgr &right)
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.
virtual void getGibbs_RT_ref(doublereal *grt) const
bool m_useTmpStandardStateStorage
boolean indicating whether temporary standard state storage is used -> default is false ...
virtual void initAllPtrs(VPStandardStateTP *vp_ptr, MultiSpeciesThermo *sp_ptr)
Initialize the internal shallow pointers in this object.
VPSSMgr_Water_ConstVol(VPStandardStateTP *vp_ptr, MultiSpeciesThermo *sp_ptr)
Base Constructor.
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
size_t m_kk
Number of species in the phase.
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...
void installPDSShandler(size_t k, PDSS *PDSS_ptr, VPSSMgr *vpssmgr_ptr)
Install a PDSS object to handle the reference state thermodynamics calculation.
Handles the calculation of standard state thermo properties for real water and a set of species which...
void warn_deprecated(const std::string &method, const std::string &extra)
Print a warning indicating that method is deprecated.
Variable pressure SS calculate for phases consisting of real water as the first species and species h...
virtual void getCp_R_ref(doublereal *cpr) const
VPSSMgr_enumType
enum for VPSSMgr types that are responsible for calculating the species standard state and reference-...
virtual void getEnthalpy_RT_ref(doublereal *hrt) const
virtual void getEntropy_R_ref(doublereal *er) const
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.
vector_fp m_cp0_R
Vector containing the species reference constant pressure heat capacities at T = m_tlast and P = p_re...
virtual void setTemperature(doublereal temp)
Set the internal temperature.
VPStandardStateTP * m_vptp_ptr
Variable pressure ThermoPhase object.
MultiSpeciesThermo * m_spthermo
Pointer to reference state thermo calculator.
Declaration file for a derived class that handles the calculation of standard state thermo properties...
Class for pressure dependent standard states that use a constant volume model.
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
std::string speciesName(size_t k) const
Name of the species with index k.
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.
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
Base class for exceptions thrown by Cantera classes.
virtual doublereal entropy_mole() const
Return the molar entropy in units of J kmol-1 K-1.
doublereal pref_safe(doublereal temp) const
Returns a reference pressure value that can be safely calculated by the underlying real equation of s...
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual void initAllPtrs(VPStandardStateTP *vp_ptr, MultiSpeciesThermo *sp_ptr)
Initialize the internal shallow pointers in this object.
virtual doublereal cp_mole() const
Return the molar const pressure heat capacity in units of J kmol-1 K-1.
virtual void _updateRefStateThermo() const
Updates the reference state thermodynamic functions at the current T of the solution and the referenc...
vector_fp m_Vss
Vector containing the species standard state volumes at T = m_tlast and P = m_plast.
XML_Node & child(const size_t n) const
Return a changeable reference to the n'th child of the current node.
XML_Node & root() const
Return the root of the current XML_Node tree.
virtual doublereal gibbs_mole() const
Return the molar Gibbs free energy in units of J kmol-1.
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 =...
vector_fp m_h0_RT
Vector containing the species reference enthalpies at T = m_tlast and P = p_ref.
Header file for a derived class of ThermoPhase that handles variable pressure standard state methods ...
std::string attrib(const std::string &attr) const
Function returns the value of an attribute.
Virtual base class for a species with a pressure dependent standard state.
vector_fp m_g0_RT
Vector containing the species reference Gibbs functions at T = m_tlast and P = p_ref.
doublereal m_p0
Reference pressure (Pa) must be the same for all species - defaults to 1 atm.
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
doublereal getFloat(const XML_Node &parent, const std::string &name, const std::string &type)
Get a floating-point value from a child element.
Declarations for the class PDSS_ConstVol (pressure dependent standard state) which handles calculatio...
virtual doublereal density() const
Return the standard state density at standard state.
XML_Node * findByAttr(const std::string &attr, const std::string &val, int depth=100000) const
This routine carries out a recursive search for an XML node based on an attribute of each XML node...
virtual void getGibbs_ref(doublereal *g) const
A species thermodynamic property manager for a phase.
doublereal molecularWeight(size_t k) const
Molecular weight of species k.
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...
Namespace for the Cantera kernel.
vector_fp m_gss_RT
Vector containing the species Standard State Gibbs functions at T = m_tlast and P = m_plast...
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
XML_Node * get_XML_NameID(const std::string &nameTarget, const std::string &file_ID, XML_Node *root)
This routine will locate an XML node in either the input XML tree or in another input file specified ...
vector_fp m_s0_R
Vector containing the species reference entropies at T = m_tlast and P = p_ref.
virtual doublereal enthalpy_mole() const
Return the molar enthalpy in units of J kmol-1.
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.