42template<
class BasicTurbulenceModel>
55 (2*
sqrt(2.0))*((S&S)&&S)
71 return 1.0/(A0_ + As*
Us*k_/epsilon_);
75template<
class BasicTurbulenceModel>
83 this->nut_ = rCmu(gradU, S2, magS)*
sqr(k_)/epsilon_;
84 this->nut_.correctBoundaryConditions();
87 BasicTurbulenceModel::correctNut();
91template<
class BasicTurbulenceModel>
97 correctNut(tgradU(), S2, magS);
101template<
class BasicTurbulenceModel>
109 dimVolume*this->rho_.dimensions()*k_.dimensions()
116template<
class BasicTurbulenceModel>
124 dimVolume*this->rho_.dimensions()*epsilon_.dimensions()
133template<
class BasicTurbulenceModel>
142 const word& propertiesName,
210 IOobject::groupName(
"epsilon",
U.group()),
222 if (
type == typeName)
224 this->printCoeffs(
type);
231template<
class BasicTurbulenceModel>
236 A0_.readIfPresent(this->coeffDict());
237 C2_.readIfPresent(this->coeffDict());
238 sigmak_.readIfPresent(this->coeffDict());
239 sigmaEps_.readIfPresent(this->coeffDict());
248template<
class BasicTurbulenceModel>
251 if (!this->turbulence_)
278 epsilon_.boundaryFieldRef().updateCoeffs();
308 epsEqn.
ref().relax();
310 epsEqn.
ref().boundaryManipulate(epsilon_.boundaryFieldRef());
313 bound(epsilon_, this->epsilonMin_);
335 bound(k_, this->kMin_);
337 correctNut(tgradU(), S2, magS);
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.
Realizable k-epsilon turbulence model for incompressible and compressible flows.
BasicTurbulenceModel::alphaField alphaField
tmp< volScalarField > rCmu(const volTensorField &gradU, const volScalarField &S2, const volScalarField &magS)
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.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
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)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor symm(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)
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
static constexpr const zero Zero
Global zero (0)
const dimensionSet dimVolume(pow3(dimLength))
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
dimensionedScalar cos(const dimensionedScalar &ds)
dimensionedTensor skew(const dimensionedTensor &dt)
dimensionedScalar acos(const dimensionedScalar &ds)
edgeScalarField phis(IOobject("phis", runTime.timeName(), mesh, IOobject::NO_READ, IOobject::NO_WRITE), linearEdgeInterpolate(Us) &aMesh.Le())