Go to the documentation of this file.
59 if (isA<fixedJumpFvPatchScalarField>(tbf[
patchi]))
61 const fixedJumpFvPatchScalarField& pf =
62 dynamic_cast<const fixedJumpFvPatchScalarField&
>(tbf[
patchi]);
64 hbt[
patchi] = pf.interfaceFieldType();
66 else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[
patchi]))
68 const fixedJumpAMIFvPatchScalarField& pf =
69 dynamic_cast<const fixedJumpAMIFvPatchScalarField&
>
74 hbt[
patchi] = pf.interfaceFieldType();
85 this->T_.boundaryField();
91 if (isA<fixedValueFvPatchScalarField>(tbf[
patchi]))
93 hbt[
patchi] = fixedEnergyFvPatchScalarField::typeName;
97 isA<zeroGradientFvPatchScalarField>(tbf[
patchi])
98 || isA<fixedGradientFvPatchScalarField>(tbf[
patchi])
101 hbt[
patchi] = gradientEnergyFvPatchScalarField::typeName;
103 else if (isA<mixedFvPatchScalarField>(tbf[
patchi]))
105 hbt[
patchi] = mixedEnergyFvPatchScalarField::typeName;
107 else if (isA<fixedJumpFvPatchScalarField>(tbf[
patchi]))
109 hbt[
patchi] = energyJumpFvPatchScalarField::typeName;
111 else if (isA<fixedJumpAMIFvPatchScalarField>(tbf[
patchi]))
113 hbt[
patchi] = energyJumpAMIFvPatchScalarField::typeName;
115 else if (tbf[
patchi].
type() ==
"energyRegionCoupledFvPatchScalarField")
117 hbt[
patchi] =
"energyRegionCoupledFvPatchScalarField";
165 const word& phaseName
172 phasePropertyName(
dictName, phaseName),
180 phaseName_(phaseName),
182 p_(lookupOrConstruct(
mesh,
"p")),
188 phasePropertyName(
"T"),
201 phasePropertyName(
"thermo:alpha"),
211 dpdt_(lookupOrDefault<Switch>(
"dpdt",
true))
219 const word& phaseName
226 phasePropertyName(
dictName, phaseName),
235 phaseName_(phaseName),
237 p_(lookupOrConstruct(
mesh,
"p")),
243 phasePropertyName(
"T"),
256 phasePropertyName(
"thermo:alpha"),
273 const word& phaseName
276 return New<basicThermo>(
mesh, phaseName);
311 &(iter()->he().dimensionedInternalField())
330 if (!(
he().
name() == phasePropertyName(a)))
333 <<
"Supported energy type is " << phasePropertyName(a)
334 <<
", thermodynamics package provides " <<
he().name()
349 he().
name() == phasePropertyName(a)
350 ||
he().
name() == phasePropertyName(
b)
355 <<
"Supported energy types are " << phasePropertyName(a)
356 <<
" and " << phasePropertyName(
b)
357 <<
", thermodynamics package provides " <<
he().name()
373 he().
name() == phasePropertyName(a)
374 ||
he().
name() == phasePropertyName(
b)
375 ||
he().
name() == phasePropertyName(
c)
380 <<
"Supported energy types are " << phasePropertyName(a)
381 <<
", " << phasePropertyName(
b)
382 <<
" and " << phasePropertyName(
c)
383 <<
", thermodynamics package provides " <<
he().name()
400 he().
name() == phasePropertyName(a)
401 ||
he().
name() == phasePropertyName(
b)
402 ||
he().
name() == phasePropertyName(
c)
403 ||
he().
name() == phasePropertyName(d)
408 <<
"Supported energy types are " << phasePropertyName(a)
409 <<
", " << phasePropertyName(
b)
410 <<
", " << phasePropertyName(
c)
411 <<
" and " << phasePropertyName(d)
412 <<
", thermodynamics package provides " <<
he().name()
420 const word& thermoName,
431 (endb = thermoName.find(
'<', beg)) != string::npos
432 || (endc = thermoName.find(
',', beg)) != string::npos
435 if (endb == string::npos)
439 else if ((endc = thermoName.find(
',', beg)) != string::npos)
450 cmpts[i] = thermoName.substr(beg, end-beg);
451 cmpts[i++].replaceAll(
">",
"");
456 if (beg < thermoName.size())
458 cmpts[i] = thermoName.substr(beg, string::npos);
459 cmpts[i++].replaceAll(
">",
"");
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
wordList heBoundaryTypes()
Return the enthalpy/internal energy field boundary types.
A class for handling words, derived from string.
static Table::iterator lookupThermo(const dictionary &thermoDict, Table *tablePtr)
Generic lookup for each of the related thermodynamics packages.
volScalarField & lookupOrConstruct(const fvMesh &mesh, const char *name) const
virtual ~basicThermo()
Destructor.
An STL-conforming iterator.
#define forAll(list, i)
Loop across all elements in list.
static const word dictName
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
const DimensionedField< Type, volMesh > & dimensionedInternalField() const
Return dimensioned internal field reference.
virtual bool read()
Read thermophysical properties dictionary.
virtual const volScalarField & T() const
Temperature [K].
virtual bool read()
Read object.
GeometricBoundaryField & boundaryField()
Return reference to GeometricBoundaryField.
Abstract base-class for fluid and solid thermodynamic properties.
Dimension set for the base types.
HashTable< const Type * > lookupClass(const bool strict=false) const
Lookup and return all objects of the given Type.
const word dictName("particleTrackDict")
wordList heBoundaryBaseTypes()
Return the enthalpy/internal energy field boundary base types.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const dimensionedScalar b
Wien displacement law constant: default SI units: [m.K].
Pre-declare SubField and related Field type.
graph_traits< Graph >::vertices_size_type size_type
static wordList splitThermoName(const word &thermoName, const int nCmpt)
Split name of thermo package into a list of the components names.
A list of keyword definitions, which are a keyword followed by any number of values (e....
static autoPtr< Thermo > New(const fvMesh &, const word &phaseName=word::null)
Generic New for each of the related thermodynamics packages.
Mesh data needed to do the Finite Volume discretisation.
void validate(const string &app, const word &) const
Check that the thermodynamics package is consistent.
errorManipArg< error, int > exit(error &err, const int errNo=1)
An STL-conforming hash table.
wordList types() const
Return a list of the patch types.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
bool foundObject(const word &name) const
Is the named Type found?
virtual const volScalarField & alpha() const
Thermal diffusivity for enthalpy of mixture [kg/m/s].
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
basicThermo(const basicThermo &)
Construct as copy (not implemented)
const objectRegistry & db() const
Return local objectRegistry.
volScalarField T_
Temperature [K].
static word timeName(const scalar, const int precision=precision_)
Return time name of given scalar time.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const word & constant() const
Return constant name.
static const word null
An empty word.
const dimensionedScalar c
Speed of light in a vacuum.
virtual volScalarField & p()
Pressure [Pa].
const Time & time() const
Return the top-level database.
PtrList< solidThermo > thermos(solidRegions.size())
const Type & lookupObject(const word &name) const
Lookup and return the object of the given Type.
fileName::Type type(const fileName &)
Return the file type: DIRECTORY or FILE.
Generic GeometricField class.
defineTypeNameAndDebug(combustionModel, 0)
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
word name(const complex &)
Return a string representation of a complex.