Public Member Functions | List of all members
buoyancyTurbSource Class Reference

Applies sources on turbulent kinetic energy (i.e. k) and either turbulent kinetic energy dissipation rate (i.e. epsilon) or specific dissipation rate (i.e. omega) to incorporate effects of buoyancy on turbulence in incompressible and compressible flows. More...

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

Public Member Functions

 TypeName ("buoyancyTurbSource")
 
 buoyancyTurbSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
 buoyancyTurbSource (const buoyancyTurbSource &)=delete
 
void operator= (const buoyancyTurbSource &)=delete
 
virtual ~buoyancyTurbSource ()=default
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual void addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi)
 
virtual bool read (const dictionary &dict)
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 
virtual ~cellSetOption ()=default
 
scalar timeStart () const noexcept
 
scalar duration () const noexcept
 
bool inTimeLimits (const scalar timeValue) const
 
selectionModeType selectionMode () const noexcept
 
bool useSubMesh () const noexcept
 
const wordcellSetName () const noexcept
 
scalar V () const noexcept
 
const labelListcells () const noexcept
 
scalar timeStart (scalar val) noexcept
 
scalar duration (scalar val) noexcept
 
virtual bool isActive ()
 
- 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 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< 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 (volScalarField &field)
 
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

- Public Types inherited from cellSetOption
enum  selectionModeType { smAll, smCellSet, smCellZone, smPoints }
 
- 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
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 
void setCellSelection ()
 
void setVol ()
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 
scalar duration_
 
selectionModeType selectionMode_
 
word cellSetName_
 
List< pointpoints_
 
labelList cells_
 
scalar V_
 
- 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 sources on turbulent kinetic energy (i.e. k) and either turbulent kinetic energy dissipation rate (i.e. epsilon) or specific dissipation rate (i.e. omega) to incorporate effects of buoyancy on turbulence in incompressible and compressible flows.

For incompressible cases:

Sources applied to:

  k         | Turbulent kinetic energy                   [m2/s2]

Sources applied to either of the below, if exist:

  epsilon   | Turbulent kinetic energy dissipation rate [m2/s3]
  omega     | Specific dissipation rate                 [1/s]

Required fields:

  k         | Turbulent kinetic energy                   [m2/s2]
  omega     | Specific dissipation rate                  [1/s]
  alphat    | Kinematic turbulent thermal conductivity   [m2/s]
  T         | Temperature                                [K]

For compressible cases:

Sources applied to:

  k         | Turbulent kinetic energy                   [m2/s2]

Required fields:

  k         | Turbulent kinetic energy                   [m2/s2]
  rho       | Fluid density                              [kg/m3]

References:

    Buoyancy modifier for incompressible flow cases (tag:BMA):
        Barakos, G., Mitsoulis, E., & Assimacopoulos, D. O. (1994).
        Natural convection flow in a square cavity revisited:
        laminar and turbulent models with wall functions.
        Int. J. for Numerical Methods in Fluids, 18(7), 695-719.
        DOI:10.1002/fld.1650180705

    Buoyancy modifier for compressible flow cases (tag:DTR):
        Devolder, B., Troch, P., & Rauwoens, P. (2018).
        Performance of a buoyancy-modified k-ω and k-ω
        SST turbulence model for simulating wave breaking
        under regular waves using OpenFOAM.
        Coastal Engineering, 138, 49-65.
        DOI:10.1016/j.coastaleng.2018.04.011
Usage
Minimal example by using constant/fvOptions:
buoyancyTurbSource1
{
    // Mandatory entries (unmodifiable)
    type                 buoyancyTurbSource;

    // Optional entries (unmodifiable)
    beta            3.3e-03;
    rho             rho;
    alphat          alphat;
    T               T;

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

where the entries mean:

Property Description Type Reqd Dflt
type Type name: buoyancyTurbSource word yes -
beta Thermal expansion coefficient for incompressible cases scalar no 3.3e-03
rho Name of operand density field word no rho
alphat Name of operand kinematic turbulent thermal conductivity field word no alphat
T Name of operand temperature field word no T

The inherited entries are elaborated in:

Note
  • Personal communication with Dr. Devolder for compressible cases (28 Oct 2020):

"Eq. 21 of my publication is the buoyancy source term. This term appears when the transport equation for the TKE is fundamentally derived from the Favre-averaged (density weighted) low Mach number equations, as reported in:

Van Maele, K., & Merci, B. (2006). Application of two buoyancy-modified k–ε turbulence models to different types of buoyant plumes. Fire Safety Journal, 41(2), 122-138. DOI:10.1016/j.firesaf.2005.11.003

Van Maele, K., & Merci, B. (2006). Importance of buoyancy and chemistry modelling in steady RANS simulations of well-ventilated tunnel fires. Turkish Jour. of Engineering and Environmental Sciences, 30(3), 145-155.

Therefore, this term is generally applicable for applications where density gradients exist such as compressible heat transfer but also wave modelling due to the VoF method."

"Due to VoF, the interface between water and air is not a jump but it is rather smooth. This means that there is a finite density gradient and therefore I think that the density must be included inside the differential operators."

See also
Source files

Definition at line 218 of file buoyancyTurbSource.H.

Constructor & Destructor Documentation

◆ buoyancyTurbSource() [1/2]

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

◆ buoyancyTurbSource() [2/2]

buoyancyTurbSource ( const buoyancyTurbSource )
delete

◆ ~buoyancyTurbSource()

virtual ~buoyancyTurbSource ( )
virtualdefault

Member Function Documentation

◆ TypeName()

TypeName ( "buoyancyTurbSource"  )

◆ operator=()

void operator= ( const buoyancyTurbSource )
delete

◆ addSup() [1/3]

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

Reimplemented from option.

Definition at line 210 of file buoyancyTurbSource.C.

◆ addSup() [2/3]

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

Reimplemented from option.

Definition at line 233 of file buoyancyTurbSource.C.

References rho.

◆ addSup() [3/3]

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

Reimplemented from option.

Definition at line 248 of file buoyancyTurbSource.C.

References Foam::constant::atomic::alpha, and rho.

◆ read()

virtual bool read ( const dictionary dict)
inlinevirtual

Reimplemented from cellSetOption.

Definition at line 326 of file buoyancyTurbSource.H.


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