Loading...
Searching...
No Matches
kOmegaSSTBase< BasicEddyViscosityModel > Class Template Reference

Base class implementation of the k-omega-SST turbulence model for incompressible and compressible flows. More...

#include <kOmegaSSTBase.H>

Inheritance diagram for kOmegaSSTBase< BasicEddyViscosityModel >:
Collaboration diagram for kOmegaSSTBase< BasicEddyViscosityModel >:

Public Types

typedef BasicEddyViscosityModel::alphaField alphaField
typedef BasicEddyViscosityModel::rhoField rhoField
typedef BasicEddyViscosityModel::transportModel transportModel

Public Member Functions

 kOmegaSSTBase (const kOmegaSSTBase &)=delete
 No copy construct.
void operator= (const kOmegaSSTBase &)=delete
 No copy assignment.
 kOmegaSSTBase (const word &type, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName)
 Construct from components.
virtual ~kOmegaSSTBase ()=default
 Destructor.
virtual bool read ()
 Re-read model coefficients if they have changed.
tmp< volScalarFieldDkEff (const volScalarField &F1) const
 Return the effective diffusivity for k.
tmp< volScalarFieldDomegaEff (const volScalarField &F1) const
 Return the effective diffusivity for omega.
virtual tmp< volScalarFieldk () const
 Return the turbulence kinetic energy.
virtual tmp< volScalarFieldomega () const
 Return the turbulence kinetic energy dissipation rate.
virtual void correct ()
 Solve the turbulence equations and correct the turbulence viscosity.

Protected Member Functions

void setDecayControl (const dictionary &dict)
 Set decay control with kInf and omegaInf.
virtual tmp< volScalarFieldF1 (const volScalarField &CDkOmega) const
virtual tmp< volScalarFieldF2 () const
virtual tmp< volScalarFieldF3 () const
virtual tmp< volScalarFieldF23 () const
tmp< volScalarFieldblend (const volScalarField &F1, const dimensionedScalar &psi1, const dimensionedScalar &psi2) const
 Return the blended field.
tmp< volScalarField::Internalblend (const volScalarField::Internal &F1, const dimensionedScalar &psi1, const dimensionedScalar &psi2) const
 Return the internal blended field.
tmp< volScalarFieldalphaK (const volScalarField &F1) const
tmp< volScalarFieldalphaOmega (const volScalarField &F1) const
tmp< volScalarField::Internalbeta (const volScalarField::Internal &F1) const
tmp< volScalarField::Internalgamma (const volScalarField::Internal &F1) const
virtual void correctNut (const volScalarField &S2)
virtual void correctNut ()
virtual tmp< volScalarFieldS2 (const volTensorField &gradU) const
 Return square of strain rate.
virtual tmp< volScalarField::InternalPk (const volScalarField::Internal &G) const
 Return k production rate.
virtual tmp< volScalarField::InternalepsilonByk (const volScalarField &F1, const volTensorField &gradU) const
 Return epsilon/k which for standard RAS is betaStar*omega.
virtual tmp< volScalarField::InternalGbyNu0 (const volTensorField &gradU, const volScalarField &S2) const
 Return (G/nu)_0.
virtual tmp< volScalarField::InternalGbyNu (const volScalarField::Internal &GbyNu0, const volScalarField::Internal &F2, const volScalarField::Internal &S2) const
 Return G/nu.
virtual tmp< fvScalarMatrixkSource () const
virtual tmp< fvScalarMatrixomegaSource () const
virtual tmp< fvScalarMatrixQsas (const volScalarField::Internal &S2, const volScalarField::Internal &gamma, const volScalarField::Internal &beta) const

Protected Attributes

dimensionedScalar alphaK1_
dimensionedScalar alphaK2_
dimensionedScalar alphaOmega1_
dimensionedScalar alphaOmega2_
dimensionedScalar gamma1_
dimensionedScalar gamma2_
dimensionedScalar beta1_
dimensionedScalar beta2_
dimensionedScalar betaStar_
dimensionedScalar a1_
dimensionedScalar b1_
dimensionedScalar c1_
Switch F3_
 Flag to include the F3 term.
