21 m_constMolarVolume(-1.0)
30 size_t spindex,
const std::string& inputFile,
const std::string&
id) :
33 m_constMolarVolume(-1.0)
36 "To be removed after Cantera 2.3.");
47 m_constMolarVolume(-1.0)
55 volumeModel_(SSVolume_Model::constant),
56 m_constMolarVolume(-1.0)
63 PDSS_SSVol& PDSS_SSVol::operator=(
const PDSS_SSVol& b)
82 const XML_Node& phaseNode,
bool spInstalled)
88 throw CanteraError(
"PDSS_SSVol::constructPDSSXML",
"spInstalled false not handled");
94 "no standardState Node for species " + speciesNode.
name());
96 std::string model = ss->
attrib(
"model");
97 if (model ==
"constant_incompressible" || model ==
"constant") {
100 }
else if (model ==
"temperature_polynomial") {
105 " Didn't get 4 density polynomial numbers for species " + speciesNode.
name());
107 }
else if (model ==
"density_temperature_polynomial") {
112 " Didn't get 4 density polynomial numbers for species " + speciesNode.
name());
116 "standardState model for species isn't constant_incompressible: " + speciesNode.
name());
121 const std::string& inputFile,
const std::string&
id)
124 "To be removed after Cantera 2.3.");
125 if (inputFile.size() == 0) {
127 "input file is null");
137 "ERROR: Can not find phase named " +
138 id +
" in file named " + inputFile);
143 &fxml_phase->
root());
242 doublereal dens2 = dens * dens;
246 d2VdT2_ = 2.0 *
m_mw / (dens2 * dens) * ddensdT * ddensdT -
m_mw / dens2 * d2densdT2;
248 throw CanteraError(
"PDSS_SSVol::calcMolarVolume",
"unimplemented");
256 if (fabs(deltaP) < 1.0E-10) {
278 if (fabs(deltaP) < 1.0E-10) {
302 if (fabs(rhoStored - rho) / (rhoStored + rho) > 1.0E-4) {
304 "Inconsistent supplied rho");
size_t getFloatArray(const XML_Node &node, vector_fp &v, const bool convert, const std::string &unitsString, const std::string &nodeName)
This function reads the current node or a child node of the current node with the default name...
virtual doublereal molarVolume() const
Return the molar volume at standard state.
SSVolume_Model volumeModel_
Enumerated data type describing the type of volume model used to calculate the standard state volume ...
virtual doublereal maxTemp(size_t k=npos) const
Maximum temperature.
virtual doublereal intEnergy_mole() const
Return the molar internal Energy in units of J kmol-1.
virtual PDSS * duplMyselfAsPDSS() const
Duplication routine for objects which inherit from PDSS.
void calcMolarVolume() const
Does the internal calculation of the volume.
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.
XML_Node * findXMLPhase(XML_Node *root, const std::string &idtarget)
Search an XML_Node tree for a named phase XML_Node.
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...
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.
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_h0_RT_ptr
Reference state enthalpy divided by RT.
virtual doublereal entropy_R() const
Return the standard state entropy divided by RT.
doublereal m_pres
State of the system - pressure.
virtual void setTemperature(doublereal temp)
Set the internal temperature.
virtual void initThermoXML(const XML_Node &phaseNode, const std::string &id)
Initialization routine for the PDSS object based on the phaseNode.
Class XML_Node is a tree-based representation of the contents of an XML file.
void warn_deprecated(const std::string &method, const std::string &extra)
Print a warning indicating that method is deprecated.
virtual doublereal refPressure(size_t k=npos) const
The reference-state pressure for species k.
virtual doublereal enthalpy_RT_ref() const
Return the molar enthalpy divided by RT at reference pressure.
virtual doublereal gibbs_RT() const
Return the molar Gibbs free energy divided by RT.
size_t m_spindex
Species index in the ThermoPhase corresponding to this species.
doublereal * m_gss_RT_ptr
Standard state Gibbs free energy divided by RT.
This approximation is for a constant volume.
PDSS_enumType m_pdssType
Enumerated type describing the type of the PDSS object.
virtual MultiSpeciesThermo & speciesThermo(int k=-1)
Return a changeable reference to the calculation manager for species reference-state thermodynamic pr...
doublereal * m_sss_R_ptr
Standard state entropy divided by R.
This approximation is for a species with a quadratic polynomial in temperature.
virtual void setPressure(doublereal pres)
Sets the pressure in the object.
This approximation is for a species where the density is expressed as a quadratic polynomial in tempe...
SSVolume_Model
Types of general formulations for the specification of the standard state volume. ...
virtual void initThermo()
Initialization routine for all of the shallow pointers.
virtual doublereal gibbs_RT_ref() const
Return the molar Gibbs free energy divided by RT at reference pressure.
doublereal d2VdT2_
2nd derivative of the volume wrt temperature
virtual doublereal cp_R() const
Return the molar const pressure heat capacity divided by RT.
std::string speciesName(size_t k) const
Name of the species with index k.
virtual doublereal cp_R_ref() const
Return the molar heat capacity divided by R at reference pressure.
virtual doublereal enthalpy_RT() const
Return the standard state molar enthalpy divided by RT.
doublereal m_constMolarVolume
Value of the constant molar volume for the species.
Declarations for the class PDSS_SSVol (pressure dependent standard state) which handles calculations ...
virtual void setState_TP(doublereal temp, doublereal pres)
Set the internal temperature and pressure.
doublereal * m_s0_R_ptr
Reference state entropy divided by R.
Base class for exceptions thrown by Cantera classes.
void build(const std::string &filename)
Populate the XML tree from an input file.
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
vector_fp TCoeff_
coefficients for the temperature representation
doublereal dVdT_
Derivative of the volume wrt temperature.
doublereal m_maxTemp
Maximum temperature.
virtual doublereal minTemp(size_t k=npos) const
Minimum temperature.
doublereal m_minTemp
Minimum temperature.
Class for pressure dependent standard states that uses a standard state volume model of some sort...
doublereal * m_hss_RT_ptr
Standard state enthalpy divided by RT.
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 void initThermo()
Initialization routine for all of the shallow pointers.
virtual doublereal entropy_R_ref() const
Return the molar entropy divided by R at reference pressure.
virtual doublereal cv_mole() const
Return the molar const volume heat capacity in units of J kmol-1 K-1.
Header file for a derived class of ThermoPhase that handles variable pressure standard state methods ...
virtual doublereal density() const
Return the standard state density at standard state.
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.
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)
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.
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.
doublereal * m_cp0_R_ptr
Reference state heat capacity divided by R.
MultiSpeciesThermo * m_spthermo
Pointer to the species thermodynamic property manager.
PDSS_SSVol(VPStandardStateTP *tp, size_t spindex)
Constructor.
virtual void setState_TR(doublereal temp, doublereal rho)
Set the internal temperature and density.
doublereal * m_Vss_ptr
Standard State molar volume (m3 kg-1)
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 doublereal cp_mole() const
Return the molar const pressure heat capacity in units of J kmol-1 K-1.
doublereal * m_V0_ptr
Reference state molar volume (m3 kg-1)
doublereal molecularWeight(size_t k) const
Molecular weight of species k.
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.
Namespace for the Cantera kernel.
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.
virtual doublereal molarVolume_ref() const
Return the molar volume at reference pressure.