39 template<
class BasicMomentumTransportModel>
50 template<
class BasicMomentumTransportModel>
60 chi3/(chi3 +
pow3(Cv1_))
65 template<
class BasicMomentumTransportModel>
76 1.0 - chi/(1.0 + chi*fv1)
81 template<
class BasicMomentumTransportModel>
96 template<
class BasicMomentumTransportModel>
112 + fv2(chi, fv1)*nuTilda_()/
sqr(kappa_*dTilda),
119 template<
class BasicMomentumTransportModel>
147 template<
class BasicMomentumTransportModel>
166 template<
class BasicMomentumTransportModel>
183 template<
class BasicMomentumTransportModel>
189 if (this->mesh_.cacheTemporaryObject(
typedName(
"LESRegion")))
200 template<
class BasicMomentumTransportModel>
206 this->nut_ = nuTilda_*fv1;
212 template<
class BasicMomentumTransportModel>
215 correctNut(fv1(this->chi()));
221 template<
class BasicMomentumTransportModel>
280 Cw1_(Cb1_/
sqr(kappa_) + (1.0 + Cb2_)/sigmaNut_),
341 this->runTime_.
name(),
351 if (
type == typeName)
353 this->printCoeffs(
type);
360 template<
class BasicMomentumTransportModel>
365 sigmaNut_.readIfPresent(this->coeffDict());
366 kappa_.readIfPresent(*
this);
368 Cb1_.readIfPresent(this->coeffDict());
369 Cb2_.readIfPresent(this->coeffDict());
370 Cw1_ = Cb1_/
sqr(kappa_) + (1.0 + Cb2_)/sigmaNut_;
372 Cw3_.readIfPresent(this->coeffDict());
373 Cv1_.readIfPresent(this->coeffDict());
374 Cs_.readIfPresent(this->coeffDict());
376 CDES_.readIfPresent(this->coeffDict());
377 ck_.readIfPresent(this->coeffDict());
388 template<
class BasicMomentumTransportModel>
395 (nuTilda_ + this->nu())/sigmaNut_
400 template<
class BasicMomentumTransportModel>
410 "dTildaExtrapolated",
411 this->mesh_.time().name(),
416 zeroGradientFvPatchScalarField::typeName
418 dTildaExtrapolated.
ref() = dTilda(chi, fv1,
fvc::grad(this->U_));
426 sqr(this->
nut()/ck_/dTildaExtrapolated)
445 template<
class BasicMomentumTransportModel>
448 if (!this->turbulence_)
474 this->Stilda(chi, fv1, Omega, dTilda)
485 Cb1_*
alpha()*
rho()*Stilda*nuTilda_()
488 Cw1_*
alpha()*
rho()*fw(Stilda, dTilda)*nuTilda_()/
sqr(dTilda),
494 nuTildaEqn.
ref().relax();
499 nuTilda_.correctBoundaryConditions();
504 cacheLESRegion(dTilda);
#define forAll(list, i)
Loop across all elements in list.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
const dimensionSet & dimensions() const
Return dimensions.
static tmp< DimensionedField< Type, GeoMesh > > New(const word &name, const Mesh &mesh, const dimensionSet &, const Field< Type > &)
Return a temporary field constructed from name, mesh,.
Generic GeometricBoundaryField class.
Generic GeometricField class.
Internal & ref()
Return a reference to the dimensioned internal field.
static tmp< GeometricField< Type, PatchField, GeoMesh > > New(const word &name, const Internal &, const PtrList< PatchField< Type >> &)
Return a temporary field constructed from name,.
void correctBoundaryConditions()
Correct boundary field.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
Eddy viscosity LES SGS model base class.
BasicMomentumTransportModel::alphaField alphaField
BasicMomentumTransportModel::rhoField rhoField
tmp< volScalarField > chi() const
tmp< volScalarField::Internal > Stilda(const volScalarField::Internal &chi, const volScalarField::Internal &fv1, const volScalarField::Internal &Omega, const volScalarField::Internal &dTilda) const
tmp< volScalarField::Internal > Omega(const volTensorField::Internal &gradU) const
virtual tmp< volScalarField > k() const
Return SGS kinetic energy.
virtual void correct()
Correct nuTilda and related properties.
tmp< volScalarField > DnuTildaEff() const
Return the effective diffusivity for nuTilda.
tmp< volScalarField > fv1(const volScalarField &chi) const
tmp< volScalarField::Internal > fv2(const volScalarField::Internal &chi, const volScalarField::Internal &fv1) const
virtual tmp< volScalarField::Internal > dTilda(const volScalarField::Internal &chi, const volScalarField::Internal &fv1, const volTensorField::Internal &gradU) const
Length scale.
SpalartAllmarasDES(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const viscosity &viscosity, const word &type=typeName)
Construct from components.
virtual void correctNut()
virtual void cacheLESRegion(const volScalarField::Internal &dTilda) const
Cache the LES region indicator field.
tmp< volScalarField::Internal > fw(const volScalarField::Internal &Omega, const volScalarField::Internal &dTilda) const
tmp< volScalarField::Internal > r(const volScalarField::Internal &nur, const volScalarField::Internal &Omega, const volScalarField::Internal &dTilda) const
virtual bool read()
Read model coefficients if they have changed.
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
static autoPtr< dictionary > New(Istream &)
Construct top-level dictionary on freestore from Istream.
Generic dimensioned Type class.
bool readIfPresent(const dictionary &)
Update the value of dimensioned<Type> if found in the dictionary.
virtual void correct()=0
Solve the turbulence equations and correct the turbulence viscosity.
Finite volume constraints.
bool constrain(fvMatrix< Type > &eqn) const
Apply constraints to an equation.
A class for managing temporary objects.
void clear() const
If object pointer points to valid object:
T & ref() const
Return non-const reference or generate a fatal error.
Abstract base class for all fluid physical properties.
Interface to run-time selectable methods to calculate the distance-to-wall and normal-to-wall fields.
A class for handling words, derived from string.
Foam::fvConstraints & fvConstraints(Foam::fvConstraints::New(mesh))
Foam::fvModels & fvModels(Foam::fvModels::New(mesh))
const fvPatchList & patches
volScalarField alpha(IOobject("alpha", runTime.name(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
tmp< VolField< typename outerProduct< vector, Type >::type > > grad(const SurfaceField< Type > &ssf)
tmp< fvMatrix< Type > > laplacian(const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > Sp(const volScalarField::Internal &, const VolField< Type > &)
tmp< fvMatrix< Type > > div(const surfaceScalarField &flux, const VolField< Type > &vf, const word &name)
tmp< fvMatrix< Type > > ddt(const VolField< Type > &vf)
dimensionedScalar pow6(const dimensionedScalar &ds)
dimensioned< scalar > dimensionedScalar
Dimensioned scalar obtained from generic dimensioned type.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
dimensionedScalar pow3(const dimensionedScalar &ds)
const dimensionSet dimLength
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensioned< scalar > mag(const dimensioned< Type > &)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
word typedName(Name name)
Return the name of the object within the given type.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
bool bound(volScalarField &, const dimensionedScalar &min)
Bound the given scalar field where it is below the specified min value.
dimensionedScalar neg(const dimensionedScalar &ds)
word name(const complex &)
Return a string representation of a complex.
dimensioned< scalar > magSqr(const dimensioned< Type > &)
dimensionedTensor skew(const dimensionedTensor &dt)
fileType type(const fileName &, const bool checkVariants=true, const bool followLink=true)
Return the file type: directory or file.
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.