30 template<
class ThermoType>
36 stoicRatio_(
dict.
lookup<scalar>(
"stoichiometricAirFuelMassRatio")),
37 fuel_(
"fuel",
dict.subDict(
"fuel")),
38 oxidant_(
"oxidant",
dict.subDict(
"oxidant")),
39 products_(
"burntProducts",
dict.subDict(
"burntProducts")),
40 mixture_(
"mixture", fuel_)
46 template<
class ThermoType>
49 const scalarFieldListSlice&
Y
52 return max(
Y[FT] - (1 -
Y[FT] -
Y[EGR])/stoicRatio_, 0);
56 template<
class ThermoType>
59 const scalarFieldListSlice&
Y
62 const scalar ftu =
Y[FT] +
Y[EGR]/(stoicRatio_ + 1);
63 return stoicRatio_*ftu/
max(1 - ftu, small);
67 template<
class ThermoType>
75 if (ft < 0.0001 && egr < 0.0001)
81 const scalar ox = 1 - ft - egr - (ft - fu)*stoicRatio_;
82 const scalar pr = 1 - fu - ox;
85 mixture_ += ox*oxidant_;
86 mixture_ += pr*products_;
93 template<
class ThermoType>
97 const scalarFieldListSlice&
Y
104 template<
class ThermoType>
108 const scalarFieldListSlice&
Y
115 template<
class ThermoType>
119 const scalarFieldListSlice&,
127 template<
class ThermoType>
131 const scalarFieldListSlice&
Y
138 template<
class ThermoType>
142 const scalarFieldListSlice&
Y
149 template<
class ThermoType>
169 template<
class ThermoType>
172 stoicRatio_ =
dict.
lookup<scalar>(
"stoichiometricAirFuelMassRatio");
174 oxidant_ = ThermoType(
"oxidant",
dict.
subDict(
"oxidant"));
175 products_ = ThermoType(
"burntProducts",
dict.
subDict(
"burntProducts"));
Generic GeometricField class.
label nOldTimes(const bool includeNull=true) const
Return the number of old-time fields stored.
const Field0Type & oldTime() const
Return the old-time field.
Field0Type & oldTimeRef()
Return a non-const reference to the old-time field.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
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 dictionary & subDict(const word &) const
Find and return a sub-dictionary.
const thermoType & products(const scalarFieldListSlice &) const
Return the product mixture.
const thermoType & reactants(const scalarFieldListSlice &) const
Return the reactant mixture.
const thermoMixtureType & thermoMixture(const scalarFieldListSlice &) const
Return the mixture for thermodynamic properties.
ThermoType thermoType
The type of thermodynamics this mixture is instantiated for.
inhomogeneousEGRMixture(const dictionary &)
Construct from a dictionary.
ThermoType transportMixtureType
Mixing type for transport properties.
scalar fres(const scalarFieldListSlice &Y) const
Return the residual fraction of fuel in the burnt mixture.
ThermoType thermoMixtureType
Mixing type for thermodynamic properties.
const transportMixtureType & transportMixture(const scalarFieldListSlice &) const
Return the mixture for transport properties.
scalar Phi(const scalarFieldListSlice &Y) const
Return the fuel-oxidant equivalence ratio.
void read(const dictionary &)
Read dictionary.
void reset(PtrList< volScalarField > &Y) const
Reset the mixture to an unburnt state and update EGR.
const thermoType & mixture(const scalar ft, const scalar fu, const scalar egr) const
Return the mixture for the given composition.
static const coefficient B("B", dimless, 18.678)
const unitSet & lookup(const word &unitName)
Lookup and return the named unit from the table.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensioned< Type > max(const DimensionedField< Type, GeoMesh, PrimitiveField > &df)
PtrList< volScalarField > & Y