CelikNuIndex Class Reference

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

Inheritance diagram for CelikNuIndex:
Collaboration diagram for CelikNuIndex:

Public Member Functions

 TypeName ("CelikNuIndex")
 Runtime type information. More...
 
 CelikNuIndex (const word &name, const fvMesh &mesh, const dictionary &dict)
 Construct from components. More...
 
 CelikNuIndex (const CelikNuIndex &)=delete
 No copy construct. More...
 
void operator= (const CelikNuIndex &)=delete
 No copy assignment. More...
 
virtual ~CelikNuIndex ()=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 effective viscosity, which is used as a LES/DES quality/post verification metric that does not require any experimental or DNS data.

\[ \Gamma_{Celik,\nu}(\mathbf{x}, t) = \frac{1}{1 + \alpha_\nu \left(\frac{\nu_{eff}}{\nu}\right)^n} \]

with

\[ \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,\nu}(\mathbf{x}, t) $ = Celik et al.'s index [-]
$ \alpha_\nu $ = Empirical constant [-]
$ \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]
$ \nu $ = Kinematic viscosity of fluid [m^2/s]
$ n $ = Empirical exponent [-]
$ k_{num} $ = Numerical turbulent kinetic energy [m^2/s^2]
$ C_\nu $ = Empirical constant [-]
$ \Delta $ = Filter length scale [m]
$ C_n $ = Empirical constant [-]
$ h $ = Characteristic length scale with $h = V^{1/3} $ [m]
$ V $ = Cell volume [m^3]
$ k_{sgs} $ = Subgrid-scale turbulent kinetic energy [m^2/s^2]

Criterion for acceptable-quality resolution:

\[ \Gamma_{Celik,\nu}(\mathbf{x}) \geq 0.8 \]

Required fields:

      k        | Subgrid scale turbulent kinetic energy [m^2/s^2]
      delta    | Filter length                          [m]
      nu       | Kinematic viscosity                    [m^2/s]
      nut      | Subgrid-scale eddy viscosity           [m^2/s]

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       CelikNuIndex;

    // Optional entries
    alphaNu     <scalar>;
    n           <scalar>;
    Cnu         <scalar>;
    Cn          <scalar>;
    k           <word>;
    delta       <word>;
    nu          <word>;
    nut         <word>;
}

where the entries mean:

Property Description Type Reqd Deflt
model Model name: CelikNuIndex word yes -
alphaNu Empirical constant scalar no 0.05
n Empirical exponent scalar no 0.53
Cnu Empirical constant scalar no 0.1
Cn Empirical constant scalar no 1.0
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 270 of file CelikNuIndex.H.

Constructor & Destructor Documentation

◆ CelikNuIndex() [1/2]

CelikNuIndex ( const word name,
const fvMesh mesh,
const dictionary dict 
)

Construct from components.

Definition at line 67 of file CelikNuIndex.C.

References dict, and Foam::read().

Here is the call graph for this function:

◆ CelikNuIndex() [2/2]

CelikNuIndex ( const CelikNuIndex )
delete

No copy construct.

◆ ~CelikNuIndex()

virtual ~CelikNuIndex ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "CelikNuIndex"  )

Runtime type information.

◆ operator=()

void operator= ( const CelikNuIndex )
delete

No copy assignment.

◆ read()

bool read ( const dictionary dict)
virtual

Read top-level dictionary.

Reimplemented from resolutionIndexModel.

Definition at line 89 of file CelikNuIndex.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 110 of file CelikNuIndex.C.

References nu, and Foam::pow().

Here is the call graph for this function:

◆ write()

bool write ( )
virtual

Write the result field.

Implements resolutionIndexModel.

Definition at line 129 of file CelikNuIndex.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: