Cantera  3.1.0a1
Loading...
Searching...
No Matches

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]

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 SpeciesThermoInterpType 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 SpeciesThermoInterpType 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

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

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

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

which is equal to

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

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

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

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.

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

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

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

An example of the specification of a standard state using a temperature dependent standard state volume is given in the YAML API Reference.

Definition at line 111 of file PDSS_SSVol.h.

Public Member Functions

 PDSS_SSVol ()
 Default Constructor.
 
Molar Thermodynamic Properties of the Species Standard State
double intEnergy_mole () const override
 Return the molar internal Energy in units of J kmol-1.
 
double cv_mole () const override
 Return the molar const volume heat capacity in units of J kmol-1 K-1.
 
Mechanical Equation of State Properties
void setPressure (double pres) override
 Sets the pressure in the object.
 
void setTemperature (double temp) override
 Set the internal temperature.
 
void setState_TP (double temp, double pres) override
 Set the internal temperature and pressure.
 
Miscellaneous properties of the standard state
double satPressure (double t) override
 saturation pressure
 
Initialization of the Object
void initThermo () override
 Initialization routine.
 
void setVolumePolynomial (double *coeffs)
 Set polynomial coefficients for the standard state molar volume as a function of temperature.
 
void setDensityPolynomial (double *coeffs)
 Set polynomial coefficients for the standard state density as a function of temperature.
 
void getParameters (AnyMap &eosNode) const override
 Store the parameters needed to reconstruct a copy of this PDSS object.
 
- Public Member Functions inherited from PDSS_Nondimensional
double enthalpy_mole () const override
 Return the molar enthalpy in units of J kmol-1.
 
double entropy_mole () const override
 Return the molar entropy in units of J kmol-1 K-1.
 
double gibbs_mole () const override
 Return the molar Gibbs free energy in units of J kmol-1.
 
double cp_mole () const override
 Return the molar const pressure heat capacity in units of J kmol-1 K-1.
 
double enthalpy_RT_ref () const override
 Return the molar enthalpy divided by RT at reference pressure.
 
double entropy_R_ref () const override
 Return the molar entropy divided by R at reference pressure.
 
double gibbs_RT_ref () const override
 Return the molar Gibbs free energy divided by RT at reference pressure.
 
double cp_R_ref () const override
 Return the molar heat capacity divided by R at reference pressure.
 
double molarVolume_ref () const override
 Return the molar volume at reference pressure.
 
double enthalpy_RT () const override
 Return the standard state molar enthalpy divided by RT.
 
double entropy_R () const override
 Return the standard state entropy divided by RT.
 
double gibbs_RT () const override
 Return the molar Gibbs free energy divided by RT.
 
double cp_R () const override
 Return the molar const pressure heat capacity divided by RT.
 
double molarVolume () const override
 Return the molar volume at standard state.
 
double density () const override
 Return the standard state density at standard state.
 
- Public Member Functions inherited from PDSS
virtual void setTemperature (double temp)
 Set the internal temperature.
 
virtual double temperature () const
 Return the current stored temperature.
 
virtual void setState_TP (double temp, double pres)
 Set the internal temperature and pressure.
 
virtual double critTemperature () const
 critical temperature
 
virtual double critPressure () const
 critical pressure
 
virtual double critDensity () const
 critical density
 
virtual double satPressure (double T)
 saturation pressure
 
double molecularWeight () const
 Return the molecular weight of the species in units of kg kmol-1.
 
void setMolecularWeight (double mw)
 Set the molecular weight of the species.
 
 PDSS ()=default
 Default Constructor.
 
 PDSS (const PDSS &b)=delete
 
PDSSoperator= (const PDSS &b)=delete
 
double refPressure () const
 Return the reference pressure for this phase.
 
double minTemp () const
 return the minimum temperature
 
double maxTemp () const
 return the minimum temperature
 
virtual double pressure () const
 Returns the pressure (Pa)
 
virtual double thermalExpansionCoeff () const
 Return the volumetric thermal expansion coefficient. Units: 1/K.
 
void setReferenceThermo (shared_ptr< SpeciesThermoInterpType > stit)
 Set the SpeciesThermoInterpType object used to calculate reference state properties.
 
virtual void setParent (VPStandardStateTP *phase, size_t k)
 Set the parent VPStandardStateTP object of this PDSS object.
 
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.
 

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.
 

Private Attributes

SSVolume_Model volumeModel_ = SSVolume_Model::tpoly
 Enumerated data type describing the type of volume model used to calculate the standard state volume of the species.
 
