Cantera  2.1.2
VPSSMgr_IdealGas.h
Go to the documentation of this file.
1 /**
2  * @file VPSSMgr_IdealGas.h
3  * Declaration file for a derived class that handles the calculation
4  * of standard state thermo properties for
5  * a set of species which have an Ideal Gas dependence
6  * (see \ref mgrpdssthermocalc and
7  * class \link Cantera::VPSSMgr_IdealGas VPSSMgr_IdealGas\endlink).
8  */
9 /*
10  * Copyright (2005) Sandia Corporation. Under the terms of
11  * Contract DE-AC04-94AL85000 with Sandia Corporation, the
12  * U.S. Government retains certain rights in this software.
13  */
14 
15 #ifndef CT_VPSSMGR_IDEALGAS_H
16 #define CT_VPSSMGR_IDEALGAS_H
17 
18 #include "cantera/base/ct_defs.h"
19 #include "PDSS.h"
20 #include "VPSSMgr.h"
21 
22 namespace Cantera
23 {
24 
25 class SpeciesThermoInterpType;
26 class VPStandardStateTP;
27 class SpeciesThermo;
28 
29 
30 //! A VPSSMgr where all species in the phase obey an ideal gas equation of state
31 class VPSSMgr_IdealGas : public VPSSMgr
32 {
33 public:
34  //! Basic constructor that initializes the object
35  /*!
36  * @param vp_ptr Pointer to the owning ThermoPhase
37  * @param spth Species thermo pointer.
38  */
40 
41  //! Copy Constructor
42  VPSSMgr_IdealGas(const VPSSMgr_IdealGas& right);
43 
44  //! Assignment operator
46 
47  virtual VPSSMgr* duplMyselfAsVPSSMgr() const;
48 
49  /*! @name Properties of the Standard State of the Species in the Solution
50  * Within VPStandardStateTP, these properties are calculated via a common
51  * routine, _updateStandardStateThermo(), which must be overloaded in
52  * inherited objects. The values are cached within this object, and are
53  * not recalculated unless the temperature or pressure changes.
54  */
55  //@{
56  virtual void getIntEnergy_RT(doublereal* urt) const;
57  virtual void getStandardVolumes(doublereal* vol) const;
58  //@}
59 
60 protected:
61 
62  virtual void _updateStandardStateThermo();
63 
64 public:
65 
66  /*! @name Initialization Methods - For Internal use
67  * The following methods are used in the process of constructing the phase
68  * and setting its parameters from a specification in an input file. They
69  * are not normally used in application programs. To see how they are
70  * used, see files importCTML.cpp and ThermoFactory.cpp.
71  */
72  //@{
73  virtual void initThermoXML(XML_Node& phaseNode, const std::string& id);
74  //@}
75 
76  //! Create and install an ideal gas standard state manager for one species
77  //! within this object
78  /*!
79  * This function sets up the internal data within this object for
80  * handling the calculation of the standard state for the species.
81  *
82  * - It registers the species with the SpeciesThermo object for the
83  * containing VPStandardStateTP phase.
84  * - It also creates a PDSS object, which basically contains a
85  * duplication of some of this information and returns a pointer to
86  * the new object.
87  * .
88  * @param k Species index within the phase
89  * @param speciesNode Reference to the species node in the XML tree
90  * @param phaseNode_ptr Pointer to the phase node in the XML tree
91  * @return Returns a pointer to the a newly malloced PDSS object
92  * containing the parameterization
93  */
94  virtual PDSS* createInstallPDSS(size_t k, const XML_Node& speciesNode,
95  const XML_Node* const phaseNode_ptr);
96 
97  virtual PDSS_enumType reportPDSSType(int index = -1) const ;
98  virtual VPSSMgr_enumType reportVPSSMgrType() const ;
99 };
100 }
101 
102 #endif
virtual void getStandardVolumes(doublereal *vol) const
Get the molar volumes of each species in their standard states at the current T and P of the solution...
virtual void _updateStandardStateThermo()
Updates the standard state thermodynamic functions at the current T and P of the solution.
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 PDSS * createInstallPDSS(size_t k, const XML_Node &speciesNode, const XML_Node *const phaseNode_ptr)
Create and install an ideal gas standard state manager for one species within this object...
virtual PDSS_enumType reportPDSSType(int index=-1) const
This utility function reports the type of parameterization used for the species with index number ind...
Class XML_Node is a tree-based representation of the contents of an XML file.
Definition: xml.h:100
virtual VPSSMgr_enumType reportVPSSMgrType() const
This utility function reports the type of manager for the calculation of ss properties.
VPSSMgr_IdealGas & operator=(const VPSSMgr_IdealGas &right)
Assignment operator.
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
VPSSMgr_IdealGas(VPStandardStateTP *vp_ptr, SpeciesThermo *spth)
Basic constructor that initializes the object.
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
Declarations for the virtual base class PDSS (pressure dependent standard state) which handles calcul...
virtual void initThermoXML(XML_Node &phaseNode, const std::string &id)
Finalize the thermo after all species have been entered.
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 void getIntEnergy_RT(doublereal *urt) const
Returns the vector of nondimensional internal Energies of the standard state at the current temperatu...
Virtual base class for a species with a pressure dependent standard state.
Definition: PDSS.h:195
A VPSSMgr where all species in the phase obey an ideal gas equation of state.
virtual VPSSMgr * duplMyselfAsVPSSMgr() const
Duplication routine for objects which derive from VPSSMgr.