54 Info<<
"Creating component thermo properties:" <<
endl;
56 if (isA<basicSpecieMixture>(thermo))
63 <<
" species" <<
endl;
67 Info<<
" single component carrier" <<
endl;
70 if (thermo.
found(
"liquids"))
73 Info<<
" liquids - " << liquids_->components().size()
74 <<
" components" <<
endl;
78 Info<<
" no liquid components" <<
endl;
81 if (thermo.
found(
"solids"))
84 Info<<
" solids - " << solids_->components().size()
85 <<
" components" <<
endl;
89 Info<<
" no solid components" <<
endl;
110 if (carrier_ == NULL)
113 <<
"carrier requested, but object is not allocated" 123 if (!liquids_.valid())
126 <<
"liquids requested, but object is not allocated" 136 if (!solids_.valid())
139 <<
"solids requested, but object is not allocated" 149 const word& cmptName,
155 if (cmptName == carrier_->
species()[i])
164 <<
"Unknown carrier component " << cmptName
165 <<
". Valid carrier components are:" <<
nl 175 const word& cmptName,
181 if (cmptName == liquids_->components()[i])
190 <<
"Unknown liquid component " << cmptName <<
". Valid liquids are:" 200 const word& cmptName,
206 if (cmptName == solids_->components()[i])
215 <<
"Unknown solid component " << cmptName <<
". Valid solids are:" 225 return (carrier_ != NULL);
231 return liquids_.valid();
237 return solids_.valid();
label liquidId(const word &cmptName, bool allowNotFound=false) const
Index of liquid component.
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
virtual ~SLGThermo()
Destructor.
void size(const label)
Override size to be inconsistent with allocated storage.
bool hasSolids() const
Thermo database has solid components flag.
const dictionary & subDict(const word &) const
Find and return a sub-dictionary.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool hasLiquids() const
Thermo database has liquid components flag.
Specialization of basicMultiComponentMixture for a mixture consisting of a number for molecular speci...
label solidId(const word &cmptName, bool allowNotFound=false) const
Index of solid component.
static autoPtr< liquidMixtureProperties > New(const dictionary &)
Select construct from dictionary.
A class for handling words, derived from string.
Fundamental fluid thermodynamic properties.
bool found(const word &, bool recursive=false, bool patternMatch=true) const
Search dictionary for given keyword.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
const solidMixtureProperties & solids() const
Return reference to the global (additional) solids.
bool hasMultiComponentCarrier() const
Thermo database has multi-component carrier flag.
const liquidMixtureProperties & liquids() const
Return reference to the global (additional) liquids.
errorManip< error > abort(error &err)
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
defineTypeNameAndDebug(combustionModel, 0)
label carrierId(const word &cmptName, bool allowNotFound=false) const
Index of carrier component.
Mesh data needed to do the Finite Volume discretisation.
const basicSpecieMixture & carrier() const
Return reference to the gaseous components.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
const speciesTable & species() const
Return the table of species.
Mesh consisting of general polyhedral cells.
static autoPtr< solidMixtureProperties > New(const dictionary &)
Select construct from dictionary.
SLGThermo(const fvMesh &mesh, fluidThermo &thermo)
Construct from mesh.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const fluidThermo & thermo() const
Return reference to the thermo database.