57 Info<<
"Creating component thermo properties:" <<
endl;
59 if (isA<basicSpecieMixture>(
thermo))
66 <<
" species" <<
endl;
70 Info<<
" single component carrier" <<
endl;
73 if (
thermo.found(
"liquids"))
76 Info<<
" liquids - " << liquids_->components().size()
77 <<
" components" <<
endl;
81 Info<<
" no liquid components" <<
endl;
84 if (
thermo.found(
"solids"))
87 Info<<
" solids - " << solids_->components().size()
88 <<
" components" <<
endl;
92 Info<<
" no solid components" <<
endl;
113 if (carrier_ ==
nullptr)
116 <<
"carrier requested, but object is not allocated"
129 <<
"liquids requested, but object is not allocated"
142 <<
"solids requested, but object is not allocated"
152 const word& cmptName,
156 forAll(carrier().species(), i)
158 if (cmptName == carrier_->species()[i])
167 <<
"Unknown carrier component " << cmptName
168 <<
". Valid carrier components are:" <<
nl
178 const word& cmptName,
182 forAll(liquids().components(), i)
184 if (cmptName == liquids_->components()[i])
193 <<
"Unknown liquid component " << cmptName <<
". Valid liquids are:"
203 const word& cmptName,
207 forAll(solids().components(), i)
209 if (cmptName == solids_->components()[i])
218 <<
"Unknown solid component " << cmptName <<
". Valid solids are:"
228 return (carrier_ !=
nullptr);
234 return bool(liquids_);
240 return bool(solids_);
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
const liquidMixtureProperties & liquids() const
Return reference to the global (additional) liquids.
label solidId(const word &cmptName, bool allowNotFound=false) const
Index of solid component.
label liquidId(const word &cmptName, bool allowNotFound=false) const
Index of liquid component.
const fluidThermo & thermo() const
Return reference to the thermo database.
label carrierId(const word &cmptName, bool allowNotFound=false) const
Index of carrier component.
const basicSpecieMixture & carrier() const
Return reference to the gaseous components.
virtual ~SLGThermo()
Destructor.
bool hasLiquids() const
Thermo database has liquid components flag.
bool hasMultiComponentCarrier() const
Thermo database has multi-component carrier flag.
const solidMixtureProperties & solids() const
Return reference to the global (additional) solids.
bool hasSolids() const
Thermo database has solid components flag.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
void size(const label n)
Older name for setAddressableSize.
const speciesTable & species() const
Return the table of species.
Specialization of basicMultiComponentMixture for a mixture consisting of a number for molecular speci...
Fundamental fluid thermodynamic properties.
Mesh data needed to do the Finite Volume discretisation.
Mesh consisting of general polyhedral cells.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
errorManip< error > abort(error &err)
errorManipArg< error, int > exit(error &err, const int errNo=1)
constexpr char nl
The newline '\n' character (0x0a)
#define forAll(list, i)
Loop across all elements in list.