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

Navier-Stokes problem base class. More...

#include <dumux/freeflow/navierstokes/problem.hh>

Inheritance diagram for Dumux::NavierStokesProblem< TypeTag >:
Inheritance graph

Description

template<class TypeTag>
class Dumux::NavierStokesProblem< TypeTag >

Navier-Stokes problem base class.

This implements gravity (if desired) and a function returning the temperature. Includes a specialized method used only by the staggered grid discretization.

Public Member Functions

 NavierStokesProblem (std::shared_ptr< const GridGeometry > gridGeometry, const std::string &paramGroup="")
 The constructor. 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 beta value, or the alpha value divided by the square root of the intrinsic permeability. 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...
 
VelocityVector porousMediumVelocity (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 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...
 
const Scalar beaversJosephVelocity (const Element &element, const SubControlVolume &scv, const SubControlVolumeFace &ownScvf, 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...
 

Constructor & Destructor Documentation

◆ NavierStokesProblem()

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

The constructor.

Parameters
gridGeometryThe finite volume grid geometry
paramGroupThe parameter group in which to look for runtime parameters first (default is "")

Member Function Documentation

◆ alphaBJ()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::alphaBJ ( const SubControlVolumeFace &  scvf) const
inline

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.

◆ applyInitialFaceSolution()

template<class TypeTag >
template<class SolutionVector , class G = GridGeometry>
std::enable_if< G::discMethod==DiscretizationMethod::staggered, void >::type Dumux::NavierStokesProblem< TypeTag >::applyInitialFaceSolution ( SolutionVector &  sol,
const SubControlVolumeFace &  scvf,
const PrimaryVariables &  initSol 
) const
inline

Applys the initial face solution (velocities on the faces). Specialization for staggered grid discretization.

◆ beaversJosephVelocity() [1/2]

template<class TypeTag >
const Scalar Dumux::NavierStokesProblem< TypeTag >::beaversJosephVelocity ( const Element &  element,
const SubControlVolume &  scv,
const SubControlVolumeFace &  faceOnPorousBoundary,
const Scalar  velocitySelf,
const Scalar  tangentialVelocityGradient 
) const
inline

helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used

◆ beaversJosephVelocity() [2/2]

template<class TypeTag >
const Scalar Dumux::NavierStokesProblem< TypeTag >::beaversJosephVelocity ( const Element &  element,
const SubControlVolume &  scv,
const SubControlVolumeFace &  ownScvf,
const SubControlVolumeFace &  faceOnPorousBoundary,
const Scalar  velocitySelf,
const Scalar  tangentialVelocityGradient 
) const
inline

helper function to evaluate the slip velocity on the boundary when the Beavers-Joseph condition is used

◆ betaBJ()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::betaBJ ( const Element &  element,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the beta value, or the alpha value divided by the square root of the intrinsic permeability.

◆ enableInertiaTerms()

template<class TypeTag >
bool Dumux::NavierStokesProblem< TypeTag >::enableInertiaTerms ( ) const
inline

Returns whether interia terms should be considered.

◆ gravity()

template<class TypeTag >
const GravityVector & Dumux::NavierStokesProblem< TypeTag >::gravity ( ) const
inline

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 \)

◆ permeability()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::permeability ( const Element &  element,
const SubControlVolumeFace &  scvf 
) const
inline

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.

◆ porousMediumVelocity()

template<class TypeTag >
VelocityVector Dumux::NavierStokesProblem< TypeTag >::porousMediumVelocity ( const Element &  element,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the velocity in the porous medium (which is 0 by default according to Saffmann).

◆ pseudo3DWallFriction() [1/2]

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::pseudo3DWallFriction ( const Scalar  velocity,
const Scalar  viscosity,
const Scalar  height,
const Scalar  factor = 8.0 
) const
inline

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) [22]
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) [66].

◆ pseudo3DWallFriction() [2/2]

template<class TypeTag >
template<class ElementVolumeVariables , class ElementFaceVariables , class G = GridGeometry>
std::enable_if< G::discMethod==DiscretizationMethod::staggered, Scalar >::type Dumux::NavierStokesProblem< TypeTag >::pseudo3DWallFriction ( const SubControlVolumeFace &  scvf,
const ElementVolumeVariables &  elemVolVars,
const ElementFaceVariables &  elemFaceVars,
const Scalar  height,
const Scalar  factor = 8.0 
) const
inline

Convenience function for staggered grid implementation.

◆ temperature()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::temperature ( ) const
inline

Returns the temperature within the domain.

This method MUST be overwritten by the actual problem.

◆ temperatureAtPos()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::temperatureAtPos ( const GlobalPosition &  globalPos) const
inline

Returns the temperature \(\mathrm{[K]}\) at a given global position.

This is not specific to the discretization. By default it just calls temperature().

Parameters
globalPosThe position in global coordinates where the temperature should be specified.

◆ velocityPorousMedium()

template<class TypeTag >
Scalar Dumux::NavierStokesProblem< TypeTag >::velocityPorousMedium ( const Element &  element,
const SubControlVolumeFace &  scvf 
) const
inline

Returns the velocity in the porous medium (which is 0 by default according to Saffmann).


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