33 {
"v1981",
"v1996",
"v2005",
"v2016"};
44 namespace combustionModels
55 const word& modelType,
58 const word& combustionProperties
66 this->coeffs().lookupOrDefault
73 C1_(this->coeffs().lookupOrDefault(
"C1", 0.05774)),
74 C2_(this->coeffs().lookupOrDefault(
"C2", 0.5)),
75 Cgamma_(this->coeffs().lookupOrDefault(
"Cgamma", 2.1377)),
76 Ctau_(this->coeffs().lookupOrDefault(
"Ctau", 0.4083)),
77 exp1_(this->coeffs().lookupOrDefault(
"exp1",
EDCexp1[int(version_)])),
78 exp2_(this->coeffs().lookupOrDefault(
"exp2",
EDCexp2[int(version_)])),
84 this->mesh().time().
name(),
94 this->coeffs().lookupOrDefault(
"outerCorrect", true)
111 if (!outerCorrect_ && timeIndex_ == this->mesh().time().
timeIndex())
137 const scalar ReT =
sqr(
k[i])/(nu[i]*
epsilon[i] + small);
138 const scalar CtauI =
min(C1_/(Da*
sqrt(ReT + 1)), Ctau_);
140 const scalar CgammaI =
143 const scalar gammaL =
146 tauStar[i] = CtauI*
sqrt(nu[i]/(
epsilon[i] + small));
159 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
171 const scalar gammaL =
174 tauStar[i] = Ctau_*
sqrt(nu[i]/(
epsilon[i] + small));
186 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
195 chemistryPtr_->solve(tauStar);
197 timeIndex_ = this->mesh().time().timeIndex();
204 return kappa_*chemistryPtr_->RR()[speciei];
215 Su += chemistryPtr_->RR()[speciei];
227 kappa_*chemistryPtr_->Qdot()
240 this->coeffs().lookupOrDefault
247 C1_ = this->coeffs().lookupOrDefault(
"C1", 0.05774);
248 C2_ = this->coeffs().lookupOrDefault(
"C2", 0.5);
249 Cgamma_ = this->coeffs().lookupOrDefault(
"Cgamma", 2.1377);
250 Ctau_ = this->coeffs().lookupOrDefault(
"Ctau", 0.4083);
251 exp1_ = this->coeffs().lookupOrDefault(
"exp1",
EDCexp1[
int(version_)]);
252 exp2_ = this->coeffs().lookupOrDefault(
"exp2",
EDCexp2[
int(version_)]);
253 outerCorrect_ = this->coeffs().lookupOrDefault(
"outerCorrect",
true);
#define forAll(list, i)
Loop across all elements in list.
Macros for easy insertion into run-time selection tables.
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...
static word member(const word &name)
Return member (name without the extension)
Initialise the NamedEnum HashTable from the static list of names.
Base class for chemistry models.
Base class for combustion models.
virtual bool read()
Update properties from given dictionary.
Eddy Dissipation Concept (EDC) turbulent combustion model.
virtual void correct()
Correct combustion rate.
EDC(const word &modelType, const fluidMulticomponentThermo &type, const compressibleMomentumTransportModel &turb, const word &combustionProperties)
Construct from components.
virtual ~EDC()
Destructor.
virtual tmp< volScalarField::Internal > R(const label speciei) const
Specie consumption rate field.
virtual tmp< volScalarField > Qdot() const
Heat release rate [kg/m/s^3].
virtual bool read()
Update properties from given dictionary.
Base class for single-phase compressible turbulence models.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Base-class for multi-component fluid thermodynamic properties.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
A class for managing temporary objects.
T & ref() const
Return non-const reference or generate a fatal error.
A class for handling words, derived from string.
defineTypeNameAndDebug(diffusion, 0)
const NamedEnum< EDCversions, 4 > EDCversionNames
const EDCversions EDCdefaultVersion
EDCversions
EDC model versions.
addToRunTimeSelectionTable(combustionModel, diffusion, dictionary)
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
tmp< VolField< Type > > Su(const VolField< Type > &su, const VolField< Type > &vf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
word name(const bool)
Return a word representation of a bool.
fvMatrix< scalar > fvScalarMatrix
const dimensionSet dimless
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const dimensionSet dimTime
dimensionedScalar sqrt(const dimensionedScalar &ds)
word typedName(Name name)
Return the name of the object within the given type.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
const dimensionSet dimMass
dimensionedScalar pow025(const dimensionedScalar &ds)
autoPtr< incompressible::momentumTransportModel > turbulence(incompressible::momentumTransportModel::New(U, phi, viscosity))
PtrList< volScalarField > & Y
fluidMulticomponentThermo & thermo