99 iter != thermos.
end();
105 &(iter()->
he().internalField())
120 const word& thermoName,
131 (endb = thermoName.find(
'<', beg)) != string::npos
132 || (endc = thermoName.find(
',', beg)) != string::npos
135 if (endb == string::npos)
139 else if ((endc = thermoName.find(
',', beg)) != string::npos)
141 end =
min(endb, endc);
150 cmpts[i] = thermoName.substr(beg, end-beg);
151 cmpts[i++].replaceAll(
">",
"");
170 if (beg < thermoName.size())
172 cmpts[i] = thermoName.substr(beg, string::npos);
173 cmpts[i].replaceAll(
">",
"");
182 const word& thermoName
185 const wordList components(splitThermoName(thermoName, 5));
189 {
"transport", components[0]},
190 {
"thermo", components[1]},
191 {
"equationOfState", components[2]},
192 {
"specie", components[3]},
193 {
"energy", components[4]}
208 if (tbf[
patchi].overridesConstraint())
212 else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[
patchi]))
214 const fixedJumpAMIFvPatchScalarField& pf =
215 dynamic_cast<const fixedJumpAMIFvPatchScalarField&
> 220 hbt[
patchi] = pf.interfaceFieldType();
236 if (isA<fixedValueFvPatchScalarField>(tbf[
patchi]))
238 hbt[
patchi] = fixedEnergyFvPatchScalarField::typeName;
242 isA<zeroGradientFvPatchScalarField>(tbf[patchi])
243 || isA<fixedGradientFvPatchScalarField>(tbf[patchi])
244 || isA<gradientEnergyCalculatedTemperatureFvPatchScalarField>
250 hbt[
patchi] = gradientEnergyFvPatchScalarField::typeName;
254 isA<mixedFvPatchScalarField>(tbf[patchi])
255 || isA<mixedEnergyCalculatedTemperatureFvPatchScalarField>
261 hbt[
patchi] = mixedEnergyFvPatchScalarField::typeName;
263 else if (isA<fixedJumpFvPatchScalarField>(tbf[patchi]))
267 else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[patchi]))
282 const word& phaseName
287 phaseName_(phaseName),
293 phasePropertyName(
"T", phaseName),
306 phasePropertyName(
"thermo:kappa", phaseName),
316 dpdt_(lookupOrDefault<Switch>(
"dpdt",
true))
325 const word& phaseName
328 return New<basicThermo>(
mesh, phaseName);
350 if (!(
he().
name() == phasePropertyName(a)))
353 <<
"Supported energy type is " << phasePropertyName(a)
354 <<
", thermodynamics package provides " <<
he().name()
369 he().
name() == phasePropertyName(a)
370 ||
he().
name() == phasePropertyName(b)
375 <<
"Supported energy types are " << phasePropertyName(a)
376 <<
" and " << phasePropertyName(b)
377 <<
", thermodynamics package provides " <<
he().name()
virtual ~basicThermo()
Destructor.
implementation(const fvMesh &, const word &phaseName)
Construct from mesh and phase name.
#define forAll(list, i)
Loop across all elements in list.
Base-class for fluid and solid thermodynamic properties.
errorManipArg< error, int > exit(error &err, const int errNo=1)
static iteratorEnd end()
iteratorEnd set to beyond the end of any HashTable
virtual bool read()
Read object.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
static const char *const typeName
An abstract base class for physical properties.
wordList types() const
Return a list of the patch field types.
bool foundObject(const word &name) const
Is the named Type found?
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
const Time & time() const
Return the top-level database.
static autoPtr< Thermo > New(const fvMesh &, const word &phaseName=word::null)
Generic New for each of the related thermodynamics packages.
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
virtual ~implementation()
Destructor.
const dimensionSet dimLength
An STL-conforming iterator.
const dimensionSet dimTime
wordList heBoundaryBaseTypes()
Enthalpy/internal energy field boundary base types.
static wordList splitThermoName(const word &thermoName, const int nCmpt)
Split name of thermo package into a list of the components names.
static word timeName(const scalar, const int precision=curPrecision_)
Return time name of given scalar time.
A class for handling words, derived from string.
wordList heBoundaryTypes()
Enthalpy/internal energy field boundary types.
virtual const volScalarField & T() const
Temperature [K].
static const word null
An empty word.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
iterator begin()
Iterator set to the beginning of the HashTable.
An STL-conforming hash table.
graph_traits< Graph >::vertices_size_type size_type
void store()
Transfer ownership of this object to its registry.
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
defineTypeNameAndDebug(combustionModel, 0)
const dimensionSet dimEnergy
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
word name(const complex &)
Return a string representation of a complex.
label size() const
Return the number of elements in the UPtrList.
List< word > wordList
A List of words.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
Mesh data needed to do the Finite Volume discretisation.
const objectRegistry & db() const
Return local objectRegistry.
static const basicThermo & lookupThermo(const fvPatchScalarField &pf)
Lookup the thermo associated with the given patch field.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual bool read()
Read thermophysical properties dictionary.
void validate(const string &app, const word &) const
Check that the thermodynamics package is consistent.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
HashTable< const Type * > lookupClass(const bool strict=false) const
Lookup and return all objects of the given Type.
static List< Pair< word > > thermoNameComponents(const word &thermoName)
Split name of thermo package into a list of named components names.
const dimensionSet dimTemperature
virtual const volScalarField & kappa() const
Thermal conductivity of mixture [W/m/K].
static volScalarField & lookupOrConstruct(const fvMesh &mesh, const char *name)
Lookup and the named field, or construct it as MUST-READ if it is.
const DimensionedField< Type, volMesh > & internalField() const
Return dimensioned internal field reference.