const volScalarFieldy_
 Wall distance.
volScalarField k_
 Turbulent kinetic energy field [m^2/s^2].
volScalarField omega_
 Specific dissipation rate field [1/s].
Switch decayControl_
 Flag to include the decay control.
dimensionedScalar kInf_
dimensionedScalar omegaInf_

Detailed Description

template<class BasicEddyViscosityModel>
class Foam::kOmegaSSTBase< BasicEddyViscosityModel >

Base class implementation of the k-omega-SST turbulence model for incompressible and compressible flows.

Turbulence model described in:

    Menter, F. R. & Esch, T. (2001).
    Elements of Industrial Heat Transfer Prediction.
    16th Brazilian Congress of Mechanical Engineering (COBEM).

with updated coefficients from

    Menter, F. R., Kuntz, M., and Langtry, R. (2003).
    Ten Years of Industrial Experience with the SST Turbulence Model.
    Turbulence, Heat and Mass Transfer 4, ed: K. Hanjalic, Y. Nagano,
    & M. Tummers, Begell House, Inc., 625 - 632.

but with the consistent production terms from the 2001 paper as form in the 2003 paper is a typo, see

    http://turbmodels.larc.nasa.gov/sst.html

and the addition of the optional F3 term for rough walls from

    Hellsten, A. (1998).
    Some Improvements in Menter's k-omega-SST turbulence model
    29th AIAA Fluid Dynamics Conference, AIAA-98-2554.

and the optional decay control from:

    Spalart, P. R. and Rumsey, C. L. (2007).
    Effective Inflow Conditions for Turbulence Models in Aerodynamic
    Calculations
    AIAA Journal, 45(10), 2544 - 2553.

Note that this implementation is written in terms of alpha diffusion coefficients rather than the more traditional sigma (alpha = 1/sigma) so that the blending can be applied to all coefficients in a consistent manner. The paper suggests that sigma is blended but this would not be consistent with the blending of the k-epsilon and k-omega models.

Also note that the error in the last term of equation (2) relating to sigma has been corrected.

Wall-functions are applied in this implementation by using equations (14) to specify the near-wall omega as appropriate.

The blending functions (15) and (16) are not currently used because of the uncertainty in their origin, range of applicability and that if y+ becomes sufficiently small blending u_tau in this manner clearly becomes nonsense.

The default model coefficients are

    kOmegaSSTBaseCoeffs
    {
        alphaK1         0.85;
        alphaK2         1.0;
        alphaOmega1     0.5;
        alphaOmega2     0.856;
        beta1           0.075;
        beta2           0.0828;
        betaStar        0.09;
        gamma1          5/9;
        gamma2          0.44;
        a1              0.31;
        b1              1.0;
        c1              10.0;
        F3              no;

        // Optional decay control
        decayControl    yes;
        kInf            \<far-field k value\>;
        omegaInf        \<far-field omega value\>;
    }
Source files

Definition at line 125 of file kOmegaSSTBase.H.

Member Typedef Documentation

◆ alphaField

template<class BasicEddyViscosityModel>
typedef BasicEddyViscosityModel::alphaField alphaField

Definition at line 324 of file kOmegaSSTBase.H.

◆ rhoField

template<class BasicEddyViscosityModel>
typedef BasicEddyViscosityModel::rhoField rhoField

Definition at line 325 of file kOmegaSSTBase.H.

◆ transportModel

template<class BasicEddyViscosityModel>
typedef BasicEddyViscosityModel::transportModel transportModel

Definition at line 326 of file kOmegaSSTBase.H.

Constructor & Destructor Documentation

◆ kOmegaSSTBase() [1/2]

template<class BasicEddyViscosityModel>
kOmegaSSTBase ( const kOmegaSSTBase< BasicEddyViscosityModel > & )
delete

No copy construct.

References kOmegaSSTBase().

Referenced by kOmegaSSTBase(), and operator=().

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

◆ kOmegaSSTBase() [2/2]

template<class BasicEddyViscosityModel>
kOmegaSSTBase ( const word & type,
const alphaField & alpha,
const rhoField & rho,
const volVectorField & U,
const surfaceScalarField & alphaRhoPhi,
const surfaceScalarField & phi,
const transportModel & transport,
const word & propertiesName = turbulenceModel::propertiesName )

Construct from components.

Definition at line 232 of file kOmegaSSTBase.C.

References alpha, alphaK1_, phi, rho, and U.

◆ ~kOmegaSSTBase()

template<class BasicEddyViscosityModel>
virtual ~kOmegaSSTBase ( )
virtualdefault

Destructor.

Member Function Documentation

◆ setDecayControl()

template<class BasicEddyViscosityModel>
void setDecayControl ( const dictionary & dict)
protected

Set decay control with kInf and omegaInf.

Definition at line 441 of file kOmegaSSTBase.C.

References decayControl_, dict, Foam::endl(), Foam::Info, kInf_, and omegaInf_.

Referenced by read().

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

◆ F1()

◆ F2()

template<class BasicEddyViscosityModel>
tmp< volScalarField > F2 ( ) const
protectedvirtual

◆ F3()

template<class BasicEddyViscosityModel>
tmp< volScalarField > F3 ( ) const
protectedvirtual

Definition at line 83 of file kOmegaSSTBase.C.

References Foam::min(), mu, omega_, Foam::pow4(), Foam::sqr(), Foam::tanh(), and y_.

Here is the call graph for this function:

◆ F23()

template<class BasicEddyViscosityModel>
tmp< volScalarField > F23 ( ) const
protectedvirtual

Definition at line 96 of file kOmegaSSTBase.C.

References F2, F3, F3_, and tmp< T >::ref().

Referenced by correct(), and correctNut().

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

◆ blend() [1/2]

template<class BasicEddyViscosityModel>
tmp< volScalarField > blend ( const volScalarField & F1,
const dimensionedScalar & psi1,
const dimensionedScalar & psi2 ) const
inlineprotected

Return the blended field.

Definition at line 205 of file kOmegaSSTBase.H.

References F1(), psi1, and psi2.

Referenced by alphaK(), alphaOmega(), beta(), and gamma().

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

◆ blend() [2/2]

template<class BasicEddyViscosityModel>
tmp< volScalarField::Internal > blend ( const volScalarField::Internal & F1,
const dimensionedScalar & psi1,
const dimensionedScalar & psi2 ) const
inlineprotected

Return the internal blended field.

Definition at line 218 of file kOmegaSSTBase.H.

References F1(), psi1, and psi2.

Here is the call graph for this function:

◆ alphaK()

template<class BasicEddyViscosityModel>
tmp< volScalarField > alphaK ( const volScalarField & F1) const
inlineprotected

Definition at line 228 of file kOmegaSSTBase.H.

References alphaK1_, alphaK2_, blend(), and F1().

Referenced by DkEff().

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

◆ alphaOmega()

template<class BasicEddyViscosityModel>
tmp< volScalarField > alphaOmega ( const volScalarField & F1) const
inlineprotected

Definition at line 233 of file kOmegaSSTBase.H.

References alphaOmega1_, alphaOmega2_, blend(), and F1().

Referenced by DomegaEff().

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

◆ beta()

template<class BasicEddyViscosityModel>
tmp< volScalarField::Internal > beta ( const volScalarField::Internal & F1) const
inlineprotected

Definition at line 238 of file kOmegaSSTBase.H.

References beta1_, beta2_, blend(), F1(), tmp< T >::New(), IOobject::scopedName(), and Foam::type().

Referenced by correct(), Qsas(), and kOmegaSSTSAS< Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel > >::Qsas().

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

◆ gamma()

template<class BasicEddyViscosityModel>
tmp< volScalarField::Internal > gamma ( const volScalarField::Internal & F1) const
inlineprotected

Definition at line 250 of file kOmegaSSTBase.H.

References blend(), F1(), gamma1_, gamma2_, tmp< T >::New(), IOobject::scopedName(), and Foam::type().

Referenced by correct(), Qsas(), and kOmegaSSTSAS< Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel > >::Qsas().

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

◆ correctNut() [1/2]

◆ correctNut() [2/2]

◆ S2()

◆ Pk()

template<class BasicEddyViscosityModel>
tmp< volScalarField::Internal > Pk ( const volScalarField::Internal & G) const
protectedvirtual

Return k production rate.

Reimplemented in kOmegaSSTLM< BasicTurbulenceModel >, kOmegaSSTLM< EddyDiffusivity< fluidThermoCompressibleTurbulenceModel > >, and kOmegaSSTLM< Foam::EddyDiffusivity< Foam::fluidThermoCompressibleTurbulenceModel > >.

Definition at line 140 of file kOmegaSSTBase.C.

References betaStar_, c1_, k_, Foam::min(), and omega_.

Referenced by correct().

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

◆ epsilonByk()

◆ GbyNu0()

◆ GbyNu()

◆ kSource()

template<class BasicEddyViscosityModel>
tmp< fvScalarMatrix > kSource ( ) const
protectedvirtual

Definition at line 192 of file kOmegaSSTBase.C.

References tmp< T >::New().

Referenced by correct().

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

◆ omegaSource()

template<class BasicEddyViscosityModel>
tmp< fvScalarMatrix > omegaSource ( ) const
protectedvirtual

Definition at line 203 of file kOmegaSSTBase.C.

References Foam::dimTime, Foam::dimVolume, tmp< T >::New(), and omega_.

Referenced by correct().

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

◆ Qsas()

template<class BasicEddyViscosityModel>
tmp< fvScalarMatrix > Qsas ( const volScalarField::Internal & S2,
const volScalarField::Internal & gamma,
const volScalarField::Internal & beta ) const
protectedvirtual

◆ operator=()

template<class BasicEddyViscosityModel>
void operator= ( const kOmegaSSTBase< BasicEddyViscosityModel > & )
delete

No copy assignment.

References alpha, kOmegaSSTBase(), phi, turbulenceModel::propertiesName, rho, and U.

Here is the call graph for this function:

◆ read()

◆ DkEff()

template<class BasicEddyViscosityModel>
tmp< volScalarField > DkEff ( const volScalarField & F1) const
inline

Return the effective diffusivity for k.

Definition at line 376 of file kOmegaSSTBase.H.

References alphaK(), F1(), tmp< T >::New(), and nu.

Referenced by correct().

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

◆ DomegaEff()

template<class BasicEddyViscosityModel>
tmp< volScalarField > DomegaEff ( const volScalarField & F1) const
inline

Return the effective diffusivity for omega.

Definition at line 388 of file kOmegaSSTBase.H.

References alphaOmega(), F1(), tmp< T >::New(), and nu.

Referenced by correct().

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

◆ k()

template<class BasicEddyViscosityModel>
virtual tmp< volScalarField > k ( ) const
inlinevirtual

Return the turbulence kinetic energy.

Definition at line 400 of file kOmegaSSTBase.H.

References k_.

◆ omega()

template<class BasicEddyViscosityModel>
virtual tmp< volScalarField > omega ( ) const
inlinevirtual

Return the turbulence kinetic energy dissipation rate.

Definition at line 408 of file kOmegaSSTBase.H.

References omega_.

◆ correct()

Member Data Documentation

◆ alphaK1_

template<class BasicEddyViscosityModel>
dimensionedScalar alphaK1_
protected

Definition at line 135 of file kOmegaSSTBase.H.

Referenced by alphaK(), kOmegaSSTBase(), and read().

◆ alphaK2_

template<class BasicEddyViscosityModel>
dimensionedScalar alphaK2_
protected

Definition at line 136 of file kOmegaSSTBase.H.

Referenced by alphaK(), and read().

