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...

Inheritance diagram for CelikEtaIndex:
Collaboration diagram for CelikEtaIndex:

Public Member Functions

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

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. More...
 
- 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. More...
 
tmp< volScalarFieldV () const
 Return cell volume field. More...
 

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:
resolutionIndex1
{
    // 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 104 of file CelikEtaIndex.C.

References dict, and Foam::read().

Here is the call graph for this function:

◆ CelikEtaIndex() [2/2]

CelikEtaIndex ( const CelikEtaIndex )
delete

No copy construct.

◆ ~CelikEtaIndex()

virtual ~CelikEtaIndex ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "CelikEtaIndex"  )

Runtime type information.

◆ operator=()

void operator= ( const CelikEtaIndex )
delete

No copy assignment.

◆ read()

bool read ( const dictionary dict)
virtual

Read top-level dictionary.

Reimplemented from resolutionIndexModel.

Definition at line 127 of file CelikEtaIndex.C.

References dict, and resolutionIndexModel::read().

Here is the call graph for this function:

◆ execute()

bool execute ( )
virtual

Calculate the result field.

Implements resolutionIndexModel.

Definition at line 149 of file CelikEtaIndex.C.

References Foam::cbrt(), and Foam::pow().

Here is the call graph for this function:

◆ write()

bool write ( )
virtual

Write the result field.

Implements resolutionIndexModel.

Definition at line 166 of file CelikEtaIndex.C.

References Foam::endl(), Foam::Info, Foam::tab, and Ostream::write().

Here is the call graph for this function:

The documentation for this class was generated from the following files: