28 const std::string& inputFile,
const std::string&
id) :
72 const XML_Node& phaseNode,
bool spInstalled)
78 throw CanteraError(
"PDSS_ConstVol::constructPDSSXML",
"spInstalled false not handled");
84 "no standardState Node for species " + speciesNode.
name());
86 if (ss->
attrib(
"model") !=
"constant_incompressible") {
88 "standardState model for species isn't constant_incompressible: " + speciesNode.
name());
95 const std::string& inputFile,
96 const std::string&
id)
98 if (inputFile.size() == 0) {
100 "input file is null");
103 ifstream fin(path.c_str());
105 throw CanteraError(
"PDSS_ConstVol::initThermo",
"could not open "
106 +path+
" for reading.");
118 "ERROR: Can not find phase named " +
119 id +
" in file named " + inputFile);
124 &(fxml_phase->
root()));
255 if (fabs(rhoStored - rho) / (rhoStored + rho) > 1.0E-4) {
257 "Inconsistent supplied rho");
virtual void setTemperature(doublereal temp)
Set the internal temperature.
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...
doublereal molecularWeight(size_t k) const
Molecular weight of species k.
CTML ("Cantera Markup Language") is the variant of XML that Cantera uses to store data...
XML_Node * findXMLPhase(XML_Node *root, const std::string &idtarget)
Search an XML_Node tree for a named phase XML_Node.
SpeciesThermo * m_spthermo
Pointer to the species thermodynamic property manager.
virtual doublereal cp_R_ref() const
Return the molar heat capacity divided by R at reference pressure.
std::string attrib(const std::string &attr) const
Function returns the value of an attribute.
virtual doublereal gibbs_RT_ref() const
Return the molar Gibbs free energy divided by RT at reference pressure.
doublereal * m_cpss_R_ptr
Standard state heat capacity divided by R.
virtual void initThermoXML(const XML_Node &phaseNode, const std::string &id)
Initialization routine for the PDSS object based on the phaseNode.
doublereal m_constMolarVolume
Value of the constant molar volume for the species.
doublereal * m_h0_RT_ptr
Reference state enthalpy divided by RT.
virtual doublereal maxTemp(size_t k=npos) const =0
Maximum temperature.
virtual void setPressure(doublereal pres)
Sets the pressure in the object.
virtual void update_one(size_t k, doublereal T, doublereal *cp_R, doublereal *h_RT, doublereal *s_R) const
Like update(), but only updates the single species k.
virtual doublereal enthalpy_RT_ref() const
Return the molar enthalpy divided by RT at reference pressure.
doublereal m_pres
State of the system - pressure.
Class XML_Node is a tree-based representation of the contents of an XML file.
virtual doublereal molarVolume() const
Return the molar volume at standard state.
virtual doublereal density() const
Return the standard state density at standard state.
void constructPDSSFile(VPStandardStateTP *vptp_ptr, size_t spindex, const std::string &inputFile, const std::string &id)
Initialization of a PDSS object using an input XML file.
size_t m_spindex
Species index in the ThermoPhase corresponding to this species.
virtual void setState_TR(doublereal temp, doublereal rho)
Set the internal temperature and density.
doublereal * m_gss_RT_ptr
Standard state Gibbs free energy divided by RT.
PDSS_enumType m_pdssType
Enumerated type describing the type of the PDSS object.
virtual doublereal entropy_R_ref() const
Return the molar entropy divided by R at reference pressure.
XML_Node & child(const size_t n) const
Return a changeable reference to the n'th child of the current node.
doublereal * m_sss_R_ptr
Standard state entropy divided by R.
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
virtual doublereal satPressure(doublereal t)
saturation pressure
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...
PDSS_ConstVol(VPStandardStateTP *tp, size_t spindex)
Constructor.
virtual void initThermo()
Initialization routine for all of the shallow pointers.
Class for pressure dependent standard states that use a constant volume model.
std::string name() const
Returns the name of the XML node.
virtual doublereal molarVolume_ref() const
Return the molar volume at reference pressure.
virtual doublereal refPressure(size_t k=npos) const =0
The reference-state pressure for species k.
doublereal * m_s0_R_ptr
Reference state entropy divided by R.
Base class for exceptions thrown by Cantera classes.
PDSS_ConstVol & operator=(const PDSS_ConstVol &b)
Assignment operator.
virtual doublereal cp_R() const
Return the molar const pressure heat capacity divided by RT.
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual PDSS * duplMyselfAsPDSS() const
Duplication routine for objects which inherit from PDSS.
doublereal m_maxTemp
Maximum temperature.
virtual doublereal entropy_R() const
Return the standard state entropy divided by RT.
doublereal m_minTemp
Minimum temperature.
doublereal * m_hss_RT_ptr
Standard state enthalpy divided by RT.
virtual doublereal minTemp(size_t k=npos) const =0
Minimum temperature.
virtual doublereal cp_mole() const
Return the molar const pressure heat capacity in units of J kmol-1 K-1.
virtual void initThermoXML(const XML_Node &phaseNode, const std::string &id)
Initialization routine for the PDSS object based on the phaseNode.
Header file for a derived class of ThermoPhase that handles variable pressure standard state methods ...
Virtual base class for a species with a pressure dependent standard state.
virtual doublereal gibbs_RT() const
Return the molar Gibbs free energy divided by RT.
virtual doublereal cv_mole() const
Return the molar const volume heat capacity in units of J kmol-1 K-1.
VPStandardStateTP * m_tp
ThermoPhase which this species belongs to.
const doublereal GasConstant
Universal Gas Constant. [J/kmol/K].
doublereal m_temp
Current temperature used by the PDSS object.
PDSS & operator=(const PDSS &b)
Assignment operator.
virtual doublereal enthalpy_RT() const
Return the standard state molar enthalpy divided by RT.
doublereal getFloat(const XML_Node &parent, const std::string &name, const std::string &type)
Get a floating-point value from a child element.
doublereal * m_g0_RT_ptr
Reference state Gibbs free energy divided by RT.
void constructPDSSXML(VPStandardStateTP *vptp_ptr, size_t spindex, const XML_Node &speciesNode, const XML_Node &phaseNode, bool spInstalled)
Initialization of a PDSS object using an XML tree.
Declarations for the class PDSS_ConstVol (pressure dependent standard state) which handles calculatio...
doublereal * m_cp0_R_ptr
Reference state heat capacity divided by R.
virtual SpeciesThermo & speciesThermo(int k=-1)
Return a changeable reference to the calculation manager for species reference-state thermodynamic pr...
virtual void initThermo()
Initialization routine for all of the shallow pointers.
virtual doublereal intEnergy_mole() const
Return the molar internal Energy in units of J kmol-1.
doublereal * m_Vss_ptr
Standard State molar volume (m3 kg-1)
doublereal * m_V0_ptr
Reference state molar volume (m3 kg-1)
XML_Node & root() const
Return the root of the current XML_Node tree.
void build(std::istream &f)
Main routine to create an tree-like representation of an XML file.
std::string speciesName(size_t k) const
Name of the species with index k.
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 ...
doublereal m_p0
Reference state pressure of the species.
doublereal m_mw
Molecular Weight of the species.