Cantera  2.1.2
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  * Copyright (2005) Sandia Corporation. Under the terms of
10  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
11  * U.S. Government retains certain rights in this software.
12  */
13 
14 #ifndef CT_VPSSMGR_CONSTVOL_H
15 #define CT_VPSSMGR_CONSTVOL_H
16 
17 #include "cantera/base/ct_defs.h"
18 #include "VPSSMgr.h"
19 
20 namespace Cantera
21 {
22 
23 class SpeciesThermoInterpType;
24 class PDSS;
25 
26 //! Constant Molar Volume e VPSS species thermo manager class
27 /*!
28  * The calculation of multiple-species thermodynamic
29  * property managers for variable temperature and pressure standard
30  * states assuming a constant partial molar volume assumption.
31  *
32  * @ingroup mgrpdssthermocalc
33  */
34 class VPSSMgr_ConstVol : public VPSSMgr
35 {
36 
37 public:
38 
39  //! Constructor
40  /*!
41  * @param vp_ptr Pointer to the owning VPStandardStateTP object
42  * for the phase. It's a requirement that this be
43  * already malloced.
44  * @param spth Pointer to the SpeciesThermo object for the
45  * phase. It's a requirement that this be already
46  * malloced.
47  */
49 
50  //! Copy Constructor
51  VPSSMgr_ConstVol(const VPSSMgr_ConstVol& right);
52 
53  //! Assignment operator
55 
56  virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
57 
58  /*!
59  * @name Properties of the Standard State of the Species in the Solution
60  *
61  * Within VPStandardStateTP, these properties are calculated via a common
62  * routine, _updateStandardStateThermo(), which must be overloaded in
63  * inherited objects. The values are cached within this object, and are
64  * not recalculated unless the temperature or pressure changes.
65  */
66  //@{
67 
68 protected:
69 
70  virtual void _updateStandardStateThermo();
71 
72  //@}
73  /*! @name Thermodynamic Values for the Species Reference States
74  *
75  * There are also temporary variables for holding the species reference-
76  * state values of Cp, H, S, and V at the last temperature and reference
77  * pressure called. These functions are not recalculated if a new call is
78  * made using the previous temperature. All calculations are done within
79  * the routine _updateRefStateThermo(). _updateRefStateThermo() is
80  * defined in the parent object.
81  */
82  //@{
83 
84  virtual void getGibbs_RT_ref(doublereal* grt) const ;
85  virtual void getStandardVolumes_ref(doublereal* vol) const ;
86 
87  //@}
88  /*! @name Initialization Methods - For Internal use
89  * The following methods are used in the process of constructing
90  * the phase and setting its parameters from a specification in an
91  * input file. They are not normally seen by application programs
92  */
93  //@{
94 
95 public:
96  virtual void initThermo();
97  virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
98 
99  //! Create and install a constant volume pressure dependent
100  //! standard state for one species within this object
101  /*!
102  * This function sets up the internal data within this object for
103  * handling the calculation of the standard state for the species.
104  *
105  * - It registers the species with the SpeciesThermo object for the
106  * containing VPStandardStateTP phase.
107  * - It grabs the molar volume property and installs its value within
108  * this object.
109  * - It also creates a PDSS object, which basically contains a
110  * duplication of some of this information and returns a pointer to
111  * the new object.
112  *
113  * @param k Species index within the phase
114  * @param speciesNode Reference to the species node in the XML tree
115  * @param phaseNode_ptr Pointer to the phase node in the XML tree
116  * @return Returns a pointer to the a newly malloced PDSS object
117  * containing the parameterization
118  */
119  virtual PDSS* createInstallPDSS(size_t k, const XML_Node& speciesNode,
120  const XML_Node* const phaseNode_ptr);
121  //@}
122 
123  virtual PDSS_enumType reportPDSSType(int index = -1) const ;
124  virtual VPSSMgr_enumType reportVPSSMgrType() const ;
125 };
126 
127 }
128 
129 #endif
virtual PDSS_enumType reportPDSSType(int index=-1) const
This utility function reports the type of parameterization used for the species with index number ind...
Virtual base class for the classes that manage the calculation of standard state properties for all t...
Definition: VPSSMgr.h:238
Declaration file for a virtual base class that manages the calculation of standard state properties f...
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...
VPSSMgr_ConstVol & operator=(const VPSSMgr_ConstVol &right)
Assignment operator.
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:100
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
VPSSMgr_ConstVol(VPStandardStateTP *vp_ptr, SpeciesThermo *spth)
Constructor.
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.
Pure Virtual base class for the species thermo manager classes.
VPSSMgr_enumType
enum for VPSSMgr types that are responsible for calculating the species standard state and reference-...
Definition: mix_defs.h:133
virtual void getGibbs_RT_ref(doublereal *grt) const
PDSS_enumType
Types of PDSS's.
Definition: mix_defs.h:119
This is a filter class for ThermoPhase that implements some prepatory steps for efficiently handling ...
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.
Virtual base class for a species with a pressure dependent standard state.
Definition: PDSS.h:195
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.