41template<
class BasicTurbulenceModel>
78template<
class BasicTurbulenceModel>
87 simpleFilter_(this->nuEff()*(filter_(
magSqr(
D)) -
magSqr(filter_(
D))))
88 /simpleFilter_(
pow(KK, 1.5)/(2.0*this->
delta()))
96template<
class BasicTurbulenceModel>
103 0.5*(filter_(
magSqr(this->U_)) -
magSqr(filter_(this->U_)))
111template<
class BasicTurbulenceModel>
118 this->nut_ = Ck(
D, KK)*
sqrt(k_)*this->
delta();
119 this->nut_.correctBoundaryConditions();
122 BasicTurbulenceModel::correctNut();
126template<
class BasicTurbulenceModel>
131 0.5*(filter_(
magSqr(this->U_)) -
magSqr(filter_(this->U_)))
138template<
class BasicTurbulenceModel>
151template<
class BasicTurbulenceModel>
152dynamicKEqn<BasicTurbulenceModel>::dynamicKEqn
154 const alphaField&
alpha,
160 const word& propertiesName,
180 IOobject::groupName(
"k", this->alphaRhoPhi_.group()),
189 simpleFilter_(this->mesh_),
190 filterPtr_(
LESfilter::
New(this->mesh_, this->coeffDict())),
191 filter_(filterPtr_())
197 this->printCoeffs(
type);
204template<
class BasicTurbulenceModel>
209 filter_.read(this->coeffDict());
218template<
class BasicTurbulenceModel>
221 if (!this->turbulence_)
227 const alphaField&
alpha = this->alpha_;
228 const rhoField&
rho = this->rho_;
246 tmp<fvScalarMatrix> kEqn
263 bound(k_, this->kMin_);
const dimensionSet & dimensions() const noexcept
Return dimensions.
void clamp_min(const Type &lower)
Impose lower (floor) clamp on the field values (in-place).
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Eddy viscosity LES SGS model base class.
virtual bool read()
Read model coefficients if they have changed.
BasicTurbulenceModel::alphaField alphaField
volScalarField Ce() const
BasicTurbulenceModel::rhoField rhoField
volScalarField Ck(const volSymmTensorField &D, const volScalarField &KK) const
Calculate Ck by filtering the velocity field U.
virtual void correct()
Correct Eddy-Viscosity and related properties.
simpleFilter simpleFilter_
void correctNut(const volSymmTensorField &D, const volScalarField &KK)
Update sub-grid eddy-viscosity.
virtual void correctNut()
virtual tmp< fvScalarMatrix > kSource() const
BasicTurbulenceModel::transportModel transportModel
volScalarField Ce(const volSymmTensorField &D, const volScalarField &KK) const
Calculate Ce by filtering the velocity field U.
autoPtr< LESfilter > filterPtr_
virtual bool read()
Read model coefficients if they have changed.
tmp< volScalarField > DkEff() const
Return the effective diffusivity for k.
One equation eddy-viscosity model.
Abstract class for LES filters.
virtual tmp< volScalarField > nut() const
void correct(GeometricField< Type, PatchField, GeoMesh > &field)
Apply correction to field.
Finite-volume options, which is an IOdictionary of values and a fv::optionList.
static options & New(const fvMesh &mesh)
Construct fvOptions and register to database if not present otherwise lookup and return.
virtual void correct()=0
Solve the turbulence equations and correct the turbulence viscosity.
A class for managing temporary objects.
void clear() const noexcept
If object pointer points to valid object: delete object and set pointer to nullptr.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
Base-class for all transport models used by the incompressible turbulence models.
A class for handling words, derived from Foam::string.
Namespace for LES SGS models.
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)
label max(const labelHashSet &set, label maxValue=labelMin)
Find the max value in labelHashSet, optionally limited by second argument.
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
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.
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
GeometricField< scalar, fvPatchField, volMesh > volScalarField
GeometricField< scalar, fvsPatchField, surfaceMesh > surfaceScalarField
SymmTensor< Cmpt > devSymm(const SymmTensor< Cmpt > &st)
Return the deviatoric part of the symmetric part of a SymmTensor.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
const word GlobalIOList< Tuple2< scalar, vector > >::typeName("scalarVectorTable")
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
GeometricField< symmTensor, fvPatchField, volMesh > volSymmTensorField
static constexpr const zero Zero
Global zero (0).
const dimensionSet dimVolume(pow3(dimLength))
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensioned< typename typeOfMag< Type >::type > magSqr(const dimensioned< Type > &dt)
const dimensionedScalar & D