8 #ifndef CT_TRANSPORTFACTORY_H
9 #define CT_TRANSPORTFACTORY_H
24 class GasTransportParams;
25 class LiquidTransportParams;
199 XML_Node& log,
const std::vector<std::string>& names,
220 XML_Node& log,
const std::vector<std::string>& names,
253 const std::string phaseName,
282 std::ostream& logfile);
309 void setupMM(std::ostream& flog,
const std::vector<const XML_Node*> &transport_database,
357 size_t j, doublereal xk, doublereal xj,
358 doublereal& fkj, doublereal& fjk);
375 doublereal& f_sigma);
TransportPropertyType
Enumeration of the types of transport properties that can be handled by the variables in the various ...
This structure holds transport model parameters relevant to transport in ideal gases with a kinetic t...
void getTransportData(const std::vector< const XML_Node * > &xspecies, XML_Node &log, const std::vector< std::string > &names, GasTransportParams &tr)
Read the transport database.
virtual Transport * newTransport(const std::string &model, thermo_t *thermo, int log_level=0, int ndim=1)
Build a new transport manager using a transport manager that may not be the same as in the phase desc...
Factory class for creating new instances of classes derived from Transport.
void getSolidTransportData(const XML_Node &transportNode, XML_Node &log, const std::string phaseName, SolidTransportData &tr)
Read transport property data from a file for a solid phase.
Headers for the Transport object, which is the virtual base class for all transport property evaluato...
Transport * newTransportMgr(const std::string &transportModel, thermo_t *thermo, int loglevel, TransportFactory *f, int ndim)
Create a new transport manager instance.
Class XML_Node is a tree-based representation of the contents of an XML file.
This file contains definitions of terms that are used in internal routines and are unlikely to need m...
Header file defining class SolidTransportData.
Base class for transport property managers.
void fitProperties(GasTransportParams &tr, MMCollisionInt &integrals, std::ostream &logfile)
Generate polynomial fits to the viscosity, conductivity, and the binary diffusion coefficients...
std::map< int, std::string > m_modelNames
Inverse mapping of transport models, from integer constant to string.
Base class for factories.
void getLiquidSpeciesTransportData(const std::vector< const XML_Node * > &db, XML_Node &log, const std::vector< std::string > &names, LiquidTransportParams &tr)
Read transport property data from a file for a list of species that comprise the phase.
virtual void initTransport(Transport *tr, thermo_t *thermo, int mode=0, int log_level=0)
Initialize an existing transport manager.
static TransportFactory * s_factory
Static instance of the factor -> This is the only instance of this object allowed.
Base class for a phase with thermodynamic properties.
static std::string modelName(int model)
Get the name of the transport model corresponding to the specified constant.
Class LiquidTransportParams holds transport model parameters relevant to transport in mixtures...
void getLiquidInteractionsTransportData(const XML_Node &phaseTran_db, XML_Node &log, const std::vector< std::string > &names, LiquidTransportParams &tr)
Read transport property data from a file for interactions between species.
void getBinDiffCorrection(doublereal t, const GasTransportParams &tr, MMCollisionInt &integrals, size_t k, size_t j, doublereal xk, doublereal xj, doublereal &fkj, doublereal &fjk)
Second-order correction to the binary diffusion coefficients.
Header file defining class LiquidTransportParams.
TransportFactory()
The constructor is private; use static method factory() to get a pointer to a factory instance...
std::map< std::string, TransportPropertyType > m_tranPropMap
Mapping between between the string name for a transport property and the integer name.
void setupSolidTransport(std::ostream &flog, thermo_t *thermo, int log_level, SolidTransportData &trParam)
Prepare to build a new transport manager for solids.
std::map< std::string, LiquidTranMixingModel > m_LTImodelMap
Mapping between between the string name for a liquid mixture transport property model and the integer...
virtual LiquidTranInteraction * newLTI(const XML_Node &trNode, TransportPropertyType tp_ind, LiquidTransportParams &trParam)
Factory function for the construction of new LiquidTranInteraction objects, which are transport model...
std::map< std::string, int > m_models
Mapping between between the string name for a transport model and the integer name.
void setupMM(std::ostream &flog, const std::vector< const XML_Node * > &transport_database, thermo_t *thermo, int mode, int log_level, GasTransportParams &tr)
Prepare to build a new kinetic-theory-based transport manager for low-density gases.
bool m_verbose
Boolean indicating whether to turn on verbose printing.
Class LTPspecies holds transport parameters for a specific liquid-phase species.
static TransportFactory * factory()
Return a pointer to a TransportFactory instance.
void makePolarCorrections(size_t i, size_t j, const GasTransportParams &tr, doublereal &f_eps, doublereal &f_sigma)
Corrections for polar-nonpolar binary diffusion coefficients.
virtual void initLiquidTransport(Transport *tr, thermo_t *thermo, int log_level=0)
Initialize an existing transport manager for liquid phase.
std::map< std::string, LTPTemperatureDependenceType > m_LTRmodelMap
Mapping between between the string name for a species-specific transport property model and the integ...
void setupLiquidTransport(std::ostream &flog, thermo_t *thermo, int log_level, LiquidTransportParams &trParam)
Prepare to build a new transport manager for liquids assuming that viscosity transport data is provid...
Calculation of Collision integrals.
void fitCollisionIntegrals(std::ostream &logfile, GasTransportParams &tr, MMCollisionInt &integrals)
Generate polynomial fits to collision integrals.
virtual LTPspecies * newLTP(const XML_Node &trNode, const std::string &name, TransportPropertyType tp_ind, thermo_t *thermo)
Make one of several transport models, and return a base class pointer to it.
Transport * newDefaultTransportMgr(thermo_t *thermo, int loglevel, TransportFactory *f)
Create a new transport manager instance.
virtual void initSolidTransport(Transport *tr, thermo_t *thermo, int log_level=0)
Initialize an existing transport manager for solid phase.
static mutex_t transport_mutex
Static instance of the mutex used to ensure the proper reading of the transport database.
virtual void deleteFactory()
Deletes the statically allocated factory instance.
Class SolidTransportData holds transport parameters for a specific solid-phase species.
Base class to handle transport property evaluation in a mixture.
File contains the FactoryBase class declarations.