57 Info<<
"Creating component thermo properties:" <<
endl;
66 <<
" species" <<
endl;
70 Info<<
" single component carrier" <<
endl;
73 if (
thermo.found(
"liquids"))
75 liquids_ = liquidMixtureProperties::New(thermo.subDict(
"liquids"));
76 Info<<
" liquids - " << liquids_->components().size()
77 <<
" components" << endl;
81 Info<<
" no liquid components" << endl;
86 solids_ = solidMixtureProperties::New(thermo.subDict(
"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_);
if(maxValue - minValue< SMALL)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
const fileName & instance() const noexcept
Read access to instance path component.
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.
SLGThermo(const fvMesh &mesh, fluidThermo &thermo)
Construct from mesh.
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.
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...
regIOobject(const IOobject &io, const bool isTimeObject=false)
Construct from IOobject. The optional flag adds special handling if the object is the top-level regIO...
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).
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
Ostream & endl(Ostream &os)
Add newline and flush stream.
const Type * isA(const U &obj)
Attempt dynamic_cast to Type.
errorManip< error > abort(error &err)
error FatalError
Error stream (stdout output on all processes), with additional 'FOAM FATAL ERROR' header text and sta...
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.