35 namespace laminarFlameSpeedModels
50 Foam::laminarFlameSpeedModels::GuldersEGR::GuldersEGR
58 coeffsDict_(
dict.optionalSubDict(typeName +
"Coeffs").subDict(fuel_)),
59 W_(coeffsDict_.
get<scalar>(
"W")),
60 eta_(coeffsDict_.
get<scalar>(
"eta")),
61 xi_(coeffsDict_.
get<scalar>(
"xi")),
62 f_(coeffsDict_.
get<scalar>(
"f")),
63 alpha_(coeffsDict_.
get<scalar>(
"alpha")),
64 beta_(coeffsDict_.
get<scalar>(
"beta"))
76 inline Foam::scalar Foam::laminarFlameSpeedModels::GuldersEGR::SuRef
92 inline Foam::scalar Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
100 static const scalar Tref = 300.0;
101 static const scalar pRef = 1.013e5;
103 return SuRef(
phi)*
pow((Tu/Tref), alpha_)*
pow((
p/pRef), beta_)*(1 - f_*Yres);
108 Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
122 auto& Su0 = tSu0.ref();
126 Su0[celli] = Su0pTphi(
p[celli], Tu[celli],
phi, 0.0);
133 forAll(Su0Bf[patchi], facei)
135 Su0Bf[patchi][facei] =
138 p.boundaryField()[patchi][facei],
139 Tu.boundaryField()[patchi][facei],
151 Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
166 auto& Su0 = tSu0.ref();
170 Su0[celli] = Su0pTphi(
p[celli], Tu[celli],
phi[celli], egr[celli]);
177 forAll(Su0Bf[patchi], facei)
179 Su0Bf[patchi][facei] =
182 p.boundaryField()[patchi][facei],
183 Tu.boundaryField()[patchi][facei],
184 phi.boundaryField()[patchi][facei],
185 egr.boundaryField()[patchi][facei]
199 psiuReactionThermo_.composition().contains(
"ft")
200 && psiuReactionThermo_.composition().contains(
"egr")
205 psiuReactionThermo_.p(),
206 psiuReactionThermo_.Tu(),
209 "stoichiometricAirFuelMassRatio",
dimless, psiuReactionThermo_
212 scalar(1)/psiuReactionThermo_.composition().Y(
"ft")
215 psiuReactionThermo_.composition().Y(
"egr")
222 psiuReactionThermo_.p(),
223 psiuReactionThermo_.Tu(),
List< ReturnType > get(const UPtrList< T > &list, const AccessOp &aop)
List of values generated by applying the access operation to each list item.
virtual ~GuldersEGR()
Destructor.
tmp< volScalarField > operator()() const
Return the laminar flame speed [m/s].
A list of keyword definitions, which are a keyword followed by a number of values (eg...
dimensionedSymmTensor sqr(const dimensionedVector &dv)
GeometricBoundaryField< scalar, fvPatchField, volMesh > Boundary
Type of boundary fields.
const dimensionSet dimless
Dimensionless.
Macros for easy insertion into run-time selection tables.
#define forAll(list, i)
Loop across all elements in list.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedScalar exp(const dimensionedScalar &ds)
addToRunTimeSelectionTable(laminarFlameSpeed, constant, dictionary)
Foam::psiuReactionThermo.
static tmp< GeometricField< scalar, fvPatchField, volMesh > > New(const word &name, IOobjectOption::registerOption regOpt, const Mesh &mesh, const dimensionSet &dims, const word &patchFieldType=fvPatchField< scalar >::calculatedType())
Return tmp field (NO_READ, NO_WRITE) from name, mesh, dimensions and patch type. [Takes current timeN...
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Abstract class for laminar flame speed.
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
A class for managing temporary objects.
Do not request registration (bool: false)
defineTypeNameAndDebug(constant, 0)
static constexpr const zero Zero
Global zero (0)
const dimensionSet dimVelocity