33template<
class BasicTurbulenceModel>
38 Info<< coeffDict_.dictName() << coeffDict_ <<
endl;
45template<
class BasicTurbulenceModel>
55 const word& propertiesName
69 RASDict_(this->subOrEmptyDict(
"RAS")),
70 turbulence_(RASDict_.getOrDefault<
Switch>(
"turbulence", true)),
71 printCoeffs_(RASDict_.getOrDefault<
Switch>(
"printCoeffs", false)),
72 coeffDict_(RASDict_.optionalSubDict(type +
"Coeffs")),
106 this->mesh_.deltaCoeffs();
112template<
class BasicTurbulenceModel>
122 const word& propertiesName
129 IOobject::groupName(propertiesName, alphaRhoPhi.
group()),
132 IOobject::MUST_READ_IF_MODIFIED,
143 dict.getCompat<
word>(
"model", {{
"RASModel", -2006}})
146 Info<<
"Selecting RAS turbulence model " << modelType <<
endl;
148 auto* ctorPtr = dictionaryConstructorTable(modelType);
157 *dictionaryConstructorTablePtr_
158 ) <<
exit(FatalIOError);
163 ctorPtr(
alpha,
rho,
U, alphaRhoPhi,
phi, transport, propertiesName)
170template<
class BasicTurbulenceModel>
175 RASDict_ <<= this->subDict(
"RAS");
176 RASDict_.readEntry(
"turbulence", turbulence_);
178 coeffDict_ <<= RASDict_.optionalSubDict(type() +
"Coeffs");
180 kMin_.readIfPresent(RASDict_);
181 epsilonMin_.readIfPresent(RASDict_);
182 omegaMin_.readIfPresent(RASDict_);
190template<
class BasicTurbulenceModel>
194 const scalar Cmu = 0.09;
200 IOobject::groupName(
"epsilon", this->alphaRhoPhi_.group()),
201 this->mesh_.time().timeName(),
204 Cmu*this->k()*this->omega()
209template<
class BasicTurbulenceModel>
213 const scalar betaStar = 0.09;
220 IOobject::groupName(
"omega", this->alphaRhoPhi_.group()),
221 this->mesh_.time().timeName(),
224 this->epsilon()/(betaStar*(this->k() + k0))
229template<
class BasicTurbulenceModel>
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)
Templated abstract base class for RAS turbulence 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.
virtual void correct()
Solve the turbulence equations and correct the turbulence viscosity.
virtual bool read()
Re-read model coefficients if they have changed.
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,...
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)
Ostream & endl(Ostream &os)
Add newline and flush stream.
errorManipArg< error, int > exit(error &err, const int errNo=1)