30 template<
class ReactionThermo>
33 const word& modelType,
34 const ReactionThermo& thermo,
36 const word& combustionProperties
44 this->coeffs().lookupOrDefault
51 C1_(this->coeffs().lookupOrDefault(
"C1", 0.05774)),
52 C2_(this->coeffs().lookupOrDefault(
"C2", 0.5)),
53 Cgamma_(this->coeffs().lookupOrDefault(
"Cgamma", 2.1377)),
54 Ctau_(this->coeffs().lookupOrDefault(
"Ctau", 0.4083)),
55 exp1_(this->coeffs().lookupOrDefault(
"exp1",
EDCexp1[
int(version_)])),
56 exp2_(this->coeffs().lookupOrDefault(
"exp2",
EDCexp2[
int(version_)])),
61 this->
thermo().phasePropertyName(typeName +
":kappa"),
75 template<
class ReactionThermo>
82 template<
class ReactionThermo>
99 if (version_ == EDCversions::v2016)
106 const scalar nu = mu[i]/(rho[i] + small);
109 max(
min(
sqrt(nu/(epsilon[i] + small))/tc[i], 10), 1
e-10);
111 const scalar ReT =
sqr(k[i])/(nu*epsilon[i] + small);
112 const scalar CtauI =
min(C1_/(Da*
sqrt(ReT + 1)), 2.1377);
114 const scalar CgammaI =
117 const scalar gammaL =
118 CgammaI*
pow025(nu*epsilon[i]/(
sqr(k[i]) + small));
120 tauStar[i] = CtauI*
sqrt(nu/(epsilon[i] + small));
133 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
145 const scalar nu = mu[i]/(rho[i] + small);
146 const scalar gammaL =
147 Cgamma_*
pow025(nu*epsilon[i]/(
sqr(k[i]) + small));
149 tauStar[i] = Ctau_*
sqrt(nu/(epsilon[i] + small));
161 pow(gammaL, exp1_)/(1 -
pow(gammaL, exp2_)),
170 this->chemistryPtr_->solve(tauStar);
174 template<
class ReactionThermo>
182 template<
class ReactionThermo>
188 this->
thermo().phasePropertyName(typeName +
":Qdot"),
189 kappa_*this->chemistryPtr_->Qdot()
194 template<
class ReactionThermo>
203 this->coeffs().lookupOrDefault
210 C1_ = this->coeffs().lookupOrDefault(
"C1", 0.05774);
211 C2_ = this->coeffs().lookupOrDefault(
"C2", 0.5);
212 Cgamma_ = this->coeffs().lookupOrDefault(
"Cgamma", 2.1377);
213 Ctau_ = this->coeffs().lookupOrDefault(
"Ctau", 0.4083);
214 exp1_ = this->coeffs().lookupOrDefault(
"exp1",
EDCexp1[
int(version_)]);
215 exp2_ = this->coeffs().lookupOrDefault(
"exp2",
EDCexp2[
int(version_)]);
#define forAll(list, i)
Loop across all elements in list.
virtual tmp< fvScalarMatrix > R(volScalarField &Y) const
Fuel consumption rate matrix.
dimensioned< Type > max(const dimensioned< Type > &, const dimensioned< Type > &)
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.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar pow025(const dimensionedScalar &ds)
tmp< volScalarField > trho
label k
Boltzmann constant.
rhoReactionThermo & thermo
Laminar combustion model.
const dimensionedScalar & e
Elementary charge.
autoPtr< BasicCompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleMomentumTransportModel::transportModel &transport)
A class for handling words, derived from string.
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))
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
const NamedEnum< EDCversions, 4 > EDCversionNames
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
EDC(const word &modelType, const ReactionThermo &type, const compressibleMomentumTransportModel &turb, const word &combustionProperties)
Construct from components.
const dimensionedScalar & mu
Atomic mass unit.
#define R(A, B, C, D, E, F, K, M)
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.
A class for managing temporary objects.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Abstract base class for turbulence models (RAS, LES and laminar).