Loading...
Searching...
No Matches
CelikEtaIndex Class Reference

Computes a single-mesh resolution index according to Celik et al.'s index using Kolmogorov length scale, which is used as a LES/DES quality/post verification metric that does not require any experimental or DNS data. More...

#include <CelikEtaIndex.H>

Inheritance diagram for CelikEtaIndex:
Collaboration diagram for CelikEtaIndex:

Public Member Functions

 TypeName ("CelikEtaIndex")
 Runtime type information.
 CelikEtaIndex (const word &name, const fvMesh &mesh, const dictionary &dict)
 Construct from components.
 CelikEtaIndex (const CelikEtaIndex &)=delete
 No copy construct.
void operator= (const CelikEtaIndex &)=delete
 No copy assignment.
virtual ~CelikEtaIndex ()=default
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.
Public Member Functions inherited from resolutionIndexModel
 TypeName ("resolutionIndexModel")
 Runtime type information.
 declareRunTimeSelectionTable (autoPtr, resolutionIndexModel, dictionary,(const word &name, const fvMesh &mesh, const dictionary &dict),(name, mesh, dict))
 resolutionIndexModel (const word &name, const fvMesh &mesh, const dictionary &dict)
 Construct from components.
 resolutionIndexModel (const resolutionIndexModel &)=delete
 No copy construct.
void operator= (const resolutionIndexModel &)=delete
 No copy assignment.
virtual ~resolutionIndexModel ()=default
 Destructor.
const fvMeshmesh () const noexcept
 Return const reference to the mesh.
const wordresultName () const noexcept
 Return const reference to the result name.

Additional Inherited Members

Static Public Member Functions inherited from resolutionIndexModel
static autoPtr< resolutionIndexModelNew (const word &name, const fvMesh &mesh, const dictionary &dict)
 Return a reference to the selected resolutionIndex model.
Protected Member Functions inherited from resolutionIndexModel
template<class GeoFieldType>
GeoFieldType & getOrReadField (const word &fieldName) const
 Return requested field from the object registry or read+register the field to the object registry.
tmp< volScalarFieldV () const
 Return cell volume field.

Detailed Description

Computes a single-mesh resolution index according to Celik et al.'s index using Kolmogorov length scale, which is used as a LES/DES quality/post verification metric that does not require any experimental or DNS data.

\‍[    \Gamma_{Celik,\eta}(\mathbf{x}, t) =
        \frac{1}{1 + \alpha_\eta \left(\frac{h}{\eta_{eff}}\right)^m}
\‍]

with

\‍[    \eta_{eff} = \left(\frac{\nu^3}{\epsilon}\right)^{1/4}
\‍]

\‍[    \epsilon = \nu_{eff} \frac{k_{sgs}}{C_k \Delta^2}
\‍]

\‍[    \nu_{eff} = \nu_{num} + \nu_{sgs} + \nu
\‍]

\‍[    \nu_{num} = {sgn}(k_{num}) C_\nu \Delta \sqrt{k_{num}}
\‍]

\‍[    k_{num} = C_n \left(\frac{h}{\Delta}\right)^2 k_{sgs}
\‍]

where

$        \Gamma_{Celik,\eta}(\mathbf{x}, t) $=Celik et al.'s index [-]
$        \alpha_\eta $=Empirical constant [-]
$        h          $=Characteristic length scale with $h = V^{1/3} $ [m]
$        V          $=Cell volume [m^3]
$        \eta_{eff} $=Kolmogorov length scale [m]
$        m          $=Empirical exponent [-]
$        \nu        $=Kinematic viscosity of fluid [m^2/s]
$        \epsilon   $=Kinetic energy dissipation rate [m^2/s^3]
$        \nu_{eff}  $=Effective eddy viscosity [m^2/s]
$        \nu_{num}  $=Numerical eddy viscosity [m^2/s]
$        \nu_{sgs}  $=Subgrid-scale eddy viscosity [m^2/s]
$        k_{num}    $=Numerical turbulent kinetic energy [m^2/s^2]
$        C_\nu      $=Empirical constant [-]
$        \Delta     $=Filter length scale [m]
$        k_{sgs}    $=Subgrid-scale turbulent kinetic energy [m^2/s^2]
$        C_n        $=Empirical constant [-]
$        C_k        $=Empirical constant [-]

