Clean up Doxygen comments in VPSSMgr and descendants
This commit is contained in:
parent
cd1f1fd5ac
commit
5a0a6b855c
6 changed files with 254 additions and 310 deletions
|
|
@ -25,35 +25,34 @@ class VPStandardStateTP;
|
|||
class SpeciesThermo;
|
||||
class PDSS;
|
||||
/**
|
||||
* @defgroup mgrpdssthermocalc Managers for Calculating Standard-State Thermodynamics
|
||||
* @defgroup mgrpdssthermocalc Managers for Calculating Standard-State
|
||||
* Thermodynamics
|
||||
*
|
||||
* To compute the thermodynamic properties of multicomponent solutions, it is
|
||||
* necessary to know something about the thermodynamic properties of the
|
||||
* individual species present in the solution. Exactly what sort of species
|
||||
* properties are required depends on the thermodynamic model for the
|
||||
* solution. For a gaseous solution (i.e., a gas mixture), the species
|
||||
* properties required are usually ideal gas properties at the mixture
|
||||
* temperature and at a reference pressure (almost always at 1 bar). For other
|
||||
* types of solutions, however, it may not be possible to isolate the species
|
||||
* in a "pure" state. For example, the thermodynamic properties of, say, Na+
|
||||
* and Cl- in saltwater are not easily determined from data on the properties
|
||||
* of solid NaCl, or solid Na metal, or chlorine gas. In this case, the
|
||||
* solvation in water is fundamental to the identity of the species, and some
|
||||
* other reference state must be used. One common convention for liquid
|
||||
* solutions is to use thermodynamic data for the solutes in the limit of
|
||||
* infinite dilution within the pure solvent; another convention is to
|
||||
* reference all properties to unit molality.
|
||||
* properties are required depends on the thermodynamic model for the solution.
|
||||
* For a gaseous solution (i.e., a gas mixture), the species properties required
|
||||
* are usually ideal gas properties at the mixture temperature and at a
|
||||
* reference pressure (almost always at 1 bar). For other types of solutions,
|
||||
* however, it may not be possible to isolate the species in a "pure" state. For
|
||||
* example, the thermodynamic properties of, say, Na+ and Cl- in saltwater are
|
||||
* not easily determined from data on the properties of solid NaCl, or solid Na
|
||||
* metal, or chlorine gas. In this case, the solvation in water is fundamental
|
||||
* to the identity of the species, and some other reference state must be used.
|
||||
* One common convention for liquid solutions is to use thermodynamic data for
|
||||
* the solutes in the limit of infinite dilution within the pure solvent;
|
||||
* another convention is to reference all properties to unit molality.
|
||||
*
|
||||
* In defining these standard states for species in a phase, we make the
|
||||
* following definition. A reference state is a standard state of a species in
|
||||
* a phase limited to one particular pressure, the reference pressure. The
|
||||
* reference state specifies the dependence of all thermodynamic functions as
|
||||
* a function of the temperature, in between a minimum temperature and a
|
||||
* maximum temperature. The reference state also specifies the molar volume of
|
||||
* the species as a function of temperature. The molar volume is a
|
||||
* thermodynamic function. A full standard state does the same thing as a
|
||||
* reference state, but specifies the thermodynamics functions at all
|
||||
* pressures.
|
||||
* following definition. A reference state is a standard state of a species in a
|
||||
* phase limited to one particular pressure, the reference pressure. The
|
||||
* reference state specifies the dependence of all thermodynamic functions as a
|
||||
* function of the temperature, in between a minimum temperature and a maximum
|
||||
* temperature. The reference state also specifies the molar volume of the
|
||||
* species as a function of temperature. The molar volume is a thermodynamic
|
||||
* function. A full standard state does the same thing as a reference state, but
|
||||
* specifies the thermodynamics functions at all pressures.
|
||||
*
|
||||
* Class VPSSMgr is the base class for a family of classes that compute
|
||||
* properties of all species in a phase in their standard states, for a range
|
||||
|
|
@ -76,112 +75,110 @@ class PDSS;
|
|||
*
|
||||
* Typically calls to calculate standard state thermo properties are virtual
|
||||
* calls at the ThermoPhase level. It is left to the child classes of
|
||||
* ThermoPhase to specify how these are carried out. Usually, this will
|
||||
* involve calling the m_spthermo pointer to a SpeciesThermo object to
|
||||
* calculate the reference state thermodynamic properties. Then, the pressure
|
||||
* dependence is added in within the child ThermoPhase object to complete the
|
||||
* specification of the standard state. The VPStandardStateTP class, however,
|
||||
* redefines the calls to the calculation of standard state properties to use
|
||||
* VPSSMgr class calls. A listing of these classes and important pointers are
|
||||
* supplied below.
|
||||
* ThermoPhase to specify how these are carried out. Usually, this will involve
|
||||
* calling the m_spthermo pointer to a SpeciesThermo object to calculate the
|
||||
* reference state thermodynamic properties. Then, the pressure dependence is
|
||||
* added in within the child ThermoPhase object to complete the specification of
|
||||
* the standard state. The VPStandardStateTP class, however, redefines the calls
|
||||
* to the calculation of standard state properties to use VPSSMgr class calls.
|
||||
* A listing of these classes and important pointers are supplied below.
|
||||
*
|
||||
* - ThermoPhase
|
||||
* - \link Cantera::ThermoPhase::m_spthermo m_spthermo\endlink
|
||||
* This is a pointer to a SpeciesThermo manager class that
|
||||
* handles the reference %state Thermodynamic calculations.
|
||||
* - VPStandardStateTP (inherits from ThermoPhase)
|
||||
* - \link Cantera::ThermoPhase::m_spthermo m_spthermo\endlink
|
||||
* SpeciesThermo manager handling reference %state Thermodynamic calculations.
|
||||
* may or may not be used by the VPSSMgr class. For species
|
||||
* which don't have a reference state class defined, a default
|
||||
* class, called STITbyPDSS which is installed into the SpeciesThermo
|
||||
* class, actually calculates reference state
|
||||
* thermo by calling a PDSS object.
|
||||
* - \link Cantera::VPStandardStateTP::m_VPSS_ptr m_VPSS_ptr\endlink
|
||||
* This is a pointer to a VPSSMgr class which handles the
|
||||
* standard %state thermo calculations. It may
|
||||
* or may not use the pointer, m_spthermo, in its calculations.
|
||||
* - ThermoPhase
|
||||
* - \link Cantera::ThermoPhase::m_spthermo m_spthermo\endlink
|
||||
* This is a pointer to a SpeciesThermo manager class that
|
||||
* handles the reference %state Thermodynamic calculations.
|
||||
* - VPStandardStateTP (inherits from ThermoPhase)
|
||||
* - \link Cantera::ThermoPhase::m_spthermo m_spthermo\endlink
|
||||
* SpeciesThermo manager handling reference %state Thermodynamic calculations.
|
||||
* may or may not be used by the VPSSMgr class. For species
|
||||
* which don't have a reference state class defined, a default
|
||||
* class, called STITbyPDSS which is installed into the SpeciesThermo
|
||||
* class, actually calculates reference state
|
||||
* thermo by calling a PDSS object.
|
||||
* - \link Cantera::VPStandardStateTP::m_VPSS_ptr m_VPSS_ptr\endlink
|
||||
* This is a pointer to a VPSSMgr class which handles the
|
||||
* standard %state thermo calculations. It may
|
||||
* or may not use the pointer, m_spthermo, in its calculations.
|
||||
*
|
||||
* The following classes inherit from VPSSMgr. Each of these classes
|
||||
* handle multiple species and by definition all of the species in a phase.
|
||||
* It is a requirement that a VPSSMgr object handles all of the
|
||||
* species in a phase.
|
||||
* The following classes inherit from VPSSMgr. Each of these classes handle
|
||||
* multiple species and by definition all of the species in a phase. It is a
|
||||
* requirement that a VPSSMgr object handles all of the species in a phase.
|
||||
*
|
||||
* - VPSSMgr_IdealGas
|
||||
* - standardState model = "IdealGas"
|
||||
* - This model assumes that all species in the phase obey the
|
||||
* ideal gas law for their pressure dependence. The manager
|
||||
* uses a SpeciesThermo object to handle the calculation of the
|
||||
* reference state.
|
||||
* - VPSSMgr_ConstVol
|
||||
* - standardState model = "ConstVol"
|
||||
* - This model assumes that all species in the phase obey the
|
||||
* constant partial molar volume pressure dependence.
|
||||
* The manager uses a SpeciesThermo object to handle the
|
||||
* calculation of the reference state.
|
||||
* - VPSSMgr_Water_ConstVol
|
||||
* - standardState model = "Water_ConstVol"
|
||||
* - This model assumes that all species but one in the phase obey the
|
||||
* constant partial molar volume pressure dependence.
|
||||
* The manager uses a SpeciesThermo object to handle the
|
||||
* calculation of the reference state for those species.
|
||||
* Species 0 is assumed to be water, and a real equation
|
||||
* of state is used to model the T, P behavior.
|
||||
* - VPSSMgr_Water_HKFT
|
||||
* - standardState model = "Water_HKFT"
|
||||
* - This model assumes that all species but one in the phase obey the
|
||||
* HKFT equation of state.
|
||||
* Species 0 is assumed to be water, and a real equation
|
||||
* of state is used to model the T, P behavior.
|
||||
* - VPSSMgr_General
|
||||
* - standardState model = "General"
|
||||
* - This model is completely general. Nothing is assumed at this
|
||||
* level. Calls consist of loops to PDSS property evaluations.
|
||||
* - VPSSMgr_IdealGas
|
||||
* - standardState model = "IdealGas"
|
||||
* - This model assumes that all species in the phase obey the
|
||||
* ideal gas law for their pressure dependence. The manager
|
||||
* uses a SpeciesThermo object to handle the calculation of the
|
||||
* reference state.
|
||||
* - VPSSMgr_ConstVol
|
||||
* - standardState model = "ConstVol"
|
||||
* - This model assumes that all species in the phase obey the
|
||||
* constant partial molar volume pressure dependence.
|
||||
* The manager uses a SpeciesThermo object to handle the
|
||||
* calculation of the reference state.
|
||||
* - VPSSMgr_Water_ConstVol
|
||||
* - standardState model = "Water_ConstVol"
|
||||
* - This model assumes that all species but one in the phase obey the
|
||||
* constant partial molar volume pressure dependence.
|
||||
* The manager uses a SpeciesThermo object to handle the
|
||||
* calculation of the reference state for those species.
|
||||
* Species 0 is assumed to be water, and a real equation
|
||||
* of state is used to model the T, P behavior.
|
||||
* - VPSSMgr_Water_HKFT
|
||||
* - standardState model = "Water_HKFT"
|
||||
* - This model assumes that all species but one in the phase obey the
|
||||
* HKFT equation of state.
|
||||
* Species 0 is assumed to be water, and a real equation
|
||||
* of state is used to model the T, P behavior.
|
||||
* - VPSSMgr_General
|
||||
* - standardState model = "General"
|
||||
* - This model is completely general. Nothing is assumed at this
|
||||
* level. Calls consist of loops to PDSS property evaluations.
|
||||
*
|
||||
* The choice of which VPSSMgr object to be used is implicitly made by
|
||||
* %Cantera by querying the XML data file for compatibility.
|
||||
* However, each of these VPSSMgr objects may be explicitly requested in the XML file
|
||||
* by adding in the following XML node into the thermo section of the
|
||||
* phase XML Node. For example, the code example listed below
|
||||
* explicitly requests that the VPSSMgr_IdealGas
|
||||
* object be used to handle the standard state thermodynamics calculations.
|
||||
* The choice of which VPSSMgr object to be used is implicitly made by %Cantera
|
||||
* by querying the XML data file for compatibility. However, each of these
|
||||
* VPSSMgr objects may be explicitly requested in the XML file by adding in the
|
||||
* following XML node into the thermo section of the phase XML Node. For
|
||||
* example, the code example listed below explicitly requests that the
|
||||
* VPSSMgr_IdealGas object be used to handle the standard state thermodynamics
|
||||
* calculations.
|
||||
*
|
||||
* @code
|
||||
* <phase id="Silane_Pyrolysis" dim="3">
|
||||
* . . .
|
||||
* <thermo model="VPIdealGas">
|
||||
* <standardState model="IdealGas"\>
|
||||
* <\thermo>
|
||||
* . . .
|
||||
* <\phase>
|
||||
* @endcode
|
||||
* @code
|
||||
* <phase id="Silane_Pyrolysis" dim="3">
|
||||
* . . .
|
||||
* <thermo model="VPIdealGas">
|
||||
* <standardState model="IdealGas"\>
|
||||
* <\thermo>
|
||||
* . . .
|
||||
* <\phase>
|
||||
* @endcode
|
||||
*
|
||||
* If it turns out that the VPSSMgr_IdealGas class can not handle the standard
|
||||
* state calculation, then %Cantera will fail during the instantiation phase
|
||||
* printing out an informative error message.
|
||||
* If it turns out that the VPSSMgr_IdealGas class can not handle the standard
|
||||
* state calculation, then %Cantera will fail during the instantiation phase
|
||||
* printing out an informative error message.
|
||||
*
|
||||
* In the source code listing above, the thermo model, VPIdealGas ,was requested. The
|
||||
* thermo model specifies the type of ThermoPhase object to use. In this case
|
||||
* the object IdealSolnGasVPSS (with the ideal gas suboption) is used. IdealSolnGasVPSS
|
||||
* inherits from VPStandardStateTP, so that it actually has a VPSSMgr pointer
|
||||
* to be specified. Note, in addition to the IdealGas entry to the model
|
||||
* parameter in standardState node, we could have also specified the "General"
|
||||
* option. The general option will always work. An example of this
|
||||
* usage is listed below.
|
||||
* In the source code listing above, the thermo model, VPIdealGas ,was
|
||||
* requested. The thermo model specifies the type of ThermoPhase object to use.
|
||||
* In this case the object IdealSolnGasVPSS (with the ideal gas suboption) is
|
||||
* used. IdealSolnGasVPSS inherits from VPStandardStateTP, so that it actually
|
||||
* has a VPSSMgr pointer to be specified. Note, in addition to the IdealGas
|
||||
* entry to the model parameter in standardState node, we could have also
|
||||
* specified the "General" option. The general option will always work. An
|
||||
* example of this usage is listed below.
|
||||
*
|
||||
* @code
|
||||
* <phase id="Silane_Pyrolysis" dim="3">
|
||||
* . . .
|
||||
* <thermo model="VPIdealGas">
|
||||
* <standardState model="General"\>
|
||||
* <\thermo>
|
||||
* . . .
|
||||
* <\phase>
|
||||
* @endcode
|
||||
* @code
|
||||
* <phase id="Silane_Pyrolysis" dim="3">
|
||||
* . . .
|
||||
* <thermo model="VPIdealGas">
|
||||
* <standardState model="General"\>
|
||||
* <\thermo>
|
||||
* . . .
|
||||
* <\phase>
|
||||
* @endcode
|
||||
*
|
||||
* The "General" option will cause the VPSSMgr_General VPSSMgr class to be
|
||||
* used. In this manager, the calculations are all handled at the PDSS object
|
||||
* level. This is completely general, but, may be significantly slower.
|
||||
* The "General" option will cause the VPSSMgr_General VPSSMgr class to be used.
|
||||
* In this manager, the calculations are all handled at the PDSS object level.
|
||||
* This is completely general, but, may be significantly slower.
|
||||
*
|
||||
* @ingroup thermoprops
|
||||
*/
|
||||
|
|
@ -189,47 +186,46 @@ class PDSS;
|
|||
//! Virtual base class for the classes that manage the calculation
|
||||
//! of standard state properties for all the species in a phase.
|
||||
/*!
|
||||
* This class defines the interface which all subclasses must implement.
|
||||
* This class defines the interface which all subclasses must implement.
|
||||
*
|
||||
* Class VPSSMgr is the base class for a family of classes that compute
|
||||
* properties of a set of species in their standard state at a range of
|
||||
* temperatures and pressures.
|
||||
*
|
||||
* If #m_useTmpRefStateStorage is set to true, then the following internal
|
||||
* arrays, containing information about the reference arrays,
|
||||
* are calculated and kept up to date at every call.
|
||||
* If #m_useTmpRefStateStorage is set to true, then the following internal
|
||||
* arrays, containing information about the reference arrays,
|
||||
* are calculated and kept up to date at every call.
|
||||
*
|
||||
* - #m_h0_RT
|
||||
* - #m_g0_RT
|
||||
* - #m_s0_R
|
||||
* - #m_cp0_R
|
||||
* - #m_h0_RT
|
||||
* - #m_g0_RT
|
||||
* - #m_s0_R
|
||||
* - #m_cp0_R
|
||||
*
|
||||
* The virtual function #_updateRefStateThermo() is supplied to do this
|
||||
* and may be reimplemented in child routines. A default implementation
|
||||
* based on the speciesThermo class is supplied in this base class.
|
||||
* #_updateStandardStateThermo() is called whenever a reference state
|
||||
* property is needed.
|
||||
* The virtual function #_updateRefStateThermo() is supplied to do this and may
|
||||
* be reimplemented in child routines. A default implementation based on the
|
||||
* speciesThermo class is supplied in this base class.
|
||||
* #_updateStandardStateThermo() is called whenever a reference state property
|
||||
* is needed.
|
||||
*
|
||||
* When #m_useTmpStandardStateStorage is true, then the following
|
||||
* internal arrays, containing information on the standard state properties
|
||||
* are calculated and kept up to date.
|
||||
* When #m_useTmpStandardStateStorage is true, then the following internal
|
||||
* arrays, containing information on the standard state properties are
|
||||
* calculated and kept up to date.
|
||||
*
|
||||
* - #m_hss_RT;
|
||||
* - #m_cpss_R;
|
||||
* - #m_gss_RT;
|
||||
* - #m_sss_R;
|
||||
* - #m_Vss
|
||||
* - #m_hss_RT;
|
||||
* - #m_cpss_R;
|
||||
* - #m_gss_RT;
|
||||
* - #m_sss_R;
|
||||
* - #m_Vss
|
||||
*
|
||||
* The virtual function #_updateStandardStateThermo() is supplied to do this
|
||||
* and must be reimplemented in child routines,
|
||||
* when #m_useTmpStandardStateStorage is true.
|
||||
* It may be optionally reimplemented in child routines if
|
||||
* #m_useTmpStandardStateStorage is false.
|
||||
* #_updateStandardStateThermo() is called whenever a standard state property is needed.
|
||||
* The virtual function #_updateStandardStateThermo() is supplied to do this and
|
||||
* must be reimplemented in child routines, when #m_useTmpStandardStateStorage
|
||||
* is true. It may be optionally reimplemented in child routines if
|
||||
* #m_useTmpStandardStateStorage is false. #_updateStandardStateThermo() is
|
||||
* called whenever a standard state property is needed.
|
||||
*
|
||||
* This class is usually used for nearly incompressible phases. For those phases, it
|
||||
* makes sense to change the equation of state independent variable from
|
||||
* density to pressure.
|
||||
* This class is usually used for nearly incompressible phases. For those
|
||||
* phases, it makes sense to change the equation of state independent variable
|
||||
* from density to pressure.
|
||||
*/
|
||||
class VPSSMgr
|
||||
{
|
||||
|
|
@ -244,13 +240,8 @@ public:
|
|||
*/
|
||||
VPSSMgr(VPStandardStateTP* vptp_ptr, SpeciesThermo* spth = 0);
|
||||
|
||||
//! Destructor
|
||||
virtual ~VPSSMgr() {}
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr(const VPSSMgr& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr& operator=(const VPSSMgr& right);
|
||||
|
||||
//! Duplication routine for objects which derive from VPSSMgr
|
||||
|
|
@ -330,8 +321,9 @@ public:
|
|||
//! Get the nondimensional Heat Capacities at constant pressure for the
|
||||
//! standard state of the species at the current T and P.
|
||||
/*!
|
||||
* This is redefined here to call the internal function, _updateStandardStateThermo(),
|
||||
* which calculates all standard state properties at the same time.
|
||||
* This is redefined here to call the internal function,
|
||||
* _updateStandardStateThermo(), which calculates all standard state
|
||||
* properties at the same time.
|
||||
*
|
||||
* @param cpr Output vector containing the the nondimensional Heat
|
||||
* Capacities at constant pressure for the standard state of
|
||||
|
|
@ -368,33 +360,32 @@ public:
|
|||
public:
|
||||
//@}
|
||||
/*! @name Thermodynamic Values for the Species Reference States
|
||||
* There are also temporary variables for holding the species reference-
|
||||
* state values of Cp, H, S, and V at the last temperature and reference
|
||||
* pressure called. These functions are not recalculated if a new call is
|
||||
* made using the previous temperature. All calculations are done within
|
||||
* the routine _updateRefStateThermo().
|
||||
* There are also temporary variables for holding the species reference-
|
||||
* state values of Cp, H, S, and V at the last temperature and reference
|
||||
* pressure called. These functions are not recalculated if a new call is
|
||||
* made using the previous temperature. All calculations are done within
|
||||
* the routine _updateRefStateThermo().
|
||||
*/
|
||||
//@{
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional enthalpies of the reference state
|
||||
* at the current temperature of the solution and the reference pressure
|
||||
* for the species.
|
||||
* Returns the vector of nondimensional enthalpies of the reference state at
|
||||
* the current temperature of the solution and the reference pressure for
|
||||
* the species.
|
||||
*
|
||||
* @param hrt Output vector contains the nondimensional enthalpies
|
||||
* of the reference state of the species
|
||||
* length = m_kk, units = dimensionless.
|
||||
* @param hrt Output vector contains the nondimensional enthalpies of the
|
||||
* reference state of the species. length = m_kk, units = dimensionless.
|
||||
*/
|
||||
virtual void getEnthalpy_RT_ref(doublereal* hrt) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional Gibbs free energies of the
|
||||
* reference state at the current temperature of the solution and the
|
||||
* reference pressure for the species.
|
||||
* Returns the vector of nondimensional Gibbs free energies of the reference
|
||||
* state at the current temperature of the solution and the reference
|
||||
* pressure for the species.
|
||||
*
|
||||
* @param grt Output vector contains the nondimensional Gibbs free energies
|
||||
* of the reference state of the species
|
||||
* length = m_kk, units = dimensionless.
|
||||
* of the reference state of the species. length = m_kk, units =
|
||||
* dimensionless.
|
||||
*/
|
||||
virtual void getGibbs_RT_ref(doublereal* grt) const;
|
||||
|
||||
|
|
@ -405,72 +396,71 @@ public:
|
|||
}
|
||||
|
||||
/*!
|
||||
* Returns the vector of the Gibbs function of the reference state at the
|
||||
* current temperature of the solution and the reference pressure for the
|
||||
* species. units = J/kmol
|
||||
* Returns the vector of the Gibbs function of the reference state at the
|
||||
* current temperature of the solution and the reference pressure for the
|
||||
* species. units = J/kmol
|
||||
*
|
||||
* @param g Output vector contain the Gibbs free energies
|
||||
* of the reference state of the species
|
||||
* length = m_kk, units = J/kmol.
|
||||
* @param g Output vector contain the Gibbs free energies of the reference
|
||||
* state of the species. length = m_kk, units = J/kmol.
|
||||
*/
|
||||
virtual void getGibbs_ref(doublereal* g) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional entropies of the reference state
|
||||
* at the current temperature of the solution and the reference pressure
|
||||
* for the species.
|
||||
* Returns the vector of nondimensional entropies of the reference state at
|
||||
* the current temperature of the solution and the reference pressure for
|
||||
* the species.
|
||||
*
|
||||
* @param er Output vector contain the nondimensional entropies
|
||||
* of the species in their reference states
|
||||
* length: m_kk, units: dimensionless.
|
||||
* @param er Output vector contain the nondimensional entropies of the
|
||||
* species in their reference states. length: m_kk, units:
|
||||
* dimensionless.
|
||||
*/
|
||||
virtual void getEntropy_R_ref(doublereal* er) const;
|
||||
|
||||
/*!
|
||||
* Returns the vector of nondimensional constant pressure heat capacities
|
||||
* of the reference state at the current temperature of the solution and
|
||||
* reference pressure for the species.
|
||||
* Returns the vector of nondimensional constant pressure heat capacities of
|
||||
* the reference state at the current temperature of the solution and
|
||||
* reference pressure for the species.
|
||||
*
|
||||
* @param cpr Output vector contains the nondimensional heat capacities
|
||||
* of the species in their reference states
|
||||
* length: m_kk, units: dimensionless.
|
||||
* @param cpr Output vector contains the nondimensional heat capacities of
|
||||
* the species in their reference states. length: m_kk, units:
|
||||
* dimensionless.
|
||||
*/
|
||||
virtual void getCp_R_ref(doublereal* cpr) const;
|
||||
|
||||
//! Get the molar volumes of the species reference states at the current
|
||||
//! *T* and *P_ref* of the solution.
|
||||
//! Get the molar volumes of the species reference states at the current *T*
|
||||
//! and *P_ref* of the solution.
|
||||
/*!
|
||||
* units = m^3 / kmol
|
||||
*
|
||||
* @param vol Output vector containing the standard state volumes.
|
||||
* Length: m_kk.
|
||||
* @param vol Output vector containing the standard state volumes.
|
||||
* Length: m_kk.
|
||||
*/
|
||||
virtual void getStandardVolumes_ref(doublereal* vol) const;
|
||||
|
||||
//@}
|
||||
/*! @name Setting the Internal State of the System
|
||||
* All calls to change the internal state of the system's T and P
|
||||
* are done through these routines
|
||||
* - setState_TP()
|
||||
* - setState_T()
|
||||
* - setState_P()
|
||||
* All calls to change the internal state of the system's T and P
|
||||
* are done through these routines
|
||||
* - setState_TP()
|
||||
* - setState_T()
|
||||
* - setState_P()
|
||||
*
|
||||
* These routine in turn call the following underlying virtual functions
|
||||
* These routine in turn call the following underlying virtual functions
|
||||
*
|
||||
* - _updateRefStateThermo()
|
||||
* - _updateStandardStateThermo()
|
||||
* - _updateRefStateThermo()
|
||||
* - _updateStandardStateThermo()
|
||||
*
|
||||
* An important point to note is that between calls the assumption
|
||||
* that the underlying PDSS objects will retain their set Temperatures
|
||||
* and Pressure CAN NOT BE MADE. For efficiency reasons, we may twiddle
|
||||
* these to get derivatives.
|
||||
* An important point to note is that between calls the assumption that the
|
||||
* underlying PDSS objects will retain their set Temperatures and Pressure
|
||||
* CAN NOT BE MADE. For efficiency reasons, we may twiddle these to get
|
||||
* derivatives.
|
||||
*/
|
||||
//@{
|
||||
|
||||
//! Set the temperature (K) and pressure (Pa)
|
||||
/*!
|
||||
* This sets the temperature and pressure and triggers
|
||||
* calculation of underlying quantities
|
||||
* This sets the temperature and pressure and triggers calculation of
|
||||
* underlying quantities
|
||||
*
|
||||
* @param T Temperature (K)
|
||||
* @param P Pressure (Pa)
|
||||
|
|
@ -543,22 +533,22 @@ protected:
|
|||
* - m_sss_R;
|
||||
* - m_Vss
|
||||
*
|
||||
* If m_useTmpStandardStateStorage is not true, this function may be
|
||||
* required to be called by child classes to update internal member data.
|
||||
* If m_useTmpStandardStateStorage is not true, this function may be
|
||||
* required to be called by child classes to update internal member data.
|
||||
*
|
||||
* Note, the base class implementation will throw an error. It must be
|
||||
* reimplemented in derived classes.
|
||||
* Note, the base class implementation will throw an error. It must be
|
||||
* reimplemented in derived classes.
|
||||
*
|
||||
* Underscore updates never check for the state of the system
|
||||
* They just do the calculation.
|
||||
* Underscore updates never check for the state of the system
|
||||
* They just do the calculation.
|
||||
*/
|
||||
virtual void _updateStandardStateThermo();
|
||||
|
||||
//! Updates the reference state thermodynamic functions at the
|
||||
//! current T of the solution and the reference pressure
|
||||
/*!
|
||||
* Underscore updates never check for the state of the system
|
||||
* They just do the calculation.
|
||||
* Underscore updates never check for the state of the system. They just do
|
||||
* the calculation.
|
||||
*/
|
||||
virtual void _updateRefStateThermo() const;
|
||||
|
||||
|
|
@ -566,23 +556,23 @@ public:
|
|||
//@}
|
||||
//! @name Utility Methods - Reports on various quantities
|
||||
/*!
|
||||
* The following methods are used in the process of reporting
|
||||
* various states and attributes
|
||||
* The following methods are used in the process of reporting various states
|
||||
* and attributes
|
||||
*/
|
||||
//@{
|
||||
|
||||
//! This utility function reports the type of parameterization
|
||||
//! used for the species with index number index.
|
||||
//! This utility function reports the type of parameterization used for the
|
||||
//! species with index number index.
|
||||
/*!
|
||||
* @param index Species index
|
||||
*/
|
||||
virtual PDSS_enumType reportPDSSType(int index = -1) const;
|
||||
|
||||
//! This utility function reports the type of manager
|
||||
//! for the calculation of ss properties
|
||||
//! This utility function reports the type of manager for the calculation of
|
||||
//! ss properties
|
||||
/*!
|
||||
* @return Returns an enum type called VPSSMgr_enumType, which is a list
|
||||
* of the known VPSSMgr objects
|
||||
* @returns an enum type called VPSSMgr_enumType, which is a list of the
|
||||
* known VPSSMgr objects
|
||||
*/
|
||||
virtual VPSSMgr_enumType reportVPSSMgrType() const;
|
||||
|
||||
|
|
@ -616,8 +606,7 @@ public:
|
|||
* such as those for ideal gases, require that all species in the same
|
||||
* phase have the same reference state pressures.
|
||||
*
|
||||
* @param k Species index. Default is -1, which returns
|
||||
* the generic answer.
|
||||
* @param k Species index. Default is -1, which returns the generic answer.
|
||||
*/
|
||||
virtual doublereal refPressure(size_t k=npos) const;
|
||||
|
||||
|
|
@ -650,17 +639,17 @@ public:
|
|||
|
||||
//! Finalize the thermo after all species have been entered
|
||||
/*!
|
||||
* This function is the LAST initialization routine to be called. It's
|
||||
* called after createInstallPDSS() has been called for each species in
|
||||
* the phase, and after initThermo() has been called. It's called via an
|
||||
* inner-to-outer onion shell like manner.
|
||||
* This function is the LAST initialization routine to be called. It's
|
||||
* called after createInstallPDSS() has been called for each species in the
|
||||
* phase, and after initThermo() has been called. It's called via an inner-
|
||||
* to-outer onion shell like manner.
|
||||
*
|
||||
* In this routine, we currently calculate the reference pressure,
|
||||
* the minimum and maximum temperature for the applicability
|
||||
* of the thermo formulation.
|
||||
* In this routine, we currently calculate the reference pressure, the
|
||||
* minimum and maximum temperature for the applicability of the thermo
|
||||
* formulation.
|
||||
*
|
||||
* @param phaseNode Reference to the phaseNode XML node.
|
||||
* @param id ID of the phase.
|
||||
* @param phaseNode Reference to the phaseNode XML node.
|
||||
* @param id ID of the phase.
|
||||
*/
|
||||
virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
|
||||
|
||||
|
|
@ -697,8 +686,8 @@ public:
|
|||
* VPStandardStateTP and SpeciesThermo objects. This function reinitializes
|
||||
* them. This function is called like an onion.
|
||||
*
|
||||
* @param vp_ptr Pointer to the VPStandardStateTP standard state
|
||||
* @param sp_ptr Pointer to the SpeciesThermo standard state
|
||||
* @param vp_ptr Pointer to the VPStandardStateTP standard state
|
||||
* @param sp_ptr Pointer to the SpeciesThermo standard state
|
||||
*/
|
||||
virtual void initAllPtrs(VPStandardStateTP* vp_ptr, SpeciesThermo* sp_ptr);
|
||||
|
||||
|
|
@ -711,7 +700,7 @@ protected:
|
|||
//! Variable pressure ThermoPhase object
|
||||
VPStandardStateTP* m_vptp_ptr;
|
||||
|
||||
//! Pointer to reference state thermo calculator
|
||||
//! Pointer to reference state thermo calculator
|
||||
/*!
|
||||
* Note, this can have a value of 0
|
||||
*/
|
||||
|
|
@ -725,10 +714,7 @@ protected:
|
|||
//! properties were calculated at.
|
||||
mutable doublereal m_plast;
|
||||
|
||||
/*!
|
||||
* Reference pressure (Pa) must be the same for all species
|
||||
* - defaults to 1 atm.
|
||||
*/
|
||||
//! Reference pressure (Pa) must be the same for all species - defaults to 1 atm.
|
||||
mutable doublereal m_p0;
|
||||
|
||||
//! minimum temperature for the standard state calculations
|
||||
|
|
@ -737,73 +723,51 @@ protected:
|
|||
//! maximum temperature for the standard state calculations
|
||||
doublereal m_maxTemp;
|
||||
|
||||
/*!
|
||||
* boolean indicating whether temporary reference state storage is used
|
||||
* -> default is false
|
||||
*/
|
||||
//! boolean indicating whether temporary reference state storage is used ->
|
||||
//! default is false
|
||||
bool m_useTmpRefStateStorage;
|
||||
|
||||
/*!
|
||||
* Vector containing the species reference enthalpies at T = m_tlast
|
||||
* and P = p_ref.
|
||||
*/
|
||||
//! Vector containing the species reference enthalpies at T = m_tlast
|
||||
//! and P = p_ref.
|
||||
mutable vector_fp m_h0_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference constant pressure
|
||||
* heat capacities at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
//! Vector containing the species reference constant pressure heat
|
||||
//! capacities at T = m_tlast and P = p_ref.
|
||||
mutable vector_fp m_cp0_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference Gibbs functions
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
//! Vector containing the species reference Gibbs functions at T = m_tlast
|
||||
//! and P = p_ref.
|
||||
mutable vector_fp m_g0_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species reference entropies
|
||||
* at T = m_tlast and P = p_ref.
|
||||
*/
|
||||
//! Vector containing the species reference entropies at T = m_tlast
|
||||
//! and P = p_ref.
|
||||
mutable vector_fp m_s0_R;
|
||||
|
||||
//! Vector containing the species reference molar volumes
|
||||
mutable vector_fp m_V0;
|
||||
|
||||
/*!
|
||||
* boolean indicating whether temporary standard state storage is used
|
||||
* -> default is false
|
||||
*/
|
||||
//! boolean indicating whether temporary standard state storage is used ->
|
||||
//! default is false
|
||||
bool m_useTmpStandardStateStorage;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State enthalpies at T = m_tlast
|
||||
* and P = m_plast.
|
||||
*/
|
||||
//! Vector containing the species Standard State enthalpies at T = m_tlast
|
||||
//! and P = m_plast.
|
||||
mutable vector_fp m_hss_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State constant pressure
|
||||
* heat capacities at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
//! Vector containing the species Standard State constant pressure heat
|
||||
//! capacities at T = m_tlast and P = m_plast.
|
||||
mutable vector_fp m_cpss_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State Gibbs functions
|
||||
* at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
//! Vector containing the species Standard State Gibbs functions at T =
|
||||
//! m_tlast and P = m_plast.
|
||||
mutable vector_fp m_gss_RT;
|
||||
|
||||
/**
|
||||
* Vector containing the species Standard State entropies
|
||||
* at T = m_tlast and P = m_plast.
|
||||
*/
|
||||
//! Vector containing the species Standard State entropies at T = m_tlast
|
||||
//! and P = m_plast.
|
||||
mutable vector_fp m_sss_R;
|
||||
|
||||
/**
|
||||
* Vector containing the species standard state volumes
|
||||
* at T = m_tlast and P = m_plast
|
||||
*/
|
||||
//! Vector containing the species standard state volumes at T = m_tlast and
|
||||
//! P = m_plast
|
||||
mutable vector_fp m_Vss;
|
||||
|
||||
//! species reference enthalpies - used by individual PDSS objects
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ namespace Cantera
|
|||
{
|
||||
//! Constant Molar Volume e VPSS species thermo manager class
|
||||
/*!
|
||||
* The calculation of multiple-species thermodynamic
|
||||
* property managers for variable temperature and pressure standard
|
||||
* states assuming a constant partial molar volume assumption.
|
||||
* The calculation of multiple-species thermodynamic property managers for
|
||||
* variable temperature and pressure standard states assuming a constant partial
|
||||
* molar volume assumption.
|
||||
*
|
||||
* @ingroup mgrpdssthermocalc
|
||||
*/
|
||||
|
|
@ -40,12 +40,8 @@ public:
|
|||
*/
|
||||
VPSSMgr_ConstVol(VPStandardStateTP* vp_ptr, SpeciesThermo* spth);
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr_ConstVol(const VPSSMgr_ConstVol& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr_ConstVol& operator=(const VPSSMgr_ConstVol& right);
|
||||
|
||||
virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
|
||||
|
||||
/*!
|
||||
|
|
|
|||
|
|
@ -43,12 +43,8 @@ public:
|
|||
VPSSMgr_General(VPStandardStateTP* vp_ptr,
|
||||
SpeciesThermo* spth);
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr_General(const VPSSMgr_General& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr_General& operator=(const VPSSMgr_General& right);
|
||||
|
||||
virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -30,12 +30,8 @@ public:
|
|||
*/
|
||||
VPSSMgr_IdealGas(VPStandardStateTP* vp_ptr, SpeciesThermo* spth);
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr_IdealGas(const VPSSMgr_IdealGas& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr_IdealGas& operator=(const VPSSMgr_IdealGas& right);
|
||||
|
||||
virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
|
||||
|
||||
/*! @name Properties of the Standard State of the Species in the Solution
|
||||
|
|
|
|||
|
|
@ -37,12 +37,8 @@ public:
|
|||
*/
|
||||
VPSSMgr_Water_ConstVol(VPStandardStateTP* vp_ptr, SpeciesThermo* sp_ptr);
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr_Water_ConstVol(const VPSSMgr_Water_ConstVol& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr_Water_ConstVol& operator=(const VPSSMgr_Water_ConstVol& right);
|
||||
|
||||
virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -37,12 +37,8 @@ public:
|
|||
VPSSMgr_Water_HKFT(VPStandardStateTP* vptp_ptr,
|
||||
SpeciesThermo* spth);
|
||||
|
||||
//! Copy Constructor
|
||||
VPSSMgr_Water_HKFT(const VPSSMgr_Water_HKFT& right);
|
||||
|
||||
//! Assignment operator
|
||||
VPSSMgr_Water_HKFT& operator=(const VPSSMgr_Water_HKFT& right);
|
||||
|
||||
virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
|
||||
|
||||
/*! @name Thermodynamic Values for the Species Reference States
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue