Go to the documentation of this file.
50 const volScalarField::Internal&
k,
51 const volScalarField::Internal&
epsilon
55 tmp<volScalarField::Internal> L_(
pow(Cmu_, 0.75)*
pow(
k, 1.5)/
epsilon);
59 return (C2_ - C1_)*
pow(L_/Lmax_, n_);
73 tmp<volScalarField::Internal> L_(
sqrt(
k)/(
pow025(Cmu_)*omega));
84 const word& sourceName,
85 const word& modelType,
92 rhoName_(coeffs_.getOrDefault<
word>(
"rho",
"rho")),
98 coeffs_.getCheckOrDefault<scalar>
102 [&](
const scalar Lmax){ return Lmax > SMALL; }
111 coeffs_.getCheckOrDefault<scalar>
115 [&](
const scalar
n){ return n > SMALL; }
124 const auto* turbPtr =
133 <<
"Unable to find a turbulence model."
137 fieldNames_.setSize(1,
"undefined");
142 if (!tepsilon.
isTmp())
144 fieldNames_[0] = tepsilon().name();
146 const dictionary& turbDict = turbPtr->coeffDict();
147 Cmu_.
read(
"Cmu", turbDict);
148 C1_.read(
"C1", turbDict);
149 C2_.read(
"C2", turbDict);
150 C3_.read(
"C3", turbDict);
152 else if (!tomega.
isTmp())
155 fieldNames_[0] = tomega().name();
157 const dictionary& turbDict = turbPtr->coeffDict();
158 Cmu_.
read(
"betaStar", turbDict);
163 <<
"Unable to find neither epsilon nor omega field." <<
nl
164 <<
"atmLengthScaleTurbSource needs either epsilon or omega field."
168 applied_.setSize(fieldNames_.size(),
false);
170 Log <<
" Applying atmLengthScaleTurbSource to: " << fieldNames_[0]
185 atmLengthScaleTurbSourceEpsilon
195 atmLengthScaleTurbSourceOmega
234 atmLengthScaleTurbSourceEpsilon(
alpha,
rho, eqn, fieldi);
238 atmLengthScaleTurbSourceOmega(
alpha,
rho, eqn, fieldi);
virtual void addSup(fvMatrix< scalar > &eqn, const label fieldi)
const dimensionSet dimless(0, 0, 0, 0, 0, 0, 0)
Dimensionless.
A class for handling words, derived from Foam::string.
Cell-set options abstract base class. Provides a base set of controls, e.g.:
const dimensionSet dimLength(0, 1, 0, 0, 0, 0, 0)
A class for managing temporary objects.
static constexpr const zero Zero
Global zero (0)
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
static const word propertiesName
Default name of the turbulence properties dictionary.
A class representing the concept of a GeometricField of 1 used to avoid unnecessary manipulations for...
bool isTmp() const noexcept
True if this is a managed pointer (not a const reference)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar pow025(const dimensionedScalar &ds)
DimensionedField< scalar, volMesh > Internal
Type of the internal field from which this GeometricField is derived.
dimensionedScalar beta("beta", dimless/dimTemperature, laminarTransport)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Abstract base class for turbulence models (RAS, LES and laminar).
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Macros for easy insertion into run-time selection tables.
Mesh data needed to do the Finite Volume discretisation.
errorManip< error > abort(error &err)
bool read(Istream &is)
Read dictionary from Istream.
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
dimensionedScalar sqrt(const dimensionedScalar &ds)
label k
Boltzmann constant.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
defineTypeNameAndDebug(atmAmbientTurbSource, 0)
addToRunTimeSelectionTable(option, atmAmbientTurbSource, dictionary)
atmLengthScaleTurbSource(const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
Construct from explicit source name and mesh.