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

Improved hybrid convection scheme of Travin et al. for hybrid RAS/LES calculations with enhanced Grey Area Mitigation (GAM) behaviour. More...

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

Public Member Functions

 TypeName ("DEShybrid")
 Runtime type information. More...
 
 DEShybrid (const fvMesh &mesh, Istream &is)
 Construct from mesh and Istream. More...
 
 DEShybrid (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &is)
 Construct from mesh, faceFlux and Istream. More...
 
virtual tmp< surfaceScalarFieldblendingFactor (const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the face-based blending factor. More...
 
tmp< surfaceScalarFieldweights (const VolFieldType &vf) const
 Return the interpolation weighting factors. More...
 
tmp< SurfaceFieldTypeinterpolate (const VolFieldType &vf) const
 Return the face-interpolate of the given cell field with explicit correction. More...
 
virtual bool corrected () const
 Return true if this scheme uses an explicit correction. More...
 
virtual tmp< SurfaceFieldTypecorrection (const VolFieldType &vf) const
 Return the explicit correction to the face-interpolate for the given field. More...
 
- Public Member Functions inherited from surfaceInterpolationScheme< Type >
 TypeName ("surfaceInterpolationScheme")
 Runtime type information. More...
 
 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)
 Construct from mesh. More...
 
virtual ~surfaceInterpolationScheme ()=default
 Destructor. More...
 
const fvMeshmesh () const
 Return mesh reference. More...
 
virtual tmp< surfaceScalarFieldweights (const GeometricField< Type, fvPatchField, volMesh > &) const =0
 Return the interpolation weighting factors for the given field. More...
 
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > correction (const GeometricField< Type, fvPatchField, volMesh > &) const
 Return the explicit correction to the face-interpolate. More...
 
virtual tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const GeometricField< Type, fvPatchField, volMesh > &vf) const
 Return the face-interpolate of the given cell field. More...
 
tmp< GeometricField< typename innerProduct< vector, Type >::type, fvsPatchField, surfaceMesh > > dotInterpolate (const surfaceVectorField &Sf, const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 Return the face-interpolate of the given tmp cell field. More...
 
virtual tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &) const
 Return the face-interpolate of the given cell field. More...
 
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const tmp< GeometricField< Type, fvPatchField, volMesh >> &) const
 Return the face-interpolate of the given tmp cell field. More...
 
- Public Member Functions inherited from refCount
constexpr refCount () noexcept
 Default construct, initializing count to 0. More...
 
int count () const noexcept
 Return the current reference count. More...
 
bool unique () const noexcept
 Return true if the reference count is zero. More...
 
void operator++ () noexcept
 Increment the reference count. More...
 
void operator++ (int) noexcept
 Increment the reference count. More...
 
void operator-- () noexcept
 Decrement the reference count. More...
 
void operator-- (int) noexcept
 Decrement the reference count. More...
 
- Public Member Functions inherited from blendedSchemeBase< Type >
 blendedSchemeBase ()=default
 Constructor. More...
 
virtual ~blendedSchemeBase ()=default
 Destructor. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from surfaceInterpolationScheme< Type >
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, Istream &schemeData)
 Return new tmp interpolation scheme. More...
 
static tmp< surfaceInterpolationScheme< Type > > New (const fvMesh &mesh, const surfaceScalarField &faceFlux, Istream &schemeData)
 Return new tmp interpolation scheme. More...
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &, const tmp< surfaceScalarField > &)
 Return the face-interpolate of the given cell field. More...
 
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)
 Return the face-interpolate of the given cell field. More...
 
static tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > interpolate (const GeometricField< Type, fvPatchField, volMesh > &, const tmp< surfaceScalarField > &)
 Return the face-interpolate of the given cell field. More...
 

Detailed Description

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

Improved hybrid convection scheme of Travin et al. for hybrid RAS/LES calculations with enhanced Grey Area Mitigation (GAM) behaviour.

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:

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

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

        Spalart, P., Shur, M., Strelets, M., & Travin, A. (2012).
        Sensitivity of landing-gear noise predictions by large-eddy
        simulation to numerics and resolution.
        In 50th AIAA Aerospace Sciences Meeting Including the
        New Horizons Forum and Aerospace Exposition. Nashville, US.
        DOI:10.2514/6.2012-1174

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
            delta                     // LES delta name, e.g. 'delta', 'hmax'
            0.65                      // CDES coefficient
            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
            1.0;                      // nut limiter (if > 1, GAM extension is active)
        .
        .
    }

Notes

Source files

Definition at line 143 of file DEShybrid.H.

Constructor & Destructor Documentation

◆ DEShybrid() [1/2]

DEShybrid ( const fvMesh mesh,
Istream is 
)
inline

Construct from mesh and Istream.

The name of the flux field is read from the Istream and looked-up from the mesh objectRegistry

Definition at line 406 of file DEShybrid.H.

◆ DEShybrid() [2/2]

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

Construct from mesh, faceFlux and Istream.

Definition at line 431 of file DEShybrid.H.

Member Function Documentation

◆ TypeName()

TypeName ( "DEShybrid< Type >"  )

Runtime type information.

◆ blendingFactor()

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

Return the face-based blending factor.

Implements blendedSchemeBase< Type >.

Definition at line 469 of file DEShybrid.H.

References objectRegistry::cfindObject(), delta, Foam::exit(), Foam::FatalError, FatalErrorInFunction, objectRegistry::lookupObject(), surfaceInterpolationScheme< Type >::mesh(), and turbulenceModel::propertiesName.

Referenced by DEShybrid< Type >::correction(), DEShybrid< Type >::interpolate(), and DEShybrid< Type >::weights().

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

◆ weights()

tmp<surfaceScalarField> weights ( const VolFieldType vf) const
inline

Return the interpolation weighting factors.

Definition at line 508 of file DEShybrid.H.

References DEShybrid< Type >::blendingFactor().

Here is the call graph for this function:

◆ interpolate()

tmp<SurfaceFieldType> interpolate ( const VolFieldType vf) const
inline

Return the face-interpolate of the given cell field with explicit correction.

Definition at line 522 of file DEShybrid.H.

References DEShybrid< Type >::blendingFactor().

Here is the call graph for this function:

◆ corrected()

virtual bool corrected ( ) const
inlinevirtual

Return true if this scheme uses an explicit correction.

Reimplemented from surfaceInterpolationScheme< Type >.

Definition at line 535 of file DEShybrid.H.

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

Here is the caller graph for this function:

◆ correction()

virtual tmp<SurfaceFieldType> correction ( const VolFieldType vf) const
inlinevirtual

Return the explicit correction to the face-interpolate for the given field.

Definition at line 545 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: