82 const word& thermoName,
93 (endb = thermoName.find(
'<', beg)) != string::npos
94 || (endc = thermoName.find(
',', beg)) != string::npos
97 if (endb == string::npos)
101 else if ((endc = thermoName.find(
',', beg)) != string::npos)
103 end =
min(endb, endc);
112 cmpts[i] = thermoName.substr(beg, end-beg);
113 cmpts[i++].replaceAll(
">",
"");
132 if (beg < thermoName.size())
134 cmpts[i] = thermoName.substr(beg, string::npos);
135 cmpts[i].replaceAll(
">",
"");
144 const word& thermoName
147 const wordList components(splitThermoName(thermoName, 5));
151 {
"transport", components[0]},
152 {
"thermo", components[1]},
153 {
"equationOfState", components[2]},
154 {
"specie", components[3]},
155 {
"energy", components[4]}
170 if (tbf[
patchi].overridesConstraint())
188 if (isA<fixedValueFvPatchScalarField>(tbf[
patchi]))
190 hbt[
patchi] = fixedEnergyFvPatchScalarField::typeName;
194 isA<zeroGradientFvPatchScalarField>(tbf[
patchi])
195 || isA<fixedGradientFvPatchScalarField>(tbf[
patchi])
196 || isA<gradientEnergyCalculatedTemperatureFvPatchScalarField>
202 hbt[
patchi] = gradientEnergyFvPatchScalarField::typeName;
206 isA<mixedFvPatchScalarField>(tbf[
patchi])
207 || isA<mixedEnergyCalculatedTemperatureFvPatchScalarField>
213 hbt[
patchi] = mixedEnergyFvPatchScalarField::typeName;
215 else if (isA<jumpCyclicFvPatchScalarField>(tbf[
patchi]))
217 hbt[
patchi] = energyJumpFvPatchScalarField::typeName;
232 hst.set(iter.key(), energyFvScalarFieldSource::typeName);
245 const word& phaseName
250 phaseName_(phaseName),
256 phasePropertyName(
"T", phaseName),
269 phasePropertyName(
"kappa", phaseName),
279 dpdt_(
dict.lookupOrDefault<
Switch>(
"dpdt", true))
317 <<
", thermodynamics package provides " <<
he().
name()
341 <<
", thermodynamics package provides " <<
he().
name()
graph_traits< Graph >::vertices_size_type size_type
#define forAll(list, i)
Loop across all elements in list.
#define forAllConstIter(Container, container, iter)
Iterate across all elements in the container object of type.
Generic GeometricBoundaryField class.
wordList types() const
Return a list of the patch field types.
Generic GeometricField class.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &, const HashPtrTable< Source > &=HashPtrTable< Source >())
Return a temporary field constructed from name,.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
const word & name() const
Return name.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
label size() const
Return the number of elements in the UPtrList.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
virtual const volScalarField & T() const
Temperature [K].
virtual const volScalarField & kappa() const
Thermal conductivity of mixture [W/m/K].
virtual ~implementation()
Destructor.
implementation(const dictionary &, const fvMesh &, const word &)
Construct from dictionary, mesh and phase name.
virtual void read(const dictionary &)
Read thermophysical properties dictionary.
Base-class for fluid and solid thermodynamic properties.
virtual const volScalarField & Cv() const =0
Heat capacity at constant volume [J/kg/K].
static List< Pair< word > > thermoNameComponents(const word &thermoName)
Split name of thermo package into a list of named components names.
wordList heBoundaryTypes()
Enthalpy/internal energy field boundary types.
HashTable< word > heSourcesTypes()
Enthalpy/internal energy field sources types.
static word phasePropertyName(const word &name, const word &phaseName)
Name of a property for a given phase.
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.
virtual const fvMesh & mesh() const =0
Return const access to the mesh.
virtual const volScalarField & T() const =0
Temperature [K].
virtual const volScalarField & Cp() const =0
Heat capacity at constant pressure [J/kg/K].
virtual const word & phaseName() const =0
Phase name.
tmp< volScalarField > gamma() const
Gamma = Cp/Cv [].
void validate(const string &app, const word &) const
Check that the thermodynamics package is consistent.
virtual ~basicThermo()
Destructor.
virtual const volScalarField & he() const =0
Enthalpy/Internal energy [J/kg].
static volScalarField & lookupOrConstruct(const fvMesh &mesh, const char *name)
Lookup and the named field, or construct it as MUST-READ if it is.
static autoPtr< Thermo > New(const fvMesh &, const word &phaseName=word::null)
Generic New for each of the related thermodynamics packages.
A list of keyword definitions, which are a keyword followed by any number of values (e....
const word & name() const
Return const reference to name.
Mesh data needed to do the Finite Volume discretisation.
const Time & time() const
Return the top-level database.
void store()
Transfer ownership of this object to its registry.
A class for managing temporary objects.
A class for handling words, derived from string.
static const word null
An empty word.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
errorManipArg< error, int > exit(error &err, const int errNo=1)
List< word > wordList
A List of words.
defineRunTimeSelectionTable(reactionRateFlameArea, dictionary)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
word name(const bool)
Return a word representation of a bool.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
defineTypeNameAndDebug(combustionModel, 0)
const dimensionSet dimThermalConductivity
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)