◆ alphaOmega1_

template<class BasicEddyViscosityModel>
dimensionedScalar alphaOmega1_
protected

Definition at line 138 of file kOmegaSSTBase.H.

Referenced by alphaOmega(), and read().

◆ alphaOmega2_

template<class BasicEddyViscosityModel>
dimensionedScalar alphaOmega2_
protected

Definition at line 139 of file kOmegaSSTBase.H.

Referenced by alphaOmega(), correct(), F1(), and read().

◆ gamma1_

template<class BasicEddyViscosityModel>
dimensionedScalar gamma1_
protected

Definition at line 141 of file kOmegaSSTBase.H.

Referenced by gamma(), and read().

◆ gamma2_

template<class BasicEddyViscosityModel>
dimensionedScalar gamma2_
protected

Definition at line 142 of file kOmegaSSTBase.H.

Referenced by gamma(), and read().

◆ beta1_

template<class BasicEddyViscosityModel>
dimensionedScalar beta1_
protected

Definition at line 144 of file kOmegaSSTBase.H.

Referenced by beta(), and read().

◆ beta2_

template<class BasicEddyViscosityModel>
dimensionedScalar beta2_
protected

Definition at line 145 of file kOmegaSSTBase.H.

Referenced by beta(), and read().

◆ betaStar_

template<class BasicEddyViscosityModel>
dimensionedScalar betaStar_
protected

Definition at line 147 of file kOmegaSSTBase.H.

Referenced by correct(), epsilonByk(), F1(), F2(), GbyNu(), Pk(), and read().

◆ a1_

template<class BasicEddyViscosityModel>
dimensionedScalar a1_
protected

Definition at line 149 of file kOmegaSSTBase.H.

Referenced by correctNut(), GbyNu(), and read().

◆ b1_

template<class BasicEddyViscosityModel>
dimensionedScalar b1_
protected

Definition at line 150 of file kOmegaSSTBase.H.

Referenced by correctNut(), GbyNu(), and read().

◆ c1_

template<class BasicEddyViscosityModel>
dimensionedScalar c1_
protected

Definition at line 151 of file kOmegaSSTBase.H.

Referenced by GbyNu(), Pk(), and read().

◆ F3_

template<class BasicEddyViscosityModel>
Switch F3_
protected

Flag to include the F3 term.

Definition at line 156 of file kOmegaSSTBase.H.

Referenced by F23(), and read().

◆ y_

template<class BasicEddyViscosityModel>
const volScalarField& y_
protected

Wall distance.

Note: different to wall distance in parent RASModel which is for near-wall cells only

Definition at line 167 of file kOmegaSSTBase.H.

Referenced by F1(), F2(), and F3().

◆ k_

template<class BasicEddyViscosityModel>
volScalarField k_
protected

Turbulent kinetic energy field [m^2/s^2].

Definition at line 172 of file kOmegaSSTBase.H.

Referenced by correct(), correctNut(), F1(), F2(), k(), and Pk().

◆ omega_

template<class BasicEddyViscosityModel>
volScalarField omega_
protected

Specific dissipation rate field [1/s].

Definition at line 177 of file kOmegaSSTBase.H.

Referenced by correct(), correctNut(), epsilonByk(), F1(), F2(), F3(), GbyNu(), omega(), omegaSource(), Pk(), and Qsas().

◆ decayControl_

template<class BasicEddyViscosityModel>
Switch decayControl_
protected

Flag to include the decay control.

Definition at line 185 of file kOmegaSSTBase.H.

Referenced by setDecayControl().

◆ kInf_

template<class BasicEddyViscosityModel>
dimensionedScalar kInf_
protected

Definition at line 186 of file kOmegaSSTBase.H.

Referenced by correct(), and setDecayControl().

◆ omegaInf_

template<class BasicEddyViscosityModel>
dimensionedScalar omegaInf_
protected

Definition at line 187 of file kOmegaSSTBase.H.

Referenced by correct(), and setDecayControl().


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