PopeIndex Class Reference

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

Inheritance diagram for PopeIndex:
Collaboration diagram for PopeIndex:

Public Member Functions

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

\[ \Gamma_{Pope}(\mathbf{x}, t) = \frac{k_{res}}{k_{tot}} \]

with

\[ k_{tot} = k_{res} + k_{sgs} + |k_{num}| \]

where

$ \Gamma_{Pope}(\mathbf{x}, t) $ = Pope's index [-]
$ k_{tot} $ = Total turbulent kinetic energy [m^2/s^2]
$ k_{res} $ = Resolved turbulent kinetic energy [m^2/s^2]
$ k_{sgs} $ = Subgrid-scale turbulent kinetic energy [m^2/s^2]
$ k_{num} $ = Numerical turbulent kinetic energy [m^2/s^2]

Inclusion of $k_{num}$ is optional, and set as true by default:

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

where

$ C_n $ = Empirical constant [-]
$ h $ = Characteristic length scale with $h = V^{1/3} $ [m]
$ V $ = Cell volume [m^3]
$ \Delta $ = Filter length scale [m]

Typical criterion for acceptable-quality resolution:

\[ \Gamma_{Pope}(\mathbf{x}) \geq 0.8 \]

Required fields:

      U        | Velocity                                   [m/s]
      UMean    | Mean velocity                              [m/s]
      k        | Subgrid-scale turbulent kinetic energy     [m^2/s^2]
      delta    | Filter length                              [m]

References:

        Governing equation (tag:P):
            Pope, S. B. (2000).
            Turbulent flows.
            Cambridge, UK: Cambridge Univ. Press
            DOI:10.1017/CBO9780511840531

        Governing equations for the denominator kNum term (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       PopeIndex;

    // Optional entries
    U           <word>;
    UMean       <word>;
    k           <word>;
    delta       <word>;
    includeKnum <bool>;

    // Conditional entries
    // when includeKnum = true
    Cn          <scalar>;
}

where the entries mean:

Property Description Type Reqd Deflt
model Model name: PopeIndex word yes -
U Name of velocity field word no U
UMean Name of mean velocity field word no UMean
k Name of subgrid-scale turbulent kinetic energy field word no k
delta Name of filter field word no delta
includeKnum Flag to include numerical k field bool no true
Cn Empirical constant choice no 1.0
Note
  • Some studies measured $\Gamma_{Pope} > 1$ with $k_{res}$ comparisons between a LES and a corresponding filtered DNS. Nonphysical results may occur.
Source files

Definition at line 238 of file PopeIndex.H.

Constructor & Destructor Documentation

◆ PopeIndex() [1/2]

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

Construct from components.

Definition at line 55 of file PopeIndex.C.

References dict, and Foam::read().

Here is the call graph for this function:

◆ PopeIndex() [2/2]

PopeIndex ( const PopeIndex )
delete

No copy construct.

◆ ~PopeIndex()

virtual ~PopeIndex ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "PopeIndex"  )

Runtime type information.

◆ operator=()

void operator= ( const PopeIndex )
delete

No copy assignment.

◆ read()

bool read ( const dictionary dict)
virtual

Read top-level dictionary.

Reimplemented from resolutionIndexModel.

Definition at line 75 of file PopeIndex.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 96 of file PopeIndex.C.

References Foam::mag(), Foam::magSqr(), Foam::max(), tmp< T >::ref(), U, and UMean().

Here is the call graph for this function:

◆ write()

bool write ( )
virtual

Write the result field.

Implements resolutionIndexModel.

Definition at line 127 of file PopeIndex.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: