Cantera 2.6.0

Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
PDSS_SSVol Class Reference
Models of Phases of Matter » Thermodynamic Properties » Species Standard-State Thermodynamic Properties

Class for pressure dependent standard states that uses a standard state volume model of some sort. More...

`#include <PDSS_SSVol.h>`

Inheritance diagram for PDSS_SSVol:
[legend]
Collaboration diagram for PDSS_SSVol:
[legend]

## Public Member Functions
| PDSS_SSVol ()
| Default Constructor. More...
Molar Thermodynamic Properties of the Species Standard State in the Solution
virtual doublereal | intEnergy_mole () const
| Return the molar internal Energy in units of J kmol-1. More...
virtual doublereal | cv_mole () const
| Return the molar const volume heat capacity in units of J kmol-1 K-1. More...
Mechanical Equation of State Properties
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...
Miscellaneous properties of the standard state
virtual doublereal | satPressure (doublereal t)
| saturation pressure More...
Initialization of the Object
virtual void | initThermo ()
| Initialization routine. More...
void | setVolumePolynomial (double *coeffs)
| Set polynomial coefficients for the standard state molar volume as a function of temperature. More...
void | setDensityPolynomial (double *coeffs)
| Set polynomial coefficients for the standard state density as a function of temperature. More...
virtual void | setParametersFromXML (const XML_Node &speciesNode)
| Initialization routine for the PDSS object based on the speciesNode. More...
virtual void | getParameters (AnyMap &eosNode) const
| Store the parameters needed to reconstruct a copy of this PDSS object. More...
Public Member Functions inherited from PDSS_Nondimensional
virtual doublereal | enthalpy_mole () const
| Return the molar enthalpy 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 double | enthalpy_RT_ref () const
| Return the molar enthalpy divided by RT at reference pressure. More...
virtual double | entropy_R_ref () const
| Return the molar entropy divided by R at reference pressure. More...
virtual double | gibbs_RT_ref () const
| Return the molar Gibbs free energy divided by RT at reference pressure. More...
virtual double | cp_R_ref () const
| Return the molar heat capacity divided by R at reference pressure. More...
virtual double | molarVolume_ref () const
| Return the molar volume at reference pressure. More...
virtual double | enthalpy_RT () const
| Return the standard state molar enthalpy divided by RT. More...
virtual double | entropy_R () const
| Return the standard state entropy divided by RT. More...
virtual double | gibbs_RT () const
| Return the molar Gibbs free energy divided by RT. More...
virtual double | cp_R () const
| Return the molar const pressure heat capacity divided by RT. More...
virtual double | molarVolume () const
| Return the molar volume at standard state. More...
virtual double | density () const
| Return the standard state density at standard state. More...
Public Member Functions inherited from PDSS
virtual void | setTemperature (doublereal temp)
| Set the internal temperature. More...
virtual doublereal | temperature () const
| Return the current stored 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...
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...
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...
| 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 | pressure () const
| Returns the pressure (Pa) More...
virtual doublereal | thermalExpansionCoeff () const
| Return the volumetric thermal expansion coefficient. Units: 1/K. 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...
void | setParameters (const AnyMap &node)
| Set model parameters from an AnyMap phase description, for example from the `equation-of-state` field of a species definition. 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...

## Private Types
enum class | SSVolume_Model { tpoly , density_tpoly }
| Types of general formulations for the specification of the standard state volume. More...

## Private Member Functions
void | calcMolarVolume ()
| Does the internal calculation of the volume. More...

## Private Attributes
SSVolume_Model | volumeModel_
| Enumerated data type describing the type of volume model used to calculate the standard state volume of the species. More...
vector_fp | TCoeff_
| coefficients for the temperature representation More...
doublereal | dVdT_
| Derivative of the volume wrt temperature. More...
doublereal | d2VdT2_
| 2nd derivative of the volume wrt temperature More...

## Additional Inherited Members
Protected Attributes inherited from PDSS_Nondimensional
double | m_h0_RT
| Reference state enthalpy divided by RT. More...
double | m_cp0_R
| Reference state heat capacity divided by R. More...
double | m_s0_R
| Reference state entropy divided by R. More...
double | m_g0_RT
| Reference state Gibbs free energy divided by RT. More...
double | m_V0
| Reference state molar volume (m^3/kmol) More...
double | m_hss_RT
| Standard state enthalpy divided by RT. More...
double | m_cpss_R
| Standard state heat capacity divided by R. More...
double | m_sss_R
| Standard state entropy divided by R. More...
double | m_gss_RT
| Standard state Gibbs free energy divided by RT. More...
double | m_Vss
| Standard State molar volume (m^3/kmol) More...
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...

## Detailed Description

Class for pressure dependent standard states that uses a standard state volume model of some sort.

Attention
  This class currently does not have any test cases or examples. Its implementation may be incomplete, and future changes to Cantera may unexpectedly cause this class to stop working. If you use this class, please consider contributing examples or test cases. In the absence of new tests or examples, this class may be deprecated and removed in a future version of Cantera. See https://github.com/Cantera/cantera/issues/267 for additional information.

Class PDSS_SSVol is an implementation class that compute the properties of a single species in a phase at its standard states, for a range of temperatures and pressures. This particular class assumes that the calculation of the thermodynamics functions can be separated into a temperature polynomial representation for thermo functions that can be handled by a SimpleThermo object and a separate calculation for the standard state volume. The Models include a cubic polynomial in temperature for either the standard state volume or the standard state density. The manager uses a SimpleThermo object to handle the calculation of the reference state. This object then adds the pressure dependencies and the volume terms to these thermo functions to complete the representation.

The class includes the following models for the representation of the standard state volume:

- Temperature polynomial for the standard state volume
  - This standard state model is invoked with the keyword "temperature_polynomial". The standard state volume is considered a function of temperature only.

    \[ V^o_k(T,P) = a_0 + a_1 T + a_2 T^2 + a_3 T^3 \]

- Temperature polynomial for the standard state density
  - This standard state model is invoked with the keyword "density_temperature_polynomial". The standard state density, which is the inverse of the volume, is considered a function of temperature only.

    \[ {\rho}^o_k(T,P) = \frac{M_k}{V^o_k(T,P)} = a_0 + a_1 T + a_2 T^2 + a_3 T^3 \]

## Specification of Species Standard State Properties

The standard molar Gibbs free energy for species k is determined from the enthalpy and entropy expressions

      \f[
           G^o_k(T,P) = H^o_k(T,P) - S^o_k(T,P)
      \f]

The enthalpy is calculated mostly from the MultiSpeciesThermo object's enthalpy evaluator. The dependence on pressure originates from the Maxwell relation

      \f[
           {\left(\frac{dH^o_k}{dP}\right)}_T = T  {\left(\frac{dS^o_k}{dP}\right)}_T + V^o_k
      \f]

which is equal to

      \f[
           {\left(\frac{dH^o_k}{dP}\right)}_T =  V^o_k -  T  {\left(\frac{dV^o_k}{dT}\right)}_P
      \f]

The entropy is calculated mostly from the MultiSpeciesThermo objects entropy evaluator. The dependence on pressure originates from the Maxwell relation:

      \f[
             {\left(\frac{dS^o_k}{dP}\right)}_T =  - {\left(\frac{dV^o_k}{dT}\right)}_P
      \f]

The standard state constant-pressure heat capacity expression is obtained from taking the temperature derivative of the Maxwell relation involving the enthalpy given above to yield an expression for the pressure dependence of the heat capacity.

      \f[
           {\left(\frac{d{C}^o_{p,k}}{dP}\right)}_T =  - T  {\left(\frac{{d}^2{V}^o_k}{{dT}^2}\right)}_T
      \f]

The standard molar Internal Energy for species k is determined from the following relation.

      \f[
           U^o_k(T,P) = H^o_k(T,P) - p V^o_k
      \f]

## XML Example

Note: The XML input format is deprecated and will be removed in Cantera 3.0

An example of the specification of a standard state for the LiCl molten salt which has a temperature dependent standard state volume.

<speciesData id="species_MoltenSalt">
<species name="LiCl(L)">
<atomArray> Li:1 Cl:1 </atomArray>
<standardState model="density_temperature_polynomial">
<densityTemperaturePolynomial units="gm/cm3" >
1.98715, -5.890906E-4, 0.0, 0.0
</densityTemperaturePolynomial>
</standardState>
<thermo>
<Shomate Pref="1 bar" Tmax="2000.0" Tmin="700.0">
<floatArray size="7">
73.18025, -9.047232, -0.316390,
0.079587, 0.013594, -417.1314,
157.6711
</floatArray>
</Shomate>
</thermo>
</species>
</speciesData>

Definition at line 135 of file PDSS_SSVol.h.

## Member Enumeration Documentation

## ◆ SSVolume_Model

enum class SSVolume_Model
| strong private

Types of general formulations for the specification of the standard state volume.

