Public Types | Public Member Functions | Protected Member Functions | List of all members
SpalartAllmaras< BasicTurbulenceModel > Class Template Reference

Spalart-Allmaras one-transport-equation linear-eddy-viscosity turbulence closure model for incompressible and compressible external flows. More...

Inheritance diagram for SpalartAllmaras< BasicTurbulenceModel >:
Inheritance graph
[legend]
Collaboration diagram for SpalartAllmaras< BasicTurbulenceModel >:
Collaboration graph
[legend]

Public Types

typedef BasicTurbulenceModel::alphaField alphaField
 
typedef BasicTurbulenceModel::rhoField rhoField
 
typedef BasicTurbulenceModel::transportModel transportModel
 
- Public Types inherited from SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >
typedef eddyViscosity< RASModel< BasicTurbulenceModel > > ::alphaField alphaField
 
typedef eddyViscosity< RASModel< BasicTurbulenceModel > > ::rhoField rhoField
 
typedef eddyViscosity< RASModel< BasicTurbulenceModel > > ::transportModel transportModel
 
- Public Types inherited from eddyViscosity< RASModel< BasicTurbulenceModel > >
typedef RASModel< BasicTurbulenceModel > ::alphaField alphaField
 
typedef RASModel< BasicTurbulenceModel > ::rhoField rhoField
 
typedef RASModel< BasicTurbulenceModel > ::transportModel transportModel
 
- Public Types inherited from linearViscousStress< RASModel< BasicTurbulenceModel > >
typedef RASModel< BasicTurbulenceModel > ::alphaField alphaField
 
typedef RASModel< BasicTurbulenceModel > ::rhoField rhoField
 
typedef RASModel< BasicTurbulenceModel > ::transportModel transportModel
 
- Public Types inherited from RASModel< BasicTurbulenceModel >
typedef BasicTurbulenceModel::alphaField alphaField
 
typedef BasicTurbulenceModel::rhoField rhoField
 
typedef BasicTurbulenceModel::transportModel transportModel
 

Public Member Functions

 TypeName ("SpalartAllmaras")
 Runtime type information. More...
 
 SpalartAllmaras (const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName, const word &type=typeName)
 Construct from components. More...
 
virtual ~SpalartAllmaras ()=default
 Destructor. More...
 
