3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Member Functions | Public Attributes | List of all members
Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon > Class Template Reference

K-epsilon turbulence problem base class. More...

#include <dumux/freeflow/rans/twoeq/kepsilon/problem.hh>

Inheritance diagram for Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >:

Description

template<class TypeTag>
class Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >

K-epsilon turbulence problem base class.

This implements some base functionality for k-epsilon models.

Public Member Functions

 RANSProblemImpl (std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
 The constructor sets the gravity, if desired by the user. More...
 
void updateStaticWallProperties ()
 Correct size of the static (solution independent) wall variables. More...
 
void updateDynamicWallProperties (const SolutionVector &curSol)
 Update the dynamic (solution dependent) relations to the walls. More...
 
bool inNearWallRegion (unsigned int elementIdx) const
 Returns if an element is located in the near-wall region. More...
 
bool isMatchingPoint (unsigned int elementIdx) const
 Returns if an element is the matching point. More...
 
const Scalar yPlus (unsigned int elementIdx) const
 Returns the \( y^+ \) value at an element center. More...
 
const Scalar yPlusNominal (unsigned int elementIdx) const
 Returns the nominal \( y^+ \) value at an element center. More...
 
const Scalar zeroEqEddyViscosityModel (unsigned int elementIdx) const
 Returns the kinematic eddy viscosity of a 0-Eq. model. More...
 
const Scalar uStar (unsigned int elementIdx) const
 Returns the wall shear stress velocity. More...
 
const Scalar uStarNominal (unsigned int elementIdx) const
 Returns the nominal wall shear stress velocity (accounts for poor approximation of viscous sublayer) More...
 
const Scalar dissipationWallFunction (unsigned int elementIdx) const
 Returns the dissipation calculated from the wall function consideration. More...
 
const Scalar turbulentKineticEnergyWallFunction (unsigned int elementIdx) const
 Returns the turbulentKineticEnergy calculated from the wall function consideration. More...
 
const Scalar tangentialMomentumWallFunction (unsigned int elementIdx, Scalar velocity) const
 Returns the nominal wall shear stress (accounts for poor approximation of viscous sublayer) More...
 
bool useWallFunction (const Element &element, const SubControlVolumeFace &localSubFace, const int &eqIdx) const
 Checks whether a wall function should be used. More...
 
FacePrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf, const SubControlVolumeFace &localSubFace) const
 Returns an additional wall function momentum flux (only needed for RANS models) More...
 
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t< eB &&compositional, int > = 0>
CellCenterPrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the flux for non-isothermal and compositional RANS models. More...
 
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t<!eB &&compositional, int > = 0>
CellCenterPrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the flux for isothermal and compositional RANS models. More...
 
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t< eB &&!compositional, int > = 0>
CellCenterPrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the flux for non-isothermal RANS models. More...
 
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t<!eB &&!compositional, int > = 0>
CellCenterPrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the flux for isothermal RANS models. More...
 
CellCenterPrimaryVariables wallFunctionComponent (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the component wall-function flux. More...
 
CellCenterPrimaryVariables wallFunctionEnergy (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns the energy wall-function flux. More...
 
const Scalar pFunction (Scalar molecularNumber, Scalar turbulentNumber) const
 Returns the value of the P-function after Jayatilleke [72]. More...
 
const Scalar cMu () const
 Returns the \( C_{\mu} \) constant. More...
 
Scalar yPlusThreshold () const
 
bool useStoredEddyViscosity () const
 
Scalar storedDissipation (const int elementIdx) const
 
Scalar storedTurbulentKineticEnergy (const int elementIdx) const
 
Scalar storedDynamicEddyViscosity (const int elementIdx) const
 
Scalar zeroEqDynamicEddyViscosity (const int elementIdx) const
 
unsigned int matchingPointIdx (const int elementIdx) const
 
template<class ElementVolumeVariables , class ElementFaceVariables >
FacePrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf, const SubControlVolumeFace &lateralBoundaryFace) const
 Returns an additional wall function momentum flux. More...
 
template<class ElementVolumeVariables , class ElementFaceVariables >
CellCenterPrimaryVariables wallFunction (const Element &element, const FVElementGeometry &fvGeometry, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const SubControlVolumeFace &scvf) const
 Returns an additional wall function flux for cell-centered quantities. More...
 
bool isOnWall (const SubControlVolumeFace &scvf) const
 Returns whether a given sub control volume face is on a wall. More...
 
bool isFlatWallBounded () const
 
const Scalar karmanConstant () const
 Returns the Karman constant. More...
 
const Scalar betaOmega () const
 Returns the \( \beta_{\omega} \) constant. More...
 
Scalar turbulentPrandtlNumber () const
 Return the turbulent Prandtl number \( [-] \) which is used to convert the eddy viscosity to an eddy thermal conductivity. More...
 
Scalar turbulentSchmidtNumber () const
 Return the turbulent Schmidt number \( [-] \) which is used to convert the eddy viscosity to an eddy diffusivity. More...
 
int wallNormalAxis (const int elementIdx) const
 
int flowDirectionAxis (const int elementIdx) const
 
unsigned int wallElementIndex (const int elementIdx) const
 
Scalar wallDistance (const int elementIdx) const
 
GlobalPosition cellCenter (const int elementIdx) const
 
unsigned int neighborIndex (const int elementIdx, const int axisIdx, const int sideIdx) const
 
DimVector ccVelocityVector (const int elementIdx) const
 
Scalar ccVelocity (const int elementIdx, const int axisIdx) const
 
DimVector velocityMaximum (const int elementIdx) const
 
DimVector velocityMinimum (const int elementIdx) const
 
DimMatrix velocityGradientTensor (const int elementIdx) const
 
Scalar velocityGradient (const int elementIdx, const int i, const int j) const
 
Scalar stressTensorScalarProduct (const int elementIdx) const
 
Scalar vorticityTensorScalarProduct (const int elementIdx) const
 
Scalar storedViscosity (const int elementIdx) const
 
Scalar storedDensity (const int elementIdx) const
 
Scalar kinematicViscosity (const int elementIdx) const
 

Public Attributes

bool calledUpdateStaticWallProperties = false
 

Constructor & Destructor Documentation

◆ RANSProblemImpl()

template<class TypeTag >
Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::RANSProblemImpl ( std::shared_ptr< const GridGeometry >  gridGeometry,
const std::string &  paramGroup = "" 
)
inline

The constructor sets the gravity, if desired by the user.

Member Function Documentation

◆ betaOmega()

template<class TypeTag >
const Scalar Dumux::RANSProblemBase< TypeTag >::betaOmega ( ) const
inlineinherited

Returns the \( \beta_{\omega} \) constant.

◆ ccVelocity()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::ccVelocity ( const int  elementIdx,
const int  axisIdx 
) const
inlineinherited

◆ ccVelocityVector()

template<class TypeTag >
DimVector Dumux::RANSProblemBase< TypeTag >::ccVelocityVector ( const int  elementIdx) const
inlineinherited

◆ cellCenter()

template<class TypeTag >
GlobalPosition Dumux::RANSProblemBase< TypeTag >::cellCenter ( const int  elementIdx) const
inlineinherited

◆ cMu()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::cMu ( ) const
inline

Returns the \( C_{\mu} \) constant.

◆ dissipationWallFunction()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::dissipationWallFunction ( unsigned int  elementIdx) const
inline

Returns the dissipation calculated from the wall function consideration.

◆ flowDirectionAxis()

template<class TypeTag >
int Dumux::RANSProblemBase< TypeTag >::flowDirectionAxis ( const int  elementIdx) const
inlineinherited

◆ inNearWallRegion()

template<class TypeTag >
bool Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::inNearWallRegion ( unsigned int  elementIdx) const
inline

Returns if an element is located in the near-wall region.

◆ isFlatWallBounded()

template<class TypeTag >
bool Dumux::RANSProblemBase< TypeTag >::isFlatWallBounded ( ) const
inlineinherited

◆ isMatchingPoint()

template<class TypeTag >
bool Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::isMatchingPoint ( unsigned int  elementIdx) const
inline

Returns if an element is the matching point.

◆ isOnWall()

template<class TypeTag >
bool Dumux::RANSProblemBase< TypeTag >::isOnWall ( const SubControlVolumeFace &  scvf) const
inlineinherited

Returns whether a given sub control volume face is on a wall.

Parameters
scvfThe sub control volume face.

◆ karmanConstant()

template<class TypeTag >
const Scalar Dumux::RANSProblemBase< TypeTag >::karmanConstant ( ) const
inlineinherited

Returns the Karman constant.

◆ kinematicViscosity()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::kinematicViscosity ( const int  elementIdx) const
inlineinherited

◆ matchingPointIdx()

template<class TypeTag >
unsigned int Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::matchingPointIdx ( const int  elementIdx) const
inline

◆ neighborIndex()

template<class TypeTag >
unsigned int Dumux::RANSProblemBase< TypeTag >::neighborIndex ( const int  elementIdx,
const int  axisIdx,
const int  sideIdx 
) const
inlineinherited

◆ pFunction()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::pFunction ( Scalar  molecularNumber,
Scalar  turbulentNumber 
) const
inline

Returns the value of the P-function after Jayatilleke [72].

◆ storedDensity()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::storedDensity ( const int  elementIdx) const
inlineinherited

◆ storedDissipation()

template<class TypeTag >
Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::storedDissipation ( const int  elementIdx) const
inline

◆ storedDynamicEddyViscosity()

template<class TypeTag >
Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::storedDynamicEddyViscosity ( const int  elementIdx) const
inline

◆ storedTurbulentKineticEnergy()

template<class TypeTag >
Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::storedTurbulentKineticEnergy ( const int  elementIdx) const
inline

◆ storedViscosity()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::storedViscosity ( const int  elementIdx) const
inlineinherited

◆ stressTensorScalarProduct()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::stressTensorScalarProduct ( const int  elementIdx) const
inlineinherited

◆ tangentialMomentumWallFunction()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::tangentialMomentumWallFunction ( unsigned int  elementIdx,
Scalar  velocity 
) const
inline

Returns the nominal wall shear stress (accounts for poor approximation of viscous sublayer)

◆ turbulentKineticEnergyWallFunction()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::turbulentKineticEnergyWallFunction ( unsigned int  elementIdx) const
inline

Returns the turbulentKineticEnergy calculated from the wall function consideration.

◆ turbulentPrandtlNumber()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::turbulentPrandtlNumber ( ) const
inlineinherited

Return the turbulent Prandtl number \( [-] \) which is used to convert the eddy viscosity to an eddy thermal conductivity.

◆ turbulentSchmidtNumber()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::turbulentSchmidtNumber ( ) const
inlineinherited

Return the turbulent Schmidt number \( [-] \) which is used to convert the eddy viscosity to an eddy diffusivity.

◆ updateDynamicWallProperties()

template<class TypeTag >
void Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::updateDynamicWallProperties ( const SolutionVector &  curSol)
inline

Update the dynamic (solution dependent) relations to the walls.

Parameters
curSolThe solution vector.

◆ updateStaticWallProperties()

template<class TypeTag >
void Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::updateStaticWallProperties ( )
inline

Correct size of the static (solution independent) wall variables.

◆ useStoredEddyViscosity()

template<class TypeTag >
bool Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::useStoredEddyViscosity ( ) const
inline

◆ useWallFunction()

template<class TypeTag >
bool Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::useWallFunction ( const Element &  element,
const SubControlVolumeFace &  localSubFace,
const int &  eqIdx 
) const
inline

Checks whether a wall function should be used.

◆ uStar()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::uStar ( unsigned int  elementIdx) const
inline

Returns the wall shear stress velocity.

◆ uStarNominal()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::uStarNominal ( unsigned int  elementIdx) const
inline

Returns the nominal wall shear stress velocity (accounts for poor approximation of viscous sublayer)

◆ velocityGradient()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::velocityGradient ( const int  elementIdx,
const int  i,
const int  j 
) const
inlineinherited

◆ velocityGradientTensor()

template<class TypeTag >
DimMatrix Dumux::RANSProblemBase< TypeTag >::velocityGradientTensor ( const int  elementIdx) const
inlineinherited

◆ velocityMaximum()

template<class TypeTag >
DimVector Dumux::RANSProblemBase< TypeTag >::velocityMaximum ( const int  elementIdx) const
inlineinherited

◆ velocityMinimum()

template<class TypeTag >
DimVector Dumux::RANSProblemBase< TypeTag >::velocityMinimum ( const int  elementIdx) const
inlineinherited

◆ vorticityTensorScalarProduct()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::vorticityTensorScalarProduct ( const int  elementIdx) const
inlineinherited

◆ wallDistance()

template<class TypeTag >
Scalar Dumux::RANSProblemBase< TypeTag >::wallDistance ( const int  elementIdx) const
inlineinherited

◆ wallElementIndex()

template<class TypeTag >
unsigned int Dumux::RANSProblemBase< TypeTag >::wallElementIndex ( const int  elementIdx) const
inlineinherited

◆ wallFunction() [1/7]

template<class TypeTag >
template<class ElementVolumeVariables , class ElementFaceVariables >
CellCenterPrimaryVariables Dumux::RANSProblemBase< TypeTag >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inlineinherited

Returns an additional wall function flux for cell-centered quantities.

◆ wallFunction() [2/7]

template<class TypeTag >
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t< eB &&compositional, int > = 0>
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the flux for non-isothermal and compositional RANS models.

◆ wallFunction() [3/7]

template<class TypeTag >
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t<!eB &&compositional, int > = 0>
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the flux for isothermal and compositional RANS models.

◆ wallFunction() [4/7]

template<class TypeTag >
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t< eB &&!compositional, int > = 0>
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the flux for non-isothermal RANS models.

◆ wallFunction() [5/7]

template<class TypeTag >
template<bool eB = enableEnergyBalance, bool compositional = isCompositional, typename std::enable_if_t<!eB &&!compositional, int > = 0>
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the flux for isothermal RANS models.

◆ wallFunction() [6/7]

template<class TypeTag >
template<class ElementVolumeVariables , class ElementFaceVariables >
FacePrimaryVariables Dumux::RANSProblemBase< TypeTag >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf,
const SubControlVolumeFace &  lateralBoundaryFace 
) const
inlineinherited

Returns an additional wall function momentum flux.

◆ wallFunction() [7/7]

template<class TypeTag >
FacePrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunction ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf,
const SubControlVolumeFace &  localSubFace 
) const
inline

Returns an additional wall function momentum flux (only needed for RANS models)

◆ wallFunctionComponent()

template<class TypeTag >
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunctionComponent ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the component wall-function flux.

◆ wallFunctionEnergy()

template<class TypeTag >
CellCenterPrimaryVariables Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::wallFunctionEnergy ( const Element &  element,
const FVElementGeometry &  fvGeometry,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the energy wall-function flux.

◆ wallNormalAxis()

template<class TypeTag >
int Dumux::RANSProblemBase< TypeTag >::wallNormalAxis ( const int  elementIdx) const
inlineinherited

◆ yPlus()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::yPlus ( unsigned int  elementIdx) const
inline

Returns the \( y^+ \) value at an element center.

◆ yPlusNominal()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::yPlusNominal ( unsigned int  elementIdx) const
inline

Returns the nominal \( y^+ \) value at an element center.

◆ yPlusThreshold()

template<class TypeTag >
Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::yPlusThreshold ( ) const
inline

◆ zeroEqDynamicEddyViscosity()

template<class TypeTag >
Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::zeroEqDynamicEddyViscosity ( const int  elementIdx) const
inline

◆ zeroEqEddyViscosityModel()

template<class TypeTag >
const Scalar Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::kepsilon >::zeroEqEddyViscosityModel ( unsigned int  elementIdx) const
inline

Returns the kinematic eddy viscosity of a 0-Eq. model.

Member Data Documentation

◆ calledUpdateStaticWallProperties

template<class TypeTag >
bool Dumux::RANSProblemBase< TypeTag >::calledUpdateStaticWallProperties = false
inherited

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