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...
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) |
![]() | |
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 word & | cellSetName () const noexcept |
scalar | V () const noexcept |
const labelList & | cells () const noexcept |
scalar | timeStart (scalar val) noexcept |
scalar | duration (scalar val) noexcept |
virtual bool | isActive () |
![]() | |
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< option > | clone () const |
virtual | ~option ()=default |
const word & | name () const noexcept |
const fvMesh & | mesh () const noexcept |
const dictionary & | coeffs () 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 | |
![]() | |
enum | selectionModeType { smAll, smCellSet, smCellZone, smPoints } |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
![]() | |
bool | log |
![]() | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
![]() | |
void | setSelection (const dictionary &dict) |
void | setCellSelection () |
void | setVol () |
![]() | |
void | resetApplied () |
![]() | |
scalar | timeStart_ |
scalar | duration_ |
selectionModeType | selectionMode_ |
word | cellSetName_ |
List< point > | points_ |
labelList | cells_ |
scalar | V_ |
![]() | |
const word | name_ |
const word | modelType_ |
const fvMesh & | mesh_ |
dictionary | dict_ |
dictionary | coeffs_ |
wordList | fieldNames_ |
List< bool > | applied_ |
bool | active_ |
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.
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
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:
"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."
Definition at line 218 of file buoyancyTurbSource.H.
buoyancyTurbSource | ( | const word & | sourceName, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Definition at line 123 of file buoyancyTurbSource.C.
References Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, tmp::isTmp(), Log, Foam::mag(), Foam::name(), Foam::nl, turbulenceModel::propertiesName, and option::resetApplied().
|
delete |
|
virtualdefault |
TypeName | ( | "buoyancyTurbSource" | ) |
|
delete |
|
virtual |
Reimplemented from option.
Definition at line 210 of file buoyancyTurbSource.C.
|
virtual |
|
virtual |
Reimplemented from option.
Definition at line 248 of file buoyancyTurbSource.C.
References Foam::constant::atomic::alpha, and rho.
|
inlinevirtual |
Reimplemented from cellSetOption.
Definition at line 326 of file buoyancyTurbSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.