Public Member Functions | List of all members
DEShybrid< Type > Class Template Reference

Hybrid convection scheme of Travin et al. for hybrid RAS/LES calculations. More...

Inheritance diagram for DEShybrid< Type >:
Inheritance graph
[legend]
Collaboration diagram for DEShybrid< Type >:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("DEShybrid")
 
 DEShybrid (const fvMesh &mesh, Istream &is)
 
 DEShybrid (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
 
virtual tmp< surfaceScalarFieldblendingFactor (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
tmp< surfaceScalarFieldweights (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
virtual bool corrected () const
 
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
- Public Member Functions inherited from surfaceInterpolationScheme< Type >
 TypeName ("surfaceInterpolationScheme")
 
 declareRunTimeSelectionTable (tmp, surfaceInterpolationScheme, Mesh,(const fvMesh &mesh, Istream &schemeData),(mesh, schemeData))
 
 declareRunTimeSelectionTable (tmp, surfaceInterpolationScheme, MeshFlux,(const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData),(mesh, faceFlux, schemeData))
 
 surfaceInterpolationScheme (const fvMesh &mesh)
 
virtual ~surfaceInterpolationScheme ()=default
 
const fvMeshmesh () const
 
virtual tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf) const
 
tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 
int count () const noexcept
 
bool unique () const noexcept
 
void operator++ () noexcept
 
void operator++ (int) noexcept
 
void operator-- () noexcept
 
void operator-- (int) noexcept
 
- Public Member Functions inherited from blendedSchemeBase< Type >
 blendedSchemeBase ()
 
virtual ~blendedSchemeBase ()=default
 

Additional Inherited Members

- Static Public Member Functions inherited from surfaceInterpolationScheme< Type >
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, Istream &schemeData)
 
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData)
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
 
template<class SFType >
static tmp< GeometricField< typename innerProduct< typename SFType::value_type, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const SFType &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf, const tmp< surfaceScalarField > &tlambdas)
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &)
 

Detailed Description

template<class Type>
class Foam::DEShybrid< Type >

Hybrid convection scheme of Travin et al. for hybrid RAS/LES calculations.

The scheme provides a blend between two convection schemes, based on local properties including the wall distance, velocity gradient and eddy viscosity. The scheme was originally developed for DES calculations to blend a low-dissipative scheme, e.g. linear, in the vorticity-dominated, finely-resolved regions and a numerically more robust, e.g. upwind-biased, convection scheme in irrotational or coarsely-resolved regions.

The routine calculates the blending factor denoted as "sigma" in the literature reference, where 0 <= sigma <= sigmaMax, which is then employed to set the weights:

\[ weight = (1-sigma) w_1 + sigma w_2 \]

where

$ sigma $ = blending factor
$ w_1 $ = scheme 1 weights
$ w_2 $ = scheme 2 weights

First published in:

        A. Travin, M. Shur, M. Strelets, P. Spalart (2000).
        Physical and numerical upgrades in the detached-eddy simulation of
        complex turbulent flows.
        In Proceedings of the 412th Euromech Colloquium on LES and Complex
        Transition and Turbulent Flows, Munich, Germany

Original publication contained a typo for C_H3 constant. Corrected version with minor changes for 2 lower limiters published in:

        P. Spalart, M. Shur, M. Strelets, A. Travin (2012).
        Sensitivity of Landing-Gear Noise Predictions by Large-Eddy
        Simulation to Numerics and Resolution.
        AIAA Paper 2012-1174, 50th AIAA Aerospace Sciences Meeting,
        Nashville / TN, Jan. 2012

Example of the DEShybrid scheme specification using linear within the LES region and linearUpwind within the RAS region:

    divSchemes
    {
        .
        .
        div(phi,U)      Gauss DEShybrid
            linear                    // scheme 1
            linearUpwind grad(U)      // scheme 2
            hmax                      // LES delta name, e.g. 'delta', 'hmax'
            0.65                      // DES coefficient, typically = 0.65
            30                        // Reference velocity scale
            2                         // Reference length scale
            0                         // Minimum sigma limit (0-1)
            1                         // Maximum sigma limit (0-1)
            1.0e-03;                  // Limiter of B function, typically 1e-03
        .
        .
    }

Notes

Source files

Definition at line 140 of file DEShybrid.H.

Constructor & Destructor Documentation

◆ DEShybrid() [1/2]

DEShybrid ( const fvMesh mesh,
Istream is 
)
inline

Definition at line 276 of file DEShybrid.H.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and dimensioned::value().

Here is the call graph for this function:

◆ DEShybrid() [2/2]

DEShybrid ( const fvMesh mesh,
const surfaceScalarField faceFlux,
Istream is 
)
inline

Definition at line 338 of file DEShybrid.H.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, and dimensioned::value().

Here is the call graph for this function:

Member Function Documentation

◆ TypeName()

TypeName ( "DEShybrid< Type >"  )

◆ blendingFactor()

virtual tmp<surfaceScalarField> blendingFactor ( const GeometricField< Type, fvPatchField, volMesh > &  vf) const
inlinevirtual

◆ weights()

tmp<surfaceScalarField> weights ( const GeometricField< Type, fvPatchField, volMesh > &  vf) const
inlinevirtual

Implements surfaceInterpolationScheme< Type >.

Definition at line 454 of file DEShybrid.H.

References DEShybrid< Type >::blendingFactor().

Here is the call graph for this function:

◆ interpolate()

tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate ( const GeometricField< Type, fvPatchField, volMesh > &  vf) const
inlinevirtual

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 470 of file DEShybrid.H.

References DEShybrid< Type >::blendingFactor().

Here is the call graph for this function:

◆ corrected()

virtual bool corrected ( ) const
inlinevirtual

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 483 of file DEShybrid.H.

Referenced by DEShybrid< Type >::correction().

Here is the caller graph for this function:

◆ correction()

virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > correction ( const GeometricField< Type, fvPatchField, volMesh > &  vf) const
inlinevirtual

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 493 of file DEShybrid.H.

References DEShybrid< Type >::blendingFactor(), and DEShybrid< Type >::corrected().

Here is the call graph for this function:

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