49PDRkEpsilon::PDRkEpsilon
51 const geometricOneField&
alpha,
56 const fluidThermo& thermophysicalModel,
57 const word& turbulenceModelName,
75 dimensioned<scalar>::getOrAddToDict
87PDRkEpsilon::~PDRkEpsilon()
93bool PDRkEpsilon::read()
97 C4_.readIfPresent(coeffDict_);
105void PDRkEpsilon::correct()
110 nut_ = Cmu_*
sqr(k_)/epsilon_;
111 nut_.correctBoundaryConditions();
126 divU += fvc::div(mesh_.phi());
129 tmp<volTensorField> tgradU = fvc::grad(U_);
134 epsilon_.boundaryFieldRef().updateCoeffs();
144 const PDRDragModel&
drag =
145 U_.db().lookupObject<PDRDragModel>(
"PDRDragModel");
153 tmp<fvScalarMatrix> epsEqn
155 betav*fvm::ddt(rho_, epsilon_)
156 + fvm::div(phi_, epsilon_)
157 - fvm::laplacian(rho_*DepsilonEff(), epsilon_)
159 C1_*
betav*G*epsilon_/k_
160 + 1.5*
pow(Cmu_, 3.0/4.0)*GR*
sqrt(k_)/LI
161 - fvm::SuSp(((2.0/3.0)*C1_)*
betav*rho_*
divU, epsilon_)
162 - fvm::Sp(C2_*
betav*rho_*epsilon_/k_, epsilon_)
165 epsEqn.ref().relax();
167 epsEqn.ref().boundaryManipulate(epsilon_.boundaryFieldRef());
170 bound(epsilon_, epsilonMin_);
175 tmp<fvScalarMatrix> kEqn
177 betav*fvm::ddt(rho_, k_)
179 - fvm::laplacian(rho_*DkEff(), k_)
182 - fvm::SuSp((2.0/3.0)*
betav*rho_*
divU, k_)
183 - fvm::Sp(
betav*rho_*epsilon_/k_, k_)
191 nut_ = Cmu_*
sqr(k_)/epsilon_;
192 nut_.correctBoundaryConditions();
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
const objectRegistry & db() const noexcept
Return the local objectRegistry.
const Type & lookupObject(const word &name, const bool recursive=false) const
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
ThermalDiffusivity< CompressibleTurbulenceModel< fluidThermo > > turbulenceModel
RASModel< EddyDiffusivity< turbulenceModel > > RASModel
const dimensionedScalar G
Newtonian constant of gravitation.
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
GeometricField< vector, fvPatchField, volMesh > volVectorField
dimensionedSymmTensor sqr(const dimensionedVector &dv)
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar sqrt(const dimensionedScalar &ds)
const volScalarField & betav
Info<< "Reading strained laminar flame speed field Su\n"<< endl;volScalarField Su(IOobject("Su", runTime.timeName(), mesh, IOobject::MUST_READ, IOobject::AUTO_WRITE), mesh);Info<< "Reading field betav\n"<< endl;volScalarField betav(IOobject("betav", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field Lobs\n"<< endl;volScalarField Lobs(IOobject("Lobs", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field CT\n"<< endl;volSymmTensorField CT(IOobject("CT", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field Nv\n"<< endl;volScalarField Nv(IOobject("Nv", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);Info<< "Reading field nsv\n"<< endl;volSymmTensorField nsv(IOobject("nsv", mesh.facesInstance(), mesh, IOobject::MUST_READ, IOobject::NO_WRITE), mesh);IOdictionary PDRProperties(IOobject("PDRProperties", runTime.constant(), mesh, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE));autoPtr< PDRDragModel > drag