Zero-equation turbulence problem base class. More...
#include <dumux/freeflow/rans/zeroeq/problem.hh>
Zero-equation turbulence problem base class.
This implements some base functionality for zero-equation models and a routine for the determining the eddy viscosity of the Baldwin-Lomax model.
Public Member Functions | |
RANSProblemImpl (std::shared_ptr< const GridGeometry > gridGeometry, const std::string ¶mGroup="") | |
The constructor. 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... | |
void | updateBaldwinLomaxProperties () |
Update the relations and coefficients for the Baldwin-Lomax turbulence model. More... | |
bool | useWallFunction (const Element &element, const SubControlVolumeFace &scvf, const int &eqIdx) const |
Returns whether a wall function should be used at a given face. More... | |
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 | isOnWallAtPos (const GlobalPosition &globalPos) const |
Returns whether a given point is on a wall. More... | |
Scalar | sandGrainRoughnessAtPos (const GlobalPosition &globalPos) const |
Returns the sand-grain roughness \(\mathrm{[m]}\) at a given position. More... | |
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... | |
Scalar | temperatureAtPos (const GlobalPosition &globalPos) const |
Returns the temperature \(\mathrm{[K]}\) at a given global position. More... | |
Scalar | temperature () const |
Returns the temperature within the domain. More... | |
const GravityVector & | gravity () const |
Returns the acceleration due to gravity. More... | |
bool | enableInertiaTerms () const |
Returns whether interia terms should be considered. More... | |
template<class SolutionVector , class G = GridGeometry> | |
std::enable_if< G::discMethod==DiscretizationMethod::staggered, void >::type | applyInitialFaceSolution (SolutionVector &sol, const SubControlVolumeFace &scvf, const PrimaryVariables &initSol) const |
Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization. More... | |
Scalar | pseudo3DWallFriction (const Scalar velocity, const Scalar viscosity, const Scalar height, const Scalar factor=8.0) const |
An additional drag term can be included as source term for the momentum balance to mimic 3D flow behavior in 2D: More... | |
template<class ElementVolumeVariables , class ElementFaceVariables , class G = GridGeometry> | |
std::enable_if< G::discMethod==DiscretizationMethod::staggered, Scalar >::type | pseudo3DWallFriction (const SubControlVolumeFace &scvf, const ElementVolumeVariables &elemVolVars, const ElementFaceVariables &elemFaceVars, const Scalar height, const Scalar factor=8.0) const |
Convenience function for staggered grid implementation. More... | |
Scalar | permeability (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | alphaBJ (const SubControlVolumeFace &scvf) const |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | betaBJ (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition. More... | |
Scalar | velocityPorousMedium (const Element &element, const SubControlVolumeFace &scvf) const |
Returns the velocity in the porous medium (which is 0 by default according to Saffmann). More... | |
const Scalar | bjsVelocity (const Element &element, const SubControlVolume &scv, const SubControlVolumeFace &faceOnPorousBoundary, const Scalar velocitySelf) const |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used More... | |
const Scalar | beaversJosephVelocity (const Element &element, const SubControlVolume &scv, const SubControlVolumeFace &faceOnPorousBoundary, const Scalar velocitySelf, const Scalar tangentialVelocityGradient) const |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used More... | |
Public Attributes | |
std::string | eddyViscosityModel_ |
std::vector< Scalar > | kinematicEddyViscosity_ |
std::vector< Scalar > | additionalRoughnessLength_ |
bool | calledUpdateStaticWallProperties = false |
std::vector< unsigned int > | wallElementIdx_ |
std::vector< Scalar > | wallDistance_ |
std::vector< std::array< std::array< unsigned int, 2 >, dim > > | neighborIdx_ |
std::vector< GlobalPosition > | cellCenter_ |
std::vector< DimVector > | velocity_ |
std::vector< DimVector > | velocityMaximum_ |
std::vector< DimVector > | velocityMinimum_ |
std::vector< DimMatrix > | velocityGradients_ |
std::vector< Scalar > | stressTensorScalarProduct_ |
std::vector< Scalar > | vorticityTensorScalarProduct_ |
std::vector< unsigned int > | wallNormalAxis_ |
std::vector< unsigned int > | flowNormalAxis_ |
std::vector< Scalar > | kinematicViscosity_ |
std::vector< Scalar > | sandGrainRoughness_ |
|
inline |
The constructor.
gridGeometry | The finite volume grid geometry |
paramGroup | The parameter group in which to look for runtime parameters first (default is "") |
|
inlineinherited |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inlineinherited |
Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization.
|
inlineinherited |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used
|
inlineinherited |
Returns the alpha value required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inlineinherited |
Returns the \( \beta_{\omega} \) constant.
|
inlineinherited |
helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph-Saffman condition is used
|
inlineinherited |
Returns whether interia terms should be considered.
|
inlineinherited |
Returns the acceleration due to gravity.
If the Problem.EnableGravity
parameter is true, this means \(\boldsymbol{g} = ( 0,\dots,\ -9.81)^T \), else \(\boldsymbol{g} = ( 0,\dots, 0)^T \)
|
inlineinherited |
Returns whether a given sub control volume face is on a wall.
scvf | The sub control volume face. |
|
inlineinherited |
Returns whether a given point is on a wall.
globalPos | The position in global coordinates. |
|
inlineinherited |
Returns the Karman constant.
|
inlineinherited |
Returns the intrinsic permeability of required as input parameter for the Beavers-Joseph-Saffman boundary condition.
This member function must be overloaded in the problem implementation, if the BJS boundary condition is used.
|
inlineinherited |
An additional drag term can be included as source term for the momentum balance to mimic 3D flow behavior in 2D:
\[ f_{drag} = -(8 \mu / h^2)v \]
Here, \(h\) corresponds to the extruded height that is bounded by the imaginary walls. See Flekkoy et al. (1995) [25]
A value of 8.0 is used as a default factor, corresponding to the velocity profile at the center plane of the virtual height (maximum velocity). Setting this value to 12.0 corresponds to an depth-averaged velocity (Venturoli and Boek, 2006) [74].
|
inlineinherited |
Convenience function for staggered grid implementation.
|
inlineinherited |
Returns the sand-grain roughness \(\mathrm{[m]}\) at a given position.
globalPos | The position in global coordinates. |
|
inlineinherited |
Returns the temperature within the domain.
This method MUST be overwritten by the actual problem.
|
inlineinherited |
Returns the temperature \(\mathrm{[K]}\) at a given global position.
This is not specific to the discretization. By default it just calls temperature().
globalPos | The position in global coordinates where the temperature should be specified. |
|
inlineinherited |
Return the turbulent Prandtl number \( [-] \) which is used to convert the eddy viscosity to an eddy thermal conductivity.
|
inlineinherited |
Return the turbulent Schmidt number \( [-] \) which is used to convert the eddy viscosity to an eddy diffusivity.
|
inline |
Update the relations and coefficients for the Baldwin-Lomax turbulence model.
|
inline |
Update the dynamic (solution dependent) relations to the walls.
This calculates the roughness related properties
curSol | The solution vector. |
|
inline |
Correct size of the static (solution independent) wall variables.
|
inlineinherited |
Returns whether a wall function should be used at a given face.
element | The element. |
scvf | The sub control volume face. |
eqIdx | The equation index. |
|
inlineinherited |
Returns the velocity in the porous medium (which is 0 by default according to Saffmann).
|
inlineinherited |
Returns an additional wall function flux for cell-centered quantities.
|
inlineinherited |
Returns an additional wall function momentum flux.
std::vector<Scalar> Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::zeroeq >::additionalRoughnessLength_ |
|
inherited |
|
inherited |
std::string Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::zeroeq >::eddyViscosityModel_ |
|
inherited |
std::vector<Scalar> Dumux::RANSProblemImpl< TypeTag, TurbulenceModel::zeroeq >::kinematicEddyViscosity_ |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |