33 namespace laminarFlameSpeedModels
56 coeffsDict_(
dict.optionalSubDict(typeName +
"Coeffs").subDict(fuel_)),
57 W_(coeffsDict_.lookup<scalar>(
"W")),
58 eta_(coeffsDict_.lookup<scalar>(
"eta")),
59 xi_(coeffsDict_.lookup<scalar>(
"xi")),
60 f_(coeffsDict_.lookup<scalar>(
"f")),
61 alpha_(coeffsDict_.lookup<scalar>(
"alpha")),
62 beta_(coeffsDict_.lookup<scalar>(
"beta"))
74 inline Foam::scalar Foam::laminarFlameSpeedModels::GuldersEGR::SuRef
81 return W_*
pow(phi, eta_)*
exp(-xi_*
sqr(phi - 1.075));
90 inline Foam::scalar Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
98 static const scalar Tref = 300.0;
99 static const scalar pRef = 1.013e5;
101 return SuRef(phi)*
pow((Tu/Tref), alpha_)*
pow((
p/pRef), beta_)*(1 - f_*Yres);
106 Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
113 tmp<volScalarField> tSu0
127 Su0[celli] = Su0pTphi(
p[celli], Tu[celli], phi, 0.0);
139 p.boundaryField()[
patchi][facei],
140 Tu.boundaryField()[
patchi][facei],
152 Foam::laminarFlameSpeedModels::GuldersEGR::Su0pTphi
160 tmp<volScalarField> tSu0
174 Su0[celli] = Su0pTphi(
p[celli], Tu[celli], phi[celli], egr[celli]);
186 p.boundaryField()[
patchi][facei],
187 Tu.boundaryField()[
patchi][facei],
188 phi.boundaryField()[
patchi][facei],
189 egr.boundaryField()[
patchi][facei]
203 psiuMulticomponentThermo_.composition().contains(
"ft")
204 && psiuMulticomponentThermo_.composition().contains(
"egr")
209 psiuMulticomponentThermo_.p(),
210 psiuMulticomponentThermo_.Tu(),
213 "stoichiometricAirFuelMassRatio",
215 psiuMulticomponentThermo_.properties()
218 scalar(1)/psiuMulticomponentThermo_.composition().Y(
"ft")
221 psiuMulticomponentThermo_.composition().Y(
"egr")
228 psiuMulticomponentThermo_.p(),
229 psiuMulticomponentThermo_.Tu(),
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
GeometricBoundaryField< Type, PatchField, GeoMesh > Boundary
Type of the boundary field.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &)
Return a temporary field constructed from name,.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Laminar flame speed obtained from Gulder's correlation with EGR modelling.
virtual ~GuldersEGR()
Destructor.
GuldersEGR(const dictionary &, const psiuMulticomponentThermo &)
Construct from dictionary and psiuMulticomponentThermo.
tmp< volScalarField > operator()() const
Return the laminar flame speed [m/s].
Abstract class for laminar flame speed.
Base-class for combustion fluid thermodynamic properties based on compressibility.
A class for managing temporary objects.
addToRunTimeSelectionTable(laminarFlameSpeed, constant, dictionary)
defineTypeNameAndDebug(constant, 0)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensionedScalar exp(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimless
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
VolField< scalar > volScalarField
const dimensionSet dimVelocity