42template<
class BasicTurbulenceModel>
45 this->nut_ = Cmu_*
sqr(k_)/epsilon_;
46 this->nut_.correctBoundaryConditions();
49 BasicTurbulenceModel::correctNut();
53template<
class BasicTurbulenceModel>
61 dimVolume*this->rho_.dimensions()*k_.dimensions()
68template<
class BasicTurbulenceModel>
76 dimVolume*this->rho_.dimensions()*epsilon_.dimensions()
85template<
class BasicTurbulenceModel>
94 const word& propertiesName,
187 IOobject::groupName(
"k", alphaRhoPhi.group()),
199 IOobject::groupName(
"epsilon", alphaRhoPhi.group()),
211 if (
type == typeName)
213 this->printCoeffs(
type);
220template<
class BasicTurbulenceModel>
225 Cmu_.readIfPresent(this->coeffDict());
226 C1_.readIfPresent(this->coeffDict());
227 C2_.readIfPresent(this->coeffDict());
228 C3_.readIfPresent(this->coeffDict());
229 sigmak_.readIfPresent(this->coeffDict());
230 sigmaEps_.readIfPresent(this->coeffDict());
231 eta0_.readIfPresent(this->coeffDict());
232 beta_.readIfPresent(this->coeffDict());
241template<
class BasicTurbulenceModel>
244 if (!this->turbulence_)
267 this->
type() +
":GbyNu",
279 ((eta*(-eta/eta0_ + scalar(1)))/(beta_*eta3 + scalar(1)))
283 epsilon_.boundaryFieldRef().updateCoeffs();
299 epsEqn.
ref().relax();
301 epsEqn.
ref().boundaryManipulate(epsilon_.boundaryFieldRef());
304 bound(epsilon_, this->epsilonMin_);
326 bound(k_, this->kMin_);
#define R(A, B, C, D, E, F, K, M)
Bound the given scalar field if it has gone unbounded.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Templated abstract base class for RAS turbulence models.
Renormalization group k-epsilon turbulence model for incompressible and compressible flows.
BasicTurbulenceModel::alphaField alphaField
virtual tmp< fvScalarMatrix > epsilonSource() const
BasicTurbulenceModel::rhoField rhoField
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
virtual void correctNut()
virtual tmp< fvScalarMatrix > kSource() const
BasicTurbulenceModel::transportModel transportModel
virtual bool read()
Re-read model coefficients if they have changed.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Generic dimensioned Type class.
Eddy viscosity turbulence model base class.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
A class for managing temporary objects.
void clear() const noexcept
A class for handling words, derived from Foam::string.
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< GeometricField< Type, fvPatchField, volMesh > > div(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
tmp< surfaceScalarField > absolute(const tmp< surfaceScalarField > &tphi, const volVectorField &U)
Return the given relative flux in absolute form.
tmp< fvMatrix< Type > > laplacian(const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const GeometricField< Type, fvPatchField, volMesh > &vf, const word &name)
tmp< fvMatrix< Type > > ddt(const GeometricField< Type, fvPatchField, volMesh > &vf)
zeroField SuSp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
zeroField Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
bool read(const char *buf, int32_t &val)
Same as readInt32.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
dimensionedSymmTensor twoSymm(const dimensionedSymmTensor &dt)
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const dimensionSet dimVolume(pow3(dimLength))