- Public Member Functions inherited from SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >
 SpalartAllmarasBase (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. More...
 
virtual ~SpalartAllmarasBase ()=default
 Destructor. More...
 
virtual bool read ()
 Re-read model coefficients if they have changed. More...
 
tmp< volScalarFieldDnuTildaEff () const
 Return the effective diffusivity for nuTilda. More...
 
virtual tmp< volScalarFieldk () const
 Return the (estimated) turbulent kinetic energy. More...
 
virtual tmp< volScalarFieldepsilon () const
 Return the (estimated) turbulent kinetic energy dissipation rate. More...
 
virtual tmp< volScalarFieldomega () const
 Return the (estimated) specific dissipation rate. More...
 
tmp< volScalarFieldnuTilda () const
 Return the modified kinematic viscosity. More...
 
virtual void correct ()
 Correct nuTilda and related properties. More...
 
- Public Member Functions inherited from eddyViscosity< RASModel< BasicTurbulenceModel > >
 eddyViscosity (const word &modelName, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName)
 Construct from components. More...
 
virtual ~eddyViscosity ()=default
 Destructor. More...
 
virtual tmp< volScalarFieldnut () const
 Return the turbulence viscosity. More...
 
virtual tmp< scalarFieldnut (const label patchi) const
 Return the turbulence viscosity on patch. More...
 
virtual tmp< volSymmTensorFieldR () const
 Return the Reynolds stress tensor. More...
 
virtual void validate ()
 Validate the turbulence fields after construction. More...
 
- Public Member Functions inherited from linearViscousStress< RASModel< BasicTurbulenceModel > >
 linearViscousStress (const word &modelName, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName)
 Construct from components. More...
 
virtual ~linearViscousStress ()=default
 Destructor. More...
 
virtual tmp< volSymmTensorFielddevRhoReff () const
 Return the effective stress tensor. More...
 
virtual tmp< volSymmTensorFielddevRhoReff (const volVectorField &U) const
 Return the effective stress tensor based on a given velocity field. More...
 
virtual tmp< fvVectorMatrixdivDevRhoReff (volVectorField &U) const
 Return the source term for the momentum equation. More...
 
virtual tmp< fvVectorMatrixdivDevRhoReff (const volScalarField &rho, volVectorField &U) const
 Return the source term for the momentum equation. More...
 
- Public Member Functions inherited from RASModel< BasicTurbulenceModel >
 TypeName ("RAS")
 Runtime type information. More...
 
 declareRunTimeSelectionTable (autoPtr, RASModel, dictionary,(const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName),(alpha, rho, U, alphaRhoPhi, phi, transport, propertiesName))
 
 RASModel (const word &type, const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName)
 Construct from components. More...
 
virtual ~RASModel ()=default
 Destructor. More...
 
const dimensionedScalarkMin () const noexcept
 Return the lower allowable limit for k (default: SMALL) More...
 
const dimensionedScalarepsilonMin () const noexcept
 Return the lower allowable limit for epsilon (default: SMALL) More...
 
const dimensionedScalaromegaMin () const noexcept
 Return the lower allowable limit for omega (default: SMALL) More...
 
dimensionedScalarkMin () noexcept
 Allow kMin to be changed. More...
 
dimensionedScalarepsilonMin () noexcept
 Allow epsilonMin to be changed. More...
 
dimensionedScalaromegaMin () noexcept
 Allow omegaMin to be changed. More...
 
virtual const dictionarycoeffDict () const
 Const access to the coefficients dictionary. More...
 
virtual tmp< volScalarFieldnuEff () const
 Return the effective viscosity. More...
 
virtual tmp< scalarFieldnuEff (const label patchi) const
 Return the effective viscosity on patch. More...
 
- Public Member Functions inherited from RASModelBase
 ClassName ("RASModelBase")
 Runtime type information. More...
 
 RASModelBase () noexcept=default
 Constructor. More...
 
virtual ~RASModelBase ()=default
 Destructor. More...
 

Protected Member Functions

virtual tmp< volScalarFielddTilda (const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU) const
 Return the length scale. More...
 
virtual void correctNut ()
 
- Protected Member Functions inherited from SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >
tmp< volScalarFieldchi () const
 
tmp< volScalarFieldfv1 (const volScalarField &chi) const
 
tmp< volScalarFieldfv2 (const volScalarField &chi, const volScalarField &fv1) const
 
tmp< volScalarFieldft2 (const volScalarField &chi) const
 
tmp< volScalarFieldOmega (const volTensorField &gradU) const
 
tmp< volScalarFieldr (const volScalarField &nur, const volScalarField &Stilda, const volScalarField &dTilda) const
 
tmp< volScalarField::Internalfw (const volScalarField &Stilda, const volScalarField &dTilda) const
 
virtual tmp< volScalarFieldStilda (const volScalarField &chi, const volScalarField &fv1, const volTensorField &gradU, const volScalarField &dTilda) const
 
void correctNut (const volScalarField &fv1)
 
- Protected Member Functions inherited from RASModel< BasicTurbulenceModel >
virtual void printCoeffs (const word &type)
 Print model coefficients. More...
 
 RASModel (const RASModel &)=delete
 No copy construct. More...
 
void operator= (const RASModel &)=delete
 No copy assignment. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from RASModel< BasicTurbulenceModel >
static autoPtr< RASModelNew (const alphaField &alpha, const rhoField &rho, const volVectorField &U, const surfaceScalarField &alphaRhoPhi, const surfaceScalarField &phi, const transportModel &transport, const word &propertiesName=turbulenceModel::propertiesName)
 Return a reference to the selected RAS model. More...
 
- Protected Attributes inherited from SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >
dimensionedScalar sigmaNut_
 
dimensionedScalar kappa_
 
dimensionedScalar Cb1_
 
dimensionedScalar Cb2_
 
dimensionedScalar Cw1_
 
dimensionedScalar Cw2_
 
dimensionedScalar Cw3_
 
dimensionedScalar Cv1_
 
dimensionedScalar Cs_
 
dimensionedScalar ck_
 
Switch ft2_
 
dimensionedScalar Ct3_
 
dimensionedScalar Ct4_
 
volScalarField nuTilda_
 Modified kinematic viscosity [m^2/s]. More...
 
const volScalarFieldy_
 Wall distance. More...
 
- Protected Attributes inherited from eddyViscosity< RASModel< BasicTurbulenceModel > >
volScalarField nut_
 
- Protected Attributes inherited from RASModel< BasicTurbulenceModel >
dictionary RASDict_
 RAS coefficients dictionary. More...
 
Switch turbulence_
 Turbulence on/off flag. More...
 
Switch printCoeffs_
 Flag to print the model coeffs at run-time. More...
 
dictionary coeffDict_
 Model coefficients dictionary. More...
 
dimensionedScalar kMin_
 Lower limit of k. More...
 
dimensionedScalar epsilonMin_
 Lower limit of epsilon. More...
 
dimensionedScalar omegaMin_
 Lower limit for omega. More...
 

Detailed Description

template<class BasicTurbulenceModel>
class Foam::RASModels::SpalartAllmaras< BasicTurbulenceModel >

Spalart-Allmaras one-transport-equation linear-eddy-viscosity turbulence closure model for incompressible and compressible external flows.

Required fields

    nuTilda   | Modified kinematic viscosity [m2/s]

References:

    Standard model:
        Spalart, P.R., & Allmaras, S.R. (1994).
        A one-equation turbulence model for aerodynamic flows.
        La Recherche Aerospatiale, 1, 5-21.

    Standard model without trip and ft2 terms (tag:R):
        Rumsey, C. (2020).
        The Spalart-Allmaras Turbulence Model.
        Spalart-Allmaras One-Equation Model without ft2 Term (SA-noft2).
        https://turbmodels.larc.nasa.gov/spalart.html#sanoft2
        (Retrieved:12-01-2021).
Usage
Example by using constant/turbulenceProperties:
RAS
{
    // Mandatory entries (unmodifiable)
    RASModel        SpalartAllmaras;

    // Optional entries (runtime modifiable)
    turbulence      on;
    printCoeffs     on;

    SpalartAllmarasCoeffs
    {
        sigmaNut    0.66666;
        kappa       0.41;
        Cb1         0.1355;
        Cb2         0.622;
        Cw2         0.3;
        Cw3         2.0;
        Cv1         7.1;
        Cs          0.3;
    }
}
Note
  • The model is implemented without the trip-term since the model has almost always been used in fully turbulent applications rather than those where laminar-turbulent transition occurs.
  • The Stilda generation term should never be allowed to be zero or negative to avoid potential numerical issues and unphysical results for complex flows. To this end, a limiter proposed by Spalart (R:Note-1(b)) is applied onto Stilda where Stilda is clipped at Cs*Omega with the default value of Cs=0.3.
  • The model does not produce k, epsilon or omega. Nevertheless, these quantities can be estimated by using an approximate expressions for turbulent kinetic energy and dissipation rate reported in (B:Eq. 4.50).
Source files

Definition at line 115 of file SpalartAllmaras.H.

Member Typedef Documentation

◆ alphaField

typedef BasicTurbulenceModel::alphaField alphaField

Definition at line 151 of file SpalartAllmaras.H.

◆ rhoField

typedef BasicTurbulenceModel::rhoField rhoField

Definition at line 152 of file SpalartAllmaras.H.

◆ transportModel

typedef BasicTurbulenceModel::transportModel transportModel

Definition at line 153 of file SpalartAllmaras.H.

Constructor & Destructor Documentation

◆ SpalartAllmaras()

SpalartAllmaras ( const alphaField alpha,
const rhoField rho,
const volVectorField U,
const surfaceScalarField alphaRhoPhi,
const surfaceScalarField phi,
const transportModel transport,
const word propertiesName = turbulenceModel::propertiesName,
const word type = typeName 
)

Construct from components.

Definition at line 61 of file SpalartAllmaras.C.

References Foam::type().

Here is the call graph for this function:

◆ ~SpalartAllmaras()

virtual ~SpalartAllmaras ( )
virtualdefault

Destructor.

Member Function Documentation

◆ dTilda()

Foam::tmp< Foam::volScalarField > dTilda ( const volScalarField chi,
const volScalarField fv1,
const volTensorField gradU 
) const
protectedvirtual

Return the length scale.

Implements SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >.

Definition at line 35 of file SpalartAllmaras.C.

◆ correctNut()

void correctNut ( )
protectedvirtual

Reimplemented from SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >.

Definition at line 46 of file SpalartAllmaras.C.

References SpalartAllmarasBase< BasicEddyViscosityModel >::correctNut().

Here is the call graph for this function:

◆ TypeName()

TypeName ( "SpalartAllmaras< BasicTurbulenceModel >"  )

Runtime type information.


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