References:

        Governing equations (tag:CCY):
            Celik, I. B., Cehreli Z. N., Yavuz I. (2005).
            Index of resolution quality for large eddy simulations.
            Journal of Fluids Engineering. 127:949–958.
            DOI:10.1115/1.1990201

        Governing equations (tag:CKJ):
            Celik, I., Klein, M., & Janicka, J. (2009).
            Assessment measures for engineering LES applications.
            Journal of fluids engineering, 131(3).
            DOI:10.1115/1.3059703
Usage
Minimal example by using system/controlDict.functions:
resolutionIndexFO
{
    // Inherited entries
    ...
    model       CelikEtaIndex;

    // Optional entries
    alphaEta    <scalar>;
    m           <scalar>;
    Cnu         <scalar>;
    Cn          <scalar>;
    Ck          <scalar>;
    k           <word>;
    delta       <word>;
    nu          <word>;
    nut         <word>;
}

where the entries mean:

Property Description Type Reqd Deflt
model Model name: CelikEtaIndex word yes -
alphaEta Empirical constant scalar no 0.05
m Empirical exponent scalar no 0.5
Cnu Empirical constant scalar no 0.1
Cn Empirical constant scalar no 1.0
Ck Empirical constant scalar no 0.0376
k Name of subgrid-scale turbulent kinetic energy field word no k
delta Name of filter field word no delta
nu Name of kinematic viscosity field word no nu
nut Name of subgrid-scale eddy viscosity field word no nut
Source files

Definition at line 287 of file CelikEtaIndex.H.

Constructor & Destructor Documentation

◆ CelikEtaIndex() [1/2]

CelikEtaIndex ( const word & name,
const fvMesh & mesh,
const dictionary & dict )

Construct from components.

Definition at line 103 of file CelikEtaIndex.C.

References dict, resolutionIndexModel::mesh(), Foam::name(), read(), and resolutionIndexModel::resolutionIndexModel().

Referenced by CelikEtaIndex(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CelikEtaIndex() [2/2]

CelikEtaIndex ( const CelikEtaIndex & )
delete

No copy construct.

References CelikEtaIndex().

Here is the call graph for this function:

◆ ~CelikEtaIndex()

virtual ~CelikEtaIndex ( )
virtualdefault

References dict.

Member Function Documentation

◆ TypeName()

TypeName ( "CelikEtaIndex" )

Runtime type information.

References dict, resolutionIndexModel::mesh(), and Foam::name().

Here is the call graph for this function:

◆ operator=()

void operator= ( const CelikEtaIndex & )
delete

No copy assignment.

References CelikEtaIndex().

Here is the call graph for this function:

◆ read()

bool read ( const dictionary & dict)
virtual

Read the function-object dictionary.

Reimplemented from resolutionIndexModel.

Definition at line 127 of file CelikEtaIndex.C.

References dict, and resolutionIndexModel::read().

Referenced by CelikEtaIndex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ execute()

bool execute ( )
virtual

Execute the function-object operations.

Implements resolutionIndexModel.

Definition at line 149 of file CelikEtaIndex.C.

References Foam::cbrt(), resolutionIndexModel::getOrReadField(), Foam::pow(), resolutionIndexModel::resultName(), and resolutionIndexModel::V().

Here is the call graph for this function:

◆ write()

bool write ( )
virtual

Write the function-object results.

Implements resolutionIndexModel.

Definition at line 166 of file CelikEtaIndex.C.

References Foam::endl(), resolutionIndexModel::getOrReadField(), Foam::Info, resolutionIndexModel::resultName(), and Foam::tab.

Here is the call graph for this function:

The documentation for this class was generated from the following files:
  • src/functionObjects/field/resolutionIndex/resolutionIndexModels/CelikEtaIndex/CelikEtaIndex.H
  • src/functionObjects/field/resolutionIndex/resolutionIndexModels/CelikEtaIndex/CelikEtaIndex.C