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:
[legend]
Collaboration diagram for buoyancyTurbSource:
[legend]

Public Member Functions

 TypeName ("buoyancyTurbSource")
 Runtime type information. More...
 
 buoyancyTurbSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from explicit source name and mesh. More...
 
 buoyancyTurbSource (const buoyancyTurbSource &)=delete
 No copy construct. More...
 
void operator= (const buoyancyTurbSource &)=delete
 No copy assignment. More...
 
virtual ~buoyancyTurbSource ()=default
 Destructor. More...
 
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)
 Read source dictionary - no-op. More...
 
- Public Member Functions inherited from cellSetOption
 TypeName ("cellSetOption")
 Runtime type information. More...
 
 cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)
 Construct from components. More...
 
virtual ~cellSetOption ()=default
 Destructor. More...
 
scalar timeStart () const noexcept
 Return const access to the time start. More...
 
scalar duration () const noexcept
 Return const access to the duration. More...
 
bool inTimeLimits (const scalar timeValue) const
 True if within time limits. More...
 
selectionModeType selectionMode () const noexcept
 Return the cell selection mode. More...
 
bool useSubMesh () const noexcept
 True if sub-selection should be used. More...
 
const wordRezoneName () const noexcept
 
scalar V () const noexcept
 Return const access to the total cell volume. More...
 
const labelListcells () const noexcept
 Return const access to the cell selection. More...
 
scalar timeStart (scalar val) noexcept
 Adjust the time start, return the old value. More...
 
scalar duration (scalar val) noexcept
 Adjust the duration, return the old value. More...
 
virtual bool isActive ()
 Is the source active? More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 
const wordcellSetName () const noexcept
 
- Public Member Functions inherited from option
 TypeName ("option")
 Runtime type information. More...
 
 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)
 Construct from components. More...
 
autoPtr< optionclone () const
 Return clone. More...
 
virtual ~option ()=default
 Destructor. More...
 
const wordname () const noexcept
 Return const access to the source name. More...
 
const fvMeshmesh () const noexcept
 Return const access to the mesh database. More...
 
const dictionarycoeffs () const noexcept
 Return dictionary. More...
 
bool active () const noexcept
 True if source is active. More...
 
void setApplied (const label fieldi)
 Set the applied flag to true for field index fieldi. More...
 
bool active (const bool on) noexcept
 Change source active flag, return previous value. More...
 
virtual bool isActive ()
 Is the source active? More...
 
virtual label applyToField (const word &fieldName) const
 Return index of field name if found in fieldNames list. More...
 
virtual void checkApplied () const
 Check that the source has been applied. More...
 
virtual void addSup (fvMatrix< scalar > &eqn, const label fieldi)
 
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< scalar > &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 (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
 Write the source header information. More...
 
virtual void writeFooter (Ostream &) const
 Write the source footer information. More...
 
virtual void writeData (Ostream &) const
 Write the source properties. More...
 
virtual bool read (const dictionary &dict)
 Read source dictionary. More...
 

Additional Inherited Members

- Public Types inherited from cellSetOption
enum  selectionModeType {
  smAll , smCellSet , smCellZone , smPoints ,
  smGeometric
}
 Enumeration for selection mode types. More...
 
- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 Return a reference to the selected fvOption model. More...
 
- Public Attributes inherited from option
bool log
 Switch write log to Info. More...
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 List of selection mode type names. More...
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 Set cell selection name or points selection from dictionary input. More...
 
void setCellSelection ()
 Set the cell selection based on user input selection mode. More...
 
void setVol ()
 Recalculate the volume. More...
 
- Protected Member Functions inherited from option
void resetApplied ()
 Resize/reset applied flag list for all fieldNames_ entries. More...
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 Start time of fvOption. More...
 
scalar duration_
 Duration of fvOption execution starting from timeStart. More...
 
selectionModeType selectionMode_
 Cell selection mode. More...
 
wordRe zoneName_
 Name of set/zone for "cellSet" and "cellZone" selectionMode. More...
 
List< pointpoints_
 List of points for "points" selectionMode. More...
 
dictionary geometricSelection_
 Dictionary entries for "geometric" (topoSetCellSource) selection. More...
 
labelList cells_
 Set of cells to apply source to. More...
 
scalar V_
 Sum of cell volumes. More...
 
- Protected Attributes inherited from option
const word name_
 Source name. More...
 
const word modelType_
 Model type. More...
 
const fvMeshmesh_
 Reference to the mesh database. More...
 
dictionary dict_
 Top level source dictionary. More...
 
dictionary coeffs_
 Dictionary containing source coefficients. More...
 
wordList fieldNames_
 Field names to apply source to - populated by derived models. More...
 
List< boolapplied_
 Applied flag list - corresponds to each fieldNames_ entry. More...
 
bool active_
 Source active flag. More...
 

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 222 of file buoyancyTurbSource.H.

Constructor & Destructor Documentation

◆ buoyancyTurbSource() [1/2]

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

Construct from explicit source name and mesh.

Definition at line 129 of file buoyancyTurbSource.C.

References fv(), and x.

Here is the call graph for this function:

◆ buoyancyTurbSource() [2/2]

buoyancyTurbSource ( const buoyancyTurbSource )
delete

No copy construct.

◆ ~buoyancyTurbSource()

virtual ~buoyancyTurbSource ( )
virtualdefault

Destructor.

Member Function Documentation

◆ TypeName()

TypeName ( "buoyancyTurbSource"  )

Runtime type information.

◆ operator=()

void operator= ( const buoyancyTurbSource )
delete

No copy assignment.

◆ addSup() [1/3]

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

Add explicit contribution to k and epsilon/omega equation for incompressible flow computations

Reimplemented from option.

Definition at line 216 of file buoyancyTurbSource.C.

◆ addSup() [2/3]

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

Add explicit contribution to k equation for compressible flow computations

Reimplemented from option.

Definition at line 239 of file buoyancyTurbSource.C.

References rho.

◆ addSup() [3/3]

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

Add explicit contribution to k equation for multiphase flow computations

Reimplemented from option.

Definition at line 254 of file buoyancyTurbSource.C.

References alpha, and rho.

◆ read()

virtual bool read ( const dictionary dict)
inlinevirtual

Read source dictionary - no-op.

Reimplemented from cellSetOption.

Definition at line 330 of file buoyancyTurbSource.H.


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