55 .replace(
"multiComponent",
"multicomponent");
95 const word& thermoName,
106 (endb = thermoName.find(
'<', beg)) != string::npos
107 || (endc = thermoName.find(
',', beg)) != string::npos
110 if (endb == string::npos)
114 else if ((endc = thermoName.find(
',', beg)) != string::npos)
116 end =
min(endb, endc);
125 cmpts[i] = thermoName.substr(beg, end-beg);
126 cmpts[i++].replaceAll(
">",
"");
145 if (beg < thermoName.size())
147 cmpts[i] = thermoName.substr(beg, string::npos);
148 cmpts[i].replaceAll(
">",
"");
157 const word& thermoName
160 const wordList components(splitThermoName(thermoName, 5));
164 {
"transport", components[0]},
165 {
"thermo", components[1]},
166 {
"equationOfState", components[2]},
167 {
"specie", components[3]},
168 {
"energy", components[4]}
183 if (tbf[
patchi].overridesConstraint())
201 if (isA<fixedValueFvPatchScalarField>(tbf[
patchi]))
207 isA<zeroGradientFvPatchScalarField>(tbf[
patchi])
208 || isA<fixedGradientFvPatchScalarField>(tbf[
patchi])
209 || isA<gradientEnergyCalculatedTemperatureFvPatchScalarField>
219 isA<mixedFvPatchScalarField>(tbf[
patchi])
220 || isA<mixedEnergyCalculatedTemperatureFvPatchScalarField>
228 else if (isA<jumpCyclicFvPatchScalarField>(tbf[
patchi]))
258 const word& phaseName
263 phaseName_(phaseName),
269 phasePropertyName(
"T", phaseName),
282 phasePropertyName(
"kappa", phaseName),
292 dpdt_(
dict.lookupOrDefault<
Switch>(
"dpdt", true))
330 <<
", thermodynamics package provides " <<
he().
name()
354 <<
", 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, GeoMesh, PrimitiveField > > New(const word &name, const Internal &, const PtrList< Patch > &, 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 word mixtureName() const =0
Name of the mixture.
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 keywords followed by any number of values (e.g. words and numbers) or sub-dictionaries.
ITstream & lookup(const word &, bool recursive=false, bool patternMatch=true) const
Find and return an entry data stream.
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.
Foam::fvMesh mesh(Foam::IOobject(regionName, runTime.name(), runTime, Foam::IOobject::MUST_READ), false)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
const dimensionSet & dimThermalConductivity
errorManipArg< error, int > exit(error &err, const int errNo=1)
List< word > wordList
A List of words.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
String typeName(const std::type_info &info)
Return the un-mangled name given the standard type info.
defineRunTimeSelectionTable(fvConstraint, dictionary)
dimensioned< Type > min(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
word name(const LagrangianState state)
Return a string representation of a Lagrangian state enumeration.
defineTypeNameAndDebug(atmosphericBoundaryLayer, 0)
void T(GeometricField< Type, GeoMesh, PrimitiveField1 > &gf, const GeometricField< Type, GeoMesh, PrimitiveField2 > &gf1)