Public Member Functions | List of all members
multiphaseStabilizedTurbulence Class Reference

Applies corrections to the turbulent kinetic energy equation (i.e. k) and turbulent viscosity field (i.e. nut) for incompressible multiphase flow cases. More...

Inheritance diagram for multiphaseStabilizedTurbulence:
Inheritance graph
[legend]
Collaboration diagram for multiphaseStabilizedTurbulence:
Collaboration graph
[legend]

Public Member Functions

 TypeName ("multiphaseStabilizedTurbulence")
 
 multiphaseStabilizedTurbulence (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
 multiphaseStabilizedTurbulence (const multiphaseStabilizedTurbulence &)=delete
 
void operator= (const multiphaseStabilizedTurbulence &)=delete
 
virtual ~multiphaseStabilizedTurbulence ()=default
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void correct (volScalarField &field)
 
virtual bool read (const dictionary &dict)
 
- Public Member Functions inherited from option
 TypeName ("option")
 
 declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh))
 
 option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
autoPtr< optionclone () const
 
virtual ~option ()=default
 
const wordname () const noexcept
 
const fvMeshmesh () const noexcept
 
const dictionarycoeffs () const noexcept
 
bool active () const noexcept
 
void setApplied (const label fieldi)
 
bool active (const bool on) noexcept
 
virtual bool isActive ()
 
virtual label applyToField (const word &fieldName) const
 
virtual void checkApplied () const
 
virtual void addSup (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< vector > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< sphericalTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< symmTensor > &eqn, const label fieldi)
 
virtual void constrain (fvMatrix< tensor > &eqn, const label fieldi)
 
virtual void correct (volVectorField &field)
 
virtual void correct (volSphericalTensorField &field)
 
virtual void correct (volSymmTensorField &field)
 
virtual void correct (volTensorField &field)
 
virtual void postProcessSens (scalarField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void postProcessSens (vectorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void postProcessSens (tensorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null)
 
virtual void writeHeader (Ostream &) const
 
virtual void writeFooter (Ostream &) const
 
virtual void writeData (Ostream &) const
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 
- Public Attributes inherited from option
bool log
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Attributes inherited from option
const word name_
 
const word modelType_
 
const fvMeshmesh_
 
dictionary dict_
 
dictionary coeffs_
 
wordList fieldNames_
 
List< boolapplied_
 
bool active_
 

Detailed Description

Applies corrections to the turbulent kinetic energy equation (i.e. k) and turbulent viscosity field (i.e. nut) for incompressible multiphase flow cases.

Turbulent kinetic energy is over-predicted in VOF solvers at the phase interface and throughout the water column in nearly-potential flow regions beneath surface waves.

References:

    Buoyancy source term in turbulent kinetic energy equation:
        Devolder, B., Rauwoens, P., and Troch, P. (2017).
        Application of a buoyancy-modified k-w SST turbulence model to
        simulate wave run-up around a monopile subjected to regular waves
        using OpenFOAM.
        Coastal Engineering, 125, 81-94.
        DOI:10.1016/j.coastaleng.2017.04.004

    Correction to turbulent viscosity:
        Larsen, B.E. and Fuhrman, D.R. (2018).
        On the over-production of turbulence beneath surface waves in
        Reynolds-averaged Navier-Stokes models
        J. Fluid Mech, 853, 419-460.
        DOI:10.1017/jfm.2018.577

Sources applied to:

  k         | Turbulent kinetic energy                   [m2/s2]
  nut       | Turbulent viscosity                        [m/s2]

Required fields:

  epsilon   | Turbulent kinetic energy dissipation rate  [m2/s3]
  k         | Turbulent kinetic energy                   [m2/s2]
  nut       | Turbulent viscosity                        [m/s2]
Usage
Minimal example by using constant/fvOptions:
multiphaseStabilizedTurbulence1
{
    // Mandatory entries (unmodifiable)
    type                 multiphaseStabilizedTurbulence;

    // Optional entries (unmodifiable)
    rho             <rhoName>;
    Cmu             0.09;  // from k-epsilon model
    C               1.51;  // from k-omega model
    lambda2         0.1;   // A value of 0 sets the nut correction to 0
    alpha           1.36;  // 1/Prt

    // Mandatory/Optional (inherited) entries
    ...
}

where the entries mean:

Property Description Type Reqd Dflt
type Type name: multiphaseStabilizedTurbulence word yes -
rho Name of operand density field word yes rho
Cmu Model coefficient scalar no 0.09
C Model coefficient scalar no 1.51
lambda2 Ratio of nut correction scalar no 0.1
alpha Inverse of turbulent Prandtl number scalar no 1.36

The inherited entries are elaborated in:

Note
  • The model C coefficient for the k-epsilon model equates to C2/C1 = 1.33; the (default) value of 1.51 comes from the k-omega model and is more conservative.
  • Only applicable to epsilon-based turbulence closure models.
Source files

Definition at line 171 of file multiphaseStabilizedTurbulence.H.

Constructor & Destructor Documentation

◆ multiphaseStabilizedTurbulence() [1/2]

multiphaseStabilizedTurbulence ( const word sourceName,
const word modelType,
const dictionary dict,
const fvMesh mesh 
)

Definition at line 46 of file multiphaseStabilizedTurbulence.C.

References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, and Log.

Here is the call graph for this function:

◆ multiphaseStabilizedTurbulence() [2/2]

◆ ~multiphaseStabilizedTurbulence()

virtual ~multiphaseStabilizedTurbulence ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "multiphaseStabilizedTurbulence"  )

◆ operator=()

void operator= ( const multiphaseStabilizedTurbulence )
delete

◆ addSup() [1/2]

void addSup ( const volScalarField rho,
fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Reimplemented from option.

Definition at line 126 of file multiphaseStabilizedTurbulence.C.

References NotImplemented.

◆ addSup() [2/2]

void addSup ( fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Reimplemented from option.

Definition at line 138 of file multiphaseStabilizedTurbulence.C.

References Foam::endl(), epsilon, Foam::exit(), Foam::FatalError, FatalErrorInFunction, g, Foam::fac::grad(), k, Log, Foam::name(), Foam::New(), fvMatrix::psi(), rho, and Foam::fam::SuSp().

Here is the call graph for this function:

◆ correct()

void correct ( volScalarField field)
virtual

◆ read()

virtual bool read ( const dictionary dict)
inlinevirtual

Reimplemented from option.

Definition at line 250 of file multiphaseStabilizedTurbulence.H.


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