Enumerator
tpoly | This approximation is for a species with a cubic polynomial in temperature. V^ss = a_0 + a_1 T + a_2 T^2 + a_3 T^3
density_tpoly | This approximation is for a species where the density is expressed as a cubic polynomial in temperature. V^ss = M / (a_0 + a_1 T + a_2 T^2 + a_3 T^3)

Definition at line 191 of file PDSS_SSVol.h.

## Constructor & Destructor Documentation

## ◆ PDSS_SSVol()

PDSS_SSVol | ( |  | ) |

Default Constructor.

Definition at line 19 of file PDSS_SSVol.cpp.

## Member Function Documentation

## ◆ intEnergy_mole()

doublereal intEnergy_mole | ( |  | ) | const
| virtual

Return the molar internal Energy in units of J kmol-1.

Returns
  The species standard state internal Energy in J kmol-1 at the current temperature and pressure.

Reimplemented from PDSS.

Definition at line 117 of file PDSS_SSVol.cpp.

References Cantera::GasConstant, PDSS_Nondimensional::m_h0_RT, PDSS::m_pres, PDSS::m_temp, and PDSS_Nondimensional::m_Vss.

## ◆ cv_mole()

doublereal cv_mole | ( |  | ) | const
| virtual

Return the molar const volume heat capacity in units of J kmol-1 K-1.

Returns
  The species standard state Cv in J kmol-1 K-1 at the current temperature and pressure.

Reimplemented from PDSS.

Definition at line 123 of file PDSS_SSVol.cpp.

References PDSS_Nondimensional::cp_mole(), and PDSS_Nondimensional::m_V0.

## ◆ setPressure()

void setPressure | ( | doublereal | pres | ) |
| 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.

Parameters

  pres | Pressure to be set (Pascal)

Reimplemented from PDSS.

Definition at line 149 of file PDSS_SSVol.cpp.

References PDSS_SSVol::d2VdT2_, PDSS_SSVol::dVdT_, Cantera::GasConstant, PDSS_Nondimensional::m_cp0_R, PDSS_Nondimensional::m_cpss_R, PDSS_Nondimensional::m_gss_RT, PDSS_Nondimensional::m_h0_RT, PDSS_Nondimensional::m_hss_RT, PDSS::m_p0, PDSS::m_pres, PDSS_Nondimensional::m_s0_R, PDSS_Nondimensional::m_sss_R, PDSS::m_temp, and PDSS_Nondimensional::m_Vss.

## ◆ setTemperature()

void setTemperature | ( | doublereal | temp | ) |
| virtual

Set the internal temperature.

Parameters

  temp | Temperature (Kelvin)

Reimplemented from PDSS.

Definition at line 168 of file PDSS_SSVol.cpp.

References PDSS_SSVol::calcMolarVolume(), PDSS_SSVol::d2VdT2_, PDSS_SSVol::dVdT_, Cantera::GasConstant, PDSS_Nondimensional::m_cp0_R, PDSS_Nondimensional::m_cpss_R, PDSS_Nondimensional::m_g0_RT, PDSS_Nondimensional::m_gss_RT, PDSS_Nondimensional::m_h0_RT, PDSS_Nondimensional::m_hss_RT, PDSS::m_p0, PDSS::m_pres, PDSS_Nondimensional::m_s0_R, PDSS::m_spthermo, PDSS_Nondimensional::m_sss_R, PDSS::m_temp, and PDSS_Nondimensional::m_Vss.

Referenced by PDSS_SSVol::setState_TP().

## ◆ setState_TP()

void setState_TP | ( | doublereal | temp,
|  | doublereal | pres
| ) |  |
| virtual

Set the internal temperature and pressure.

Parameters

  temp | Temperature (Kelvin)
  pres | pressure (Pascals)

Reimplemented from PDSS.

Definition at line 190 of file PDSS_SSVol.cpp.

References PDSS::m_pres, and PDSS_SSVol::setTemperature().

## ◆ satPressure()

doublereal satPressure | ( | doublereal | T | ) |
| virtual

saturation pressure

Parameters

  T | Temperature (Kelvin)

Reimplemented from PDSS.

Definition at line 196 of file PDSS_SSVol.cpp.

## ◆ initThermo()

void initThermo | ( |  | ) |
| virtual

Initialization routine.

This is a cascading call, where each level should call the the parent level.

Reimplemented from PDSS.

Definition at line 88 of file PDSS_SSVol.cpp.

References UnitSystem::convert(), AnyMap::hasKey(), PDSS::initThermo(), PDSS::m_input, PDSS::m_maxTemp, PDSS::m_minTemp, PDSS::m_p0, PDSS::m_spthermo, PDSS_SSVol::setDensityPolynomial(), PDSS_SSVol::setVolumePolynomial(), and AnyMap::units().

