47Foam::resolutionIndexModels::CelikNuIndex::nuNum()
const
59Foam::resolutionIndexModels::CelikNuIndex::kNum()
const
61 const auto& kSgs = getOrReadField<volScalarField>(kName_);
62 const auto& Delta = getOrReadField<volScalarField>(deltaName_);
64 tmp<volScalarField> th =
cbrt(V());
67 return Cn_*
sqr(th/Delta)*kSgs;
104 alphaNu_ =
dict.getOrDefault<scalar>(
"alphaNu", 0.05);
105 n_ =
dict.getOrDefault<scalar>(
"n", 0.53);
106 Cnu_ =
dict.getOrDefault<scalar>(
"Cnu", 0.1);
107 Cn_ =
dict.getOrDefault<scalar>(
"Cn", 1.0);
108 kName_ =
dict.getOrDefault<
word>(
"k",
"k");
109 deltaName_ =
dict.getOrDefault<
word>(
"delta",
"delta");
111 nutName_ =
dict.getOrDefault<
word>(
"nut",
"nut");
120 const auto&
nu = getOrReadField<volScalarField>(nuName_);
121 const auto& nuSgs = getOrReadField<volScalarField>(nutName_);
126 auto& index = getOrReadField<volScalarField>(resultName());
129 index = 1.0/(1.0 + alphaNu_*
pow(tnuEff/
nu, n_));
130 index.correctBoundaryConditions();
138 const auto& index = getOrReadField<volScalarField>(resultName());
140 Info<<
tab <<
"writing field:" << index.name() <<
endl;
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Mesh data needed to do the Finite Volume discretisation.
A base class for resolutionIndex models.
const fvMesh & mesh() const noexcept
Return const reference to the mesh.
resolutionIndexModel(const word &name, const fvMesh &mesh, const dictionary &dict)
Construct from components.
GeoFieldType & getOrReadField(const word &fieldName) const
Return requested field from the object registry or read+register the field to the object registry.
const word & resultName() const noexcept
Return const reference to the result name.
virtual bool read(const dictionary &dict)
Read the function-object dictionary.
Computes a single-mesh resolution index according to Celik et al.'s index using effective viscosity,...
CelikNuIndex(const word &name, const fvMesh &mesh, const dictionary &dict)
Construct from components.
virtual bool read(const dictionary &dict)
Read the function-object dictionary.
virtual bool execute()
Execute the function-object operations.
virtual bool write()
Write the function-object results.
A class for managing temporary objects.
const T & cref() const
Return const reference to the object or to the contents of a (non-null) managed pointer.
A class for handling words, derived from Foam::string.
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
const expr V(m.psi().mesh().V())
A namespace for various resolutionIndex model implementations.
bool read(const char *buf, int32_t &val)
Same as readInt32.
dimensionedScalar sign(const dimensionedScalar &ds)
dimensionedSymmTensor sqr(const dimensionedVector &dv)
messageStream Info
Information stream (stdout output on master, null elsewhere).
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar sqrt(const dimensionedScalar &ds)
dimensionedScalar cbrt(const dimensionedScalar &ds)
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
constexpr char tab
The tab '\t' character(0x09).