41template<
class BasicTurbulenceModel>
48 this->nut_.correctBoundaryConditions();
51 BasicTurbulenceModel::correctNut();
55template<
class BasicTurbulenceModel>
64template<
class BasicTurbulenceModel>
73 const word& propertiesName,
93 IOobject::groupName(
"flm", this->alphaRhoPhi_.group()),
105 IOobject::groupName(
"fmm", this->alphaRhoPhi_.group()),
123 simpleFilter_(
U.
mesh()),
125 filter_(filterPtr_()),
127 flm0_(
"flm0", flm_.dimensions(),
Zero),
128 fmm0_(
"fmm0", fmm_.dimensions(), VSMALL)
130 if (
type == typeName)
132 this->printCoeffs(
type);
139template<
class BasicTurbulenceModel>
144 filter_.read(this->coeffDict());
145 theta_.readIfPresent(this->coeffDict());
154template<
class BasicTurbulenceModel>
157 if (!this->turbulence_)
184 2.0*
sqr(this->
delta())*(filter_(magS*S) - 4.0*magSf*Sf)
189 alpha*
rho*(1.0/(theta_.value()*this->delta()))*
pow(flm_*fmm_, 1.0/8.0)
Defines the attributes of an object for which implicit objectRegistry management is supported,...
Eddy viscosity LES SGS model base class.
Dynamic SGS model with Lagrangian averaging.
BasicTurbulenceModel::alphaField alphaField
BasicTurbulenceModel::rhoField rhoField
virtual void correct()
Correct Eddy-Viscosity and related properties.
virtual void correctNut()
BasicTurbulenceModel::transportModel transportModel
virtual bool read()
Read model coefficients if they have changed.
Abstract class for LES filters.
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Generic dimensioned Type class.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
void relax(const scalar alpha)
Relax matrix (for steady-state solution).
SolverPerformance< Type > solve(const dictionary &)
Solve returning the solution statistics.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
autoPtr< surfaceVectorField > Uf
tmp< GeometricField< typename outerProduct< vector, Type >::type, fvPatchField, volMesh > > grad(const GeometricField< Type, fvsPatchField, surfaceMesh > &ssf)
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 Sp(const Foam::zero, const GeometricField< Type, fvPatchField, volMesh > &)
A no-op source.
dimensionedSymmTensor dev(const dimensionedSymmTensor &dt)
dimensionedSymmTensor symm(const dimensionedSymmTensor &dt)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
volScalarField & bound(volScalarField &, const dimensionedScalar &lowerBound)
Bound the given scalar field if it has gone unbounded.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
static constexpr const zero Zero
Global zero (0)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
const vector L(dict.get< vector >("L"))