33template<
class BasicTurbulenceModel>
38 Info<< coeffDict_.dictName() << coeffDict_ <<
endl;
45template<
class BasicTurbulenceModel>
55 const word& propertiesName
69 LESDict_(this->subOrEmptyDict(
"LES")),
70 turbulence_(LESDict_.getOrDefault<
Switch>(
"turbulence", true)),
71 printCoeffs_(LESDict_.getOrDefault<
Switch>(
"printCoeffs", false)),
72 coeffDict_(LESDict_.optionalSubDict(type +
"Coeffs")),
116 IOobject::groupName(
"delta", alphaRhoPhi.group()),
124 this->mesh_.deltaCoeffs();
130template<
class BasicTurbulenceModel>
140 const word& propertiesName
164 Info<<
"Selecting LES turbulence model " << modelType <<
endl;
166 auto* ctorPtr = dictionaryConstructorTable(modelType);
175 *dictionaryConstructorTablePtr_
179 return autoPtr<LESModel>
181 ctorPtr(
alpha,
rho,
U, alphaRhoPhi,
phi, transport, propertiesName)
188template<
class BasicTurbulenceModel>
191 if (BasicTurbulenceModel::read())
193 LESDict_ <<= this->subDict(
"LES");
194 LESDict_.readEntry(
"turbulence", turbulence_);
196 coeffDict_ <<= LESDict_.optionalSubDict(
type() +
"Coeffs");
198 delta_().read(LESDict_);
200 Ce_.readIfPresent(LESDict_);
202 kMin_.readIfPresent(LESDict_);
211template<
class BasicTurbulenceModel>
220 this->mesh_.time().timeName(),
223 this->Ce()*
pow(this->
k(), 1.5)/this->
delta()
228template<
class BasicTurbulenceModel>
232 const scalar betaStar = 0.09;
240 this->mesh_.time().timeName(),
243 this->epsilon()/(betaStar*(this->k() + k0))
248template<
class BasicTurbulenceModel>
252 BasicTurbulenceModel::correct();
IOdictionary is derived from dictionary and IOobject to give the dictionary automatic IO functionalit...
Defines the attributes of an object for which implicit objectRegistry management is supported,...
static word group(const word &name)
Return group (extension part of name)
static word groupName(StringType base, const word &group)
Create dot-delimited name.group string.
Templated abstract base class for LES SGS models.
virtual tmp< volScalarField > epsilon() const
Return the turbulence kinetic energy dissipation rate.
BasicTurbulenceModel::alphaField alphaField
BasicTurbulenceModel::rhoField rhoField
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
BasicTurbulenceModel::transportModel transportModel
virtual tmp< volScalarField > omega() const
Return the specific dissipation rate.
virtual bool read()
Read model coefficients if they have changed.
Abstract base class for LES deltas.
A simple wrapper around bool so that it can be read as a word: true/false, on/off,...
static autoPtr< Time > New()
Construct (dummy) Time - no functionObjects or libraries.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dictionary & subDict(const word &keyword, enum keyType::option matchOpt=keyType::REGEX) const
Find and return a sub-dictionary.
T getCompat(const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
Generic dimensioned Type class.
virtual void printCoeffs()
Print model coefficients.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
#define FatalIOErrorInLookup(ios, lookupTag, lookupName, lookupTable)
Report an error message using Foam::FatalIOError.
const dimensionSet dimless
Dimensionless.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
const dimensionSet dimTime(0, 0, 1, 0, 0, 0, 0)
const dimensionSet dimVelocity
messageStream Info
Information stream (stdout output on master, null elsewhere)
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)
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tdf1, const word &name, const dimensionSet &dimensions)
Global function forwards to reuseTmpDimensionedField::New.
errorManipArg< error, int > exit(error &err, const int errNo=1)