Cantera
2.1.2
|
Factory to build instances of classes that manage the standard-state thermodynamic properties of a set of species. More...
#include <SpeciesThermoFactory.h>
Public Member Functions | |
void | deleteFactory () |
Delete static instance of this class. More... | |
SpeciesThermo * | newSpeciesThermo (int type) const |
Create a new species property manager for the reference state. More... | |
SpeciesThermo * | newSpeciesThermoManager (std::string &stype) const |
Create a new species thermo property manager given a string. More... | |
SpeciesThermo * | newSpeciesThermo (std::vector< XML_Node * > &spDataNodeList) const |
Create a new species property manager for the reference state for a group of species. More... | |
void | installThermoForSpecies (size_t k, const XML_Node &speciesNode, ThermoPhase *th_ptr, SpeciesThermo &spthermo, const XML_Node *phaseNode_ptr=0) const |
Install a species thermodynamic property parameterization for the reference state for one species into a species thermo manager. More... | |
void | installVPThermoForSpecies (size_t k, const XML_Node &speciesNode, VPStandardStateTP *vp_ptr, VPSSMgr *vpss_ptr, SpeciesThermo *spthermo_ptr, const XML_Node *phaseNode_ptr) const |
Install a species thermodynamic property parameterization for the standard state for one species into a species thermo manager, VPSSMgr. More... | |
Public Member Functions inherited from FactoryBase | |
virtual | ~FactoryBase () |
destructor More... | |
Static Public Member Functions | |
static SpeciesThermoFactory * | factory () |
Static method to return an instance of this class. More... | |
Static Public Member Functions inherited from FactoryBase | |
static void | deleteFactories () |
static function that deletes all factories in the internal registry maintained in a static variable More... | |
Private Member Functions | |
SpeciesThermoFactory () | |
Constructor. More... | |
Static Private Attributes | |
static SpeciesThermoFactory * | s_factory = 0 |
Pointer to the sole instance of this class, which is static. More... | |
static mutex_t | species_thermo_mutex |
Decl of the static mutex variable that locks the SpeciesThermo factory singleton. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from FactoryBase | |
FactoryBase () | |
Constructor. More... | |
Factory to build instances of classes that manage the standard-state thermodynamic properties of a set of species.
This class is responsible for making the decision concerning which derivative of SpeciesThermo object to use. The SpeciesThermo object is used to calculate thermodynamic functions for the reference state. It queries the database of species to understand what the requirements are for the submodels for all of the species in the phase. Then, it picks the SpeciesThermo object to use, and passes it back to the calling routine. It doesn't load any of the data into the derived SpeciesThermo object.
Making the choice of SpeciesThermo types is the only thing this class does.
This class is implemented as a singleton – one in which only one instance is needed. The recommended way to access the factory is to call this static method, which instantiates the class if it is the first call, but otherwise simply returns the pointer to the existing instance.
Definition at line 74 of file SpeciesThermoFactory.h.
|
inlineprivate |
Constructor.
This is made private, so that only the static method factory() can instantiate the class.
Definition at line 177 of file SpeciesThermoFactory.h.
|
static |
Static method to return an instance of this class.
This class is implemented as a singleton – one in which only one instance is needed. The recommended way to access the factory is to call this static method, which instantiates the class if it is the first call, but otherwise simply returns the pointer to the existing instance.
Definition at line 112 of file SpeciesThermoFactory.cpp.
Referenced by VPSSMgr_IdealGas::createInstallPDSS(), LatticeSolidPhase::installSlavePhases(), and VPSSMgr::installSTSpecies().
|
virtual |
Delete static instance of this class.
If it is necessary to explicitly delete the factory before the process terminates (for example, when checking for memory leaks) then this method can be called to delete it.
Implements FactoryBase.
Definition at line 121 of file SpeciesThermoFactory.cpp.
SpeciesThermo * newSpeciesThermo | ( | int | type | ) | const |
Create a new species property manager for the reference state.
type | the integer type to be created. |
Definition at line 147 of file SpeciesThermoFactory.cpp.
References NASA, SHOMATE, and SIMPLE.
Referenced by Cantera::newSpeciesThermoMgr().
SpeciesThermo * newSpeciesThermoManager | ( | std::string & | stype | ) | const |
Create a new species thermo property manager given a string.
stype | String name for the species thermo type |
Definition at line 169 of file SpeciesThermoFactory.cpp.
References Cantera::lowercase().
Referenced by Cantera::newSpeciesThermoMgr().
SpeciesThermo * newSpeciesThermo | ( | std::vector< XML_Node * > & | spDataNodeList | ) | const |
Create a new species property manager for the reference state for a group of species.
This routine will look through species nodes. It will discover what each species needs for its species property managers. Then, it will malloc and return the proper species property manager to use.
spDataNodeList | This vector contains a list of species XML nodes that will be in the phase |
Definition at line 130 of file SpeciesThermoFactory.cpp.
References Cantera::getSpeciesThermoTypes(), NASA, Cantera::popError(), SHOMATE, and SIMPLE.
void installThermoForSpecies | ( | size_t | k, |
const XML_Node & | speciesNode, | ||
ThermoPhase * | th_ptr, | ||
SpeciesThermo & | spthermo, | ||
const XML_Node * | phaseNode_ptr = 0 |
||
) | const |
Install a species thermodynamic property parameterization for the reference state for one species into a species thermo manager.
k | Species number |
speciesNode | Reference to the XML node specifying the species standard state information |
th_ptr | Pointer to the ThermoPhase object for the species |
spthermo | Species reference state thermo manager |
phaseNode_ptr | Optional pointer to the XML phase information for the phase in which the species resides |
Definition at line 673 of file SpeciesThermoFactory.cpp.
References XML_Node::child(), XML_Node::children(), XML_Node::hasChild(), Cantera::installAdsorbateThermoFromXML(), Cantera::installMinEQ3asShomateThermoFromXML(), Cantera::installMu0ThermoFromXML(), Cantera::installNasa9ThermoFromXML(), Cantera::installNasaThermoFromXML(), Cantera::installShomateThermoFromXML(), Cantera::installSimpleThermoFromXML(), Cantera::installStatMechThermoFromXML(), and XML_Node::name().
Referenced by VPSSMgr_IdealGas::createInstallPDSS(), LatticeSolidPhase::installSlavePhases(), Cantera::installSpecies(), and VPSSMgr::installSTSpecies().
void installVPThermoForSpecies | ( | size_t | k, |
const XML_Node & | speciesNode, | ||
VPStandardStateTP * | vp_ptr, | ||
VPSSMgr * | vpss_ptr, | ||
SpeciesThermo * | spthermo_ptr, | ||
const XML_Node * | phaseNode_ptr | ||
) | const |
Install a species thermodynamic property parameterization for the standard state for one species into a species thermo manager, VPSSMgr.
This is a wrapper around the createInstallVPSS() function in the VPStandardStateTP object.
This serves to install the species into vpss_ptr, create a PDSS file. We also read the xml database to extract the constants for these steps.
k | species number |
speciesNode | Reference to the XML node specifying the species standard state information |
vp_ptr | variable pressure ThermoPhase object |
vpss_ptr | Pointer to the Manager for calculating variable pressure substances. |
spthermo_ptr | Species reference state thermo manager |
phaseNode_ptr | Optional Pointer to the XML phase information for the phase in which the species resides |
Definition at line 760 of file SpeciesThermoFactory.cpp.
Referenced by Cantera::installSpecies().
|
staticprivate |
Pointer to the sole instance of this class, which is static.
Definition at line 170 of file SpeciesThermoFactory.h.
|
staticprivate |
Decl of the static mutex variable that locks the SpeciesThermo factory singleton.
Definition at line 173 of file SpeciesThermoFactory.h.