Cantera  2.3.0
VPSSMgr_ConstVol.h
Go to the documentation of this file.
1 /**
2  * @file VPSSMgr_ConstVol.h
3  * Declarations for a derived class for the calculation of multiple-species thermodynamic
4  * property managers for variable temperature and pressure standard
5  * states assuming constant volume (see class
6  * \link Cantera::VPSSMgr_ConstVol VPSSMgr_ConstVol \endlink).
7  */
8 
9 // This file is part of Cantera. See License.txt in the top-level directory or
10 // at http://www.cantera.org/license.txt for license and copyright information.
11 
12 #ifndef CT_VPSSMGR_CONSTVOL_H
13 #define CT_VPSSMGR_CONSTVOL_H
14 
15 #include "VPSSMgr.h"
16 
17 namespace Cantera
18 {
19 //! Constant Molar Volume e VPSS species thermo manager class
20 /*!
21  * The calculation of multiple-species thermodynamic property managers for
22  * variable temperature and pressure standard states assuming a constant partial
23  * molar volume assumption.
24  *
25  * @ingroup mgrpdssthermocalc
26  */
27 class VPSSMgr_ConstVol : public VPSSMgr
28 {
29 public:
30  //! Constructor
31  /*!
32  * @param vp_ptr Pointer to the owning VPStandardStateTP object for the
33  * phase.
34  * @param spth Pointer to the MultiSpeciesThermo object for the phase.
35  */
37 
38  VPSSMgr_ConstVol(const VPSSMgr_ConstVol& right);
39  VPSSMgr_ConstVol& operator=(const VPSSMgr_ConstVol& right);
40  virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
41 
42  /*!
43  * @name Properties of the Standard State of the Species in the Solution
44  *
45  * Within VPStandardStateTP, these properties are calculated via a common
46  * routine, _updateStandardStateThermo(), which must be overloaded in
47  * inherited objects. The values are cached within this object, and are
48  * not recalculated unless the temperature or pressure changes.
49  */
50  //@{
51 
52 protected:
53  virtual void _updateStandardStateThermo();
54 
55  //@}
56  /*! @name Thermodynamic Values for the Species Reference States
57  *
58  * There are also temporary variables for holding the species reference-
59  * state values of Cp, H, S, and V at the last temperature and reference
60  * pressure called. These functions are not recalculated if a new call is
61  * made using the previous temperature. All calculations are done within
62  * the routine _updateRefStateThermo(). _updateRefStateThermo() is
63  * defined in the parent object.
64  */
65  //@{
66 
67  virtual void getGibbs_RT_ref(doublereal* grt) const;
68  virtual void getStandardVolumes_ref(doublereal* vol) const;
69 
70  //@}
71  /*! @name Initialization Methods - For Internal use
72  * The following methods are used in the process of constructing
73  * the phase and setting its parameters from a specification in an
74  * input file. They are not normally seen by application programs
75  */
76  //@{
77 
78 public:
79  virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
80 
81  //! Create and install a constant volume pressure dependent
82  //! standard state for one species within this object
83  /*!
84  * This function sets up the internal data within this object for
85  * handling the calculation of the standard state for the species.
86  *
87  * - It registers the species with the MultiSpeciesThermo object for the
88  * containing VPStandardStateTP phase.
89  * - It grabs the molar volume property and installs its value within
90  * this object.
91  * - It also creates a PDSS object, which basically contains a
92  * duplication of some of this information and returns a pointer to
93  * the new object.
94  *
95  * @param k Species index within the phase
96  * @param speciesNode Reference to the species node in the XML tree
97  * @param phaseNode_ptr Pointer to the phase node in the XML tree
98  * @return A pointer to the a newly created PDSS object containing the
99  * parameterization
100  */
101  virtual PDSS* createInstallPDSS(size_t k, const XML_Node& speciesNode,
102  const XML_Node* const phaseNode_ptr);
103  //@}
104 
105  virtual PDSS_enumType reportPDSSType(int index = -1) const;
106  virtual VPSSMgr_enumType reportVPSSMgrType() const;
107 };
108 
109 }
110 
111 #endif
Virtual base class for the classes that manage the calculation of standard state properties for all t...
Definition: VPSSMgr.h:228
Declaration file for a virtual base class that manages the calculation of standard state properties f...
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:97
virtual void getGibbs_RT_ref(doublereal *grt) const
virtual PDSS * createInstallPDSS(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr)
Create and install a constant volume pressure dependent standard state for one species within this ob...
Constant Molar Volume e VPSS species thermo manager class.
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
VPSSMgr_enumType
enum for VPSSMgr types that are responsible for calculating the species standard state and reference-...
Definition: mix_defs.h:119
virtual void getStandardVolumes_ref(doublereal *vol) const
Get the molar volumes of the species reference states at the current T and P_ref of the solution...
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.
PDSS_enumType
Types of PDSS's.
Definition: mix_defs.h:105
virtual PDSS_enumType reportPDSSType(int index=-1) const
This utility function reports the type of parameterization used for the species with index number ind...
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
VPSSMgr_ConstVol(VPStandardStateTP *vp_ptr, MultiSpeciesThermo *spth)
Constructor.
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.
Virtual base class for a species with a pressure dependent standard state.
Definition: PDSS.h:176
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.
A species thermodynamic property manager for a phase.
Namespace for the Cantera kernel.
Definition: application.cpp:29