10 #ifndef THERMO_FACTORY_H
11 #define THERMO_FACTORY_H
21 class SpeciesThermoFactory;
46 const std::string& thermoModel) :
49 " does not match any known type.") {}
119 return f->newThermoPhase(model);
148 ThermoPhase*
newPhase(XML_Node& phase);
164 ThermoPhase*
newPhase(
const std::string& infile, std::string
id=
"");
235 bool importPhase(XML_Node& phase, ThermoPhase* th, SpeciesThermoFactory* spfactory = 0);
283 SpeciesThermo* spthermo_ptr,
int rule,
284 XML_Node* phaseNode_ptr = 0,
285 VPSSMgr* vpss_ptr = 0,
286 SpeciesThermoFactory* factory = 0);
302 const XML_Node* phaseSpeciesData);
Specific error to be thrown if the type of Thermo manager is unrecognized.
virtual void deleteFactory()
delete the static instance of this factory
std::string eosTypeString(int ieos, int length)
Translate the eosType id into a string.
bool installSpecies(size_t k, const XML_Node &s, thermo_t &th, SpeciesThermo *spthermo_ptr, int rule, XML_Node *phaseNode_ptr, VPSSMgr *vpss_ptr, SpeciesThermoFactory *factory)
Install a species into a ThermoPhase object, which defines the phase thermodynamics and speciation...
static mutex_t thermo_mutex
Decl for locking mutex for thermo factory singleton.
static ThermoFactory * factory()
Static function that creates a static instance of the factory.
Base class for factories.
const XML_Node * speciesXML_Node(const std::string &kname, const XML_Node *phaseSpeciesData)
Search an XML tree for species data.
UnknownThermoPhaseModel(const std::string &proc, const std::string &thermoModel)
Constructor.
Factory class for thermodynamic property managers.
ThermoPhase thermo_t
typedef for the ThermoPhase class
Base class for a phase with thermodynamic properties.
bool importPhase(XML_Node &phase, ThermoPhase *th, SpeciesThermoFactory *spfactory)
Import a phase information into an empty ThermoPhase object.
virtual ThermoPhase * newThermoPhase(const std::string &model)
Create a new thermodynamic property manager.
Classes providing support for XML data files.
Base class for exceptions thrown by Cantera classes.
static ThermoFactory * s_factory
static member of a single instance
ThermoPhase * newThermoPhase(const std::string &model, ThermoFactory *f=0)
Create a new thermo manager instance.
void installElements(Phase &th, const XML_Node &phaseNode)
Add the elements given in an XML_Node tree to the specified phase.
ThermoFactory()
Private constructors prevents usage.
Header file for class ThermoPhase, the base class for phases with thermodynamic properties, and the text for the Module thermoprops (see Thermodynamic Properties and class ThermoPhase).
File contains the FactoryBase class declarations.