vector< double > TCoeff_
 coefficients for the temperature representation
 
double dVdT_
 Derivative of the volume wrt temperature.
 
double d2VdT2_
 2nd derivative of the volume wrt temperature
 

Additional Inherited Members

- Protected Attributes inherited from PDSS_Nondimensional
double m_h0_RT
 Reference state enthalpy divided by RT.
 
double m_cp0_R
 Reference state heat capacity divided by R.
 
double m_s0_R
 Reference state entropy divided by R.
 
double m_g0_RT
 Reference state Gibbs free energy divided by RT.
 
double m_V0
 Reference state molar volume (m^3/kmol)
 
double m_hss_RT
 Standard state enthalpy divided by RT.
 
double m_cpss_R
 Standard state heat capacity divided by R.
 
double m_sss_R
 Standard state entropy divided by R.
 
double m_gss_RT
 Standard state Gibbs free energy divided by RT.
 
double m_Vss
 Standard State molar volume (m^3/kmol)
 
- Protected Attributes inherited from PDSS
double m_temp = -1.0
 Current temperature used by the PDSS object.
 
double m_pres = -1.0
 State of the system - pressure.
 
double m_p0 = -1.0
 Reference state pressure of the species.
 
double m_minTemp = -1.0
 Minimum temperature.
 
double m_maxTemp = 10000.0
 Maximum temperature.
 
double m_mw = 0.0
 Molecular Weight of the species.
 
AnyMap m_input
 Input data supplied via setParameters.
 
shared_ptr< SpeciesThermoInterpTypem_spthermo
 Pointer to the species thermodynamic property manager.
 

Member Enumeration Documentation

◆ SSVolume_Model

enum class SSVolume_Model
strongprivate

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 166 of file PDSS_SSVol.h.

Constructor & Destructor Documentation

◆ PDSS_SSVol()

Default Constructor.

Definition at line 16 of file PDSS_SSVol.cpp.

Member Function Documentation

◆ intEnergy_mole()

double intEnergy_mole ( ) const
overridevirtual

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 84 of file PDSS_SSVol.cpp.

◆ cv_mole()

double cv_mole ( ) const
overridevirtual

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 90 of file PDSS_SSVol.cpp.

◆ setPressure()

void setPressure ( double  pres)
overridevirtual

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
presPressure to be set (Pascal)

Reimplemented from PDSS.

Definition at line 116 of file PDSS_SSVol.cpp.

◆ setTemperature()

void setTemperature ( double  temp)
overridevirtual

Set the internal temperature.

Parameters
tempTemperature (Kelvin)

Reimplemented from PDSS.

Definition at line 135 of file PDSS_SSVol.cpp.

◆ setState_TP()

void setState_TP ( double  temp,
double  pres 
)
overridevirtual

Set the internal temperature and pressure.

Parameters
tempTemperature (Kelvin)
prespressure (Pascals)

Reimplemented from PDSS.

Definition at line 157 of file PDSS_SSVol.cpp.

◆ satPressure()

double satPressure ( double  T)
overridevirtual

saturation pressure

Parameters
TTemperature (Kelvin)

Reimplemented from PDSS.

Definition at line 163 of file PDSS_SSVol.cpp.

◆ initThermo()

void initThermo ( )
overridevirtual

Initialization routine.

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

Reimplemented from PDSS.

Definition at line 55 of file PDSS_SSVol.cpp.

◆ 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 21 of file PDSS_SSVol.cpp.

◆ 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 28 of file PDSS_SSVol.cpp.

◆ getParameters()

void getParameters ( AnyMap eosNode) const
overridevirtual

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

Reimplemented from PDSS.

Definition at line 35 of file PDSS_SSVol.cpp.

◆ calcMolarVolume()

void calcMolarVolume ( )
private

Does the internal calculation of the volume.

Definition at line 95 of file PDSS_SSVol.cpp.

Member Data Documentation

◆ volumeModel_

SSVolume_Model volumeModel_ = SSVolume_Model::tpoly
private

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

Definition at line 183 of file PDSS_SSVol.h.

◆ TCoeff_

vector<double> TCoeff_
private

coefficients for the temperature representation

Definition at line 186 of file PDSS_SSVol.h.

◆ dVdT_

double dVdT_
mutableprivate

Derivative of the volume wrt temperature.

Definition at line 189 of file PDSS_SSVol.h.

◆ d2VdT2_

double d2VdT2_
mutableprivate

2nd derivative of the volume wrt temperature

Definition at line 192 of file PDSS_SSVol.h.


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