## ◆ setVolumePolynomial()

void setVolumePolynomial | ( | double * | coeffs | ) |

Set polynomial coefficients for the standard state molar volume as a function of temperature.

Cubic polynomial (4 coefficients). Leading coefficient is the constant (temperature-independent) term [m^3/kmol].

Definition at line 54 of file PDSS_SSVol.cpp.

References PDSS_SSVol::TCoeff_, PDSS_SSVol::tpoly, and PDSS_SSVol::volumeModel_.

Referenced by PDSS_SSVol::initThermo(), and PDSS_SSVol::setParametersFromXML().

## ◆ setDensityPolynomial()

void setDensityPolynomial | ( | double * | coeffs | ) |

Set polynomial coefficients for the standard state density as a function of temperature.

Cubic polynomial (4 coefficients). Leading coefficient is the constant (temperature-independent) term [kg/m^3].

Definition at line 61 of file PDSS_SSVol.cpp.

References PDSS_SSVol::density_tpoly, PDSS_SSVol::TCoeff_, and PDSS_SSVol::volumeModel_.

Referenced by PDSS_SSVol::initThermo(), and PDSS_SSVol::setParametersFromXML().

## ◆ setParametersFromXML()

void setParametersFromXML | ( | const XML_Node & | speciesNode | ) |
| virtual

Initialization routine for the PDSS object based on the speciesNode.

This is a cascading call, where each level should call the the parent level. This function is called before initThermo()

Deprecated:
  The XML input format is deprecated and will be removed in Cantera 3.0.

Reimplemented from PDSS.

Definition at line 25 of file PDSS_SSVol.cpp.

References XML_Node::attrib(), XML_Node::findByName(), Cantera::getFloatArray(), XML_Node::name(), PDSS_SSVol::setDensityPolynomial(), PDSS::setParametersFromXML(), and PDSS_SSVol::setVolumePolynomial().

## ◆ getParameters()

void getParameters | ( | AnyMap & | eosNode | ) | const
| virtual

Store the parameters needed to reconstruct a copy of this PDSS object.

Reimplemented from PDSS.

Definition at line 68 of file PDSS_SSVol.cpp.

References PDSS_SSVol::density_tpoly, PDSS::getParameters(), PDSS_SSVol::TCoeff_, and PDSS_SSVol::volumeModel_.

## ◆ calcMolarVolume()

void calcMolarVolume | ( |  | ) |
| private

Does the internal calculation of the volume.

Definition at line 128 of file PDSS_SSVol.cpp.

References PDSS_SSVol::d2VdT2_, PDSS_SSVol::density_tpoly, PDSS_SSVol::dVdT_, PDSS::m_mw, PDSS::m_temp, PDSS_Nondimensional::m_V0, PDSS_Nondimensional::m_Vss, PDSS_SSVol::TCoeff_, PDSS_SSVol::tpoly, and PDSS_SSVol::volumeModel_.

Referenced by PDSS_SSVol::setTemperature().

## Member Data Documentation

## ◆ volumeModel_

SSVolume_Model volumeModel_
| private

Enumerated data type describing the type of volume model used to calculate the standard state volume of the species.

Definition at line 208 of file PDSS_SSVol.h.

Referenced by PDSS_SSVol::calcMolarVolume(), PDSS_SSVol::getParameters(), PDSS_SSVol::setDensityPolynomial(), and PDSS_SSVol::setVolumePolynomial().

## ◆ TCoeff_

vector_fp TCoeff_
| private

coefficients for the temperature representation

Definition at line 211 of file PDSS_SSVol.h.

Referenced by PDSS_SSVol::calcMolarVolume(), PDSS_SSVol::getParameters(), PDSS_SSVol::setDensityPolynomial(), and PDSS_SSVol::setVolumePolynomial().

## ◆ dVdT_

doublereal dVdT_
| mutable private

Derivative of the volume wrt temperature.

Definition at line 214 of file PDSS_SSVol.h.

Referenced by PDSS_SSVol::calcMolarVolume(), PDSS_SSVol::setPressure(), and PDSS_SSVol::setTemperature().

## ◆ d2VdT2_

doublereal d2VdT2_
| mutable private

2nd derivative of the volume wrt temperature

Definition at line 217 of file PDSS_SSVol.h.

Referenced by PDSS_SSVol::calcMolarVolume(), PDSS_SSVol::setPressure(), and PDSS_SSVol::setTemperature().

The documentation for this class was generated from the following files:

- PDSS_SSVol.h
- PDSS_SSVol.cpp