46 Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
48 const dictionary& XiEqProperties,
49 const psiuReactionThermo&
thermo,
55 XiEqCoef_(XiEqModelCoeffs_.
get<scalar>(
"XiEqCoef")),
56 XiEqExp_(XiEqModelCoeffs_.
get<scalar>(
"XiEqExp")),
57 lCoef_(XiEqModelCoeffs_.
get<scalar>(
"lCoef")),
59 uPrimeCoef_(XiEqModelCoeffs_.
get<scalar>(
"uPrimeCoef")),
60 subGridSchelkin_(XiEqModelCoeffs_.
get<bool>(
"subGridSchelkin")),
63 Su.
mesh().lookupObject<IOdictionary>(
"combustionProperties"),
79 const tmp<volScalarField> tk(turbulence_.k());
81 const tmp<volScalarField> tepsilon(turbulence_.epsilon());
87 up.primitiveFieldRef() += calculateSchelkinEffect(uPrimeCoef_);
104 auto& xieq = tXiEq.ref();
108 if (Ma[celli] > 0.01)
111 XiEqCoef_*
pow(
K[celli]*Ma[celli], -XiEqExp_)*upBySu[celli];
117 forAll(xieq.boundaryField(), patchi)
121 const scalarField& Map = Ma.boundaryField()[patchi];
122 const scalarField& upBySup = upBySu.boundaryField()[patchi];
126 if (Ma[facei] > 0.01)
129 XiEqCoef_*
pow(Kp[facei]*Map[facei], -XiEqExp_)
143 XiEqModelCoeffs_.readEntry(
"XiEqCoef", XiEqCoef_);
144 XiEqModelCoeffs_.readEntry(
"XiEqExp", XiEqExp_);
145 XiEqModelCoeffs_.readEntry(
"lCoef", lCoef_);
146 XiEqModelCoeffs_.readEntry(
"uPrimeCoef", uPrimeCoef_);
147 XiEqModelCoeffs_.readEntry(
"subGridSchelkin", subGridSchelkin_);
dimensionedScalar sqrt(const dimensionedScalar &ds)
tmp< GeometricField< Type, faPatchField, areaMesh > > average(const GeometricField< Type, faePatchField, edgeMesh > &ssf)
Area-weighted average a edgeField creating a areaField.
virtual bool read(const dictionary &XiEqProperties)=0
Update properties from given dictionary.
GeometricBoundaryField< scalar, fvPatchField, volMesh > Boundary
Type of boundary fields.
label k
Boltzmann constant.
virtual tmp< volScalarField > XiEq() const
Return the flame-wrinkling XiEq.
const dimensionSet dimless
Dimensionless.
CGAL::Exact_predicates_exact_constructions_kernel K
Macros for easy insertion into run-time selection tables.
virtual ~SCOPEXiEq()
Destructor.
#define forAll(list, i)
Loop across all elements in list.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
psiReactionThermo & thermo
constexpr T & get(FixedList< T, N > &list) noexcept
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
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...
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("pos", dimless, 1.0));surfaceScalarField neg(IOobject("neg", runTime.timeName(), mesh), mesh, dimensionedScalar("neg", dimless, -1.0));surfaceScalarField phi("phi", fvc::flux(rhoU));Info<< "Creating turbulence model\"<< endl;autoPtr< compressible::turbulenceModel > turbulence(compressible::turbulenceModel::New(rho, U, phi, thermo))
defineTypeNameAndDebug(combustionModel, 0)
RASModel< EddyDiffusivity< turbulenceModel > > RASModel
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
virtual bool read(const dictionary &XiEqProperties)
Update properties from given dictionary.
A class for managing temporary objects.
Do not request registration (bool: false)
addToRunTimeSelectionTable(functionObject, pointHistory, dictionary)
static constexpr const zero Zero
Global zero (0)