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_)])),
83 this->
thermo().phasePropertyName(typeName +
":kappa"),
94 this->coeffs().lookupOrDefault(
"outerCorrect",
true)
111 if (!outerCorrect_ && timeIndex_ == this->
mesh().time().
timeIndex())
137 const scalar nu = mu[i]/(rho[i] + small);
140 max(
min(
sqrt(nu/(epsilon[i] + small))/tc[i], 10), 1
e-10);
142 const scalar ReT =
sqr(k[i])/(nu*epsilon[i] + small);
143 const scalar CtauI =
min(C1_/(Da*
sqrt(ReT + 1)), 2.1377);
145 const scalar CgammaI =
148 const scalar gammaL =
149 CgammaI*
pow025(nu*epsilon[i]/(
sqr(k[i]) + small));
151 tauStar[i] = CtauI*
sqrt(nu/(epsilon[i] + small));
164 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
176 const scalar nu = mu[i]/(rho[i] + small);
177 const scalar gammaL =
178 Cgamma_*
pow025(nu*epsilon[i]/(
sqr(k[i]) + small));
180 tauStar[i] = Ctau_*
sqrt(nu/(epsilon[i] + small));
192 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
201 chemistryPtr_->solve(tauStar);
203 timeIndex_ = this->
mesh().time().timeIndex();
214 Su += chemistryPtr_->RR(specieI);
225 this->
thermo().phasePropertyName(typeName +
":Qdot"),
226 kappa_*chemistryPtr_->Qdot()
239 this->coeffs().lookupOrDefault
246 C1_ = this->coeffs().lookupOrDefault(
"C1", 0.05774);
247 C2_ = this->coeffs().lookupOrDefault(
"C2", 0.5);
248 Cgamma_ = this->coeffs().lookupOrDefault(
"Cgamma", 2.1377);
249 Ctau_ = this->coeffs().lookupOrDefault(
"Ctau", 0.4083);
250 exp1_ = this->coeffs().lookupOrDefault(
"exp1",
EDCexp1[
int(version_)]);
251 exp2_ = this->coeffs().lookupOrDefault(
"exp2",
EDCexp2[
int(version_)]);
252 outerCorrect_ = this->coeffs().lookupOrDefault(
"outerCorrect",
true);
const EDCversions EDCdefaultVersion
fvMatrix< scalar > fvScalarMatrix
#define forAll(list, i)
Loop across all elements in list.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
fluidReactionThermo & thermo
EDCversions
EDC model versions.
virtual tmp< fvScalarMatrix > R(volScalarField &Y) const
Fuel consumption rate matrix.
A list of keyword definitions, which are a keyword followed by any number of values (e...
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
T & ref() const
Return non-const reference or generate a fatal error.
virtual bool read()
Update properties from given dictionary.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
void size(const label)
Override size to be inconsistent with allocated storage.
static tmp< GeometricField< scalar, fvPatchField, volMesh > > New(const word &name, const Internal &, const PtrList< fvPatchField< scalar >> &)
Return a temporary field constructed from name,.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar pow025(const dimensionedScalar &ds)
tmp< volScalarField > trho
Base-class for multi-component fluid thermodynamic properties.
const dimensionSet dimless
label k
Boltzmann constant.
Initialise the NamedEnum HashTable from the static list of names.
Macros for easy insertion into run-time selection tables.
static word member(const word &name)
Return member (name without the extension)
static autoPtr< basicChemistryModel > New(const fluidReactionThermo &thermo)
Select based on fluid reaction thermo.
const dimensionSet dimTime
EDC(const word &modelType, const fluidReactionThermo &type, const compressibleMomentumTransportModel &turb, const word &combustionProperties)
Construct from components.
A class for handling words, derived from string.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
virtual bool read()
Update properties from given dictionary.
Info<< "Reading field U\"<< endl;volVectorField U(IOobject("U", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);volScalarField rho(IOobject("rho", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::AUTO_WRITE), thermo.rho());volVectorField rhoU(IOobject("rhoU", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *U);volScalarField rhoE(IOobject("rhoE", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), rho *(e+0.5 *magSqr(U)));surfaceScalarField pos(IOobject("pos", runTime.timeName(), mesh), mesh, dimensionedScalar(dimless, 1.0));surfaceScalarField neg(IOobject("neg", runTime.timeName(), mesh), mesh, dimensionedScalar(dimless, -1.0));surfaceScalarField phi("phi", fvc::flux(rhoU));Info<< "Creating turbulence model\"<< endl;autoPtr< compressible::momentumTransportModel > turbulence(compressible::momentumTransportModel::New(rho, U, phi, thermo))
const dimensionedScalar mu
Atomic mass unit.
Base class for combustion models.
Eddy Dissipation Concept (EDC) turbulent combustion model.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
const dimensionSet dimMass
const NamedEnum< EDCversions, 4 > EDCversionNames
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
PtrList< volScalarField > & Y
virtual tmp< volScalarField > Qdot() const
Heat release rate [kg/m/s^3].
virtual ~EDC()
Destructor.
virtual void correct()
Correct combustion rate.
const doubleScalar e
Elementary charge.
const tmp< volScalarField::Internal > & Su
A class for managing temporary objects.
defineTypeNameAndDebug(diffusion, 0)
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Abstract base class for turbulence models (RAS, LES and laminar).
addToRunTimeSelectionTable(combustionModel, diffusion, dictionary)