3.3.0
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 >:

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 GlobalPosition &tangentialVector) const
 Returns the beta value which is the alpha value divided by the square root of the (scalar-valued) interface permeability. More...
 
Scalar betaBJ (const Element &element, const SubControlVolumeFace &scvf) const
 Returns the beta value which is the alpha value divided by the square root of the (scalar-valued) interface permeability. 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 &ownScvf, const SubControlVolumeFace &faceOnPorousBoundary, const Scalar velocitySelf, const Scalar tangentialVelocityGradient) const
 Returns the slip velocity at a porous boundary based on the Beavers-Joseph(-Saffman) condition. 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()

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

Returns the slip velocity at a porous boundary based on the Beavers-Joseph(-Saffman) condition.

◆ betaBJ() [1/2]

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

Returns the beta value which is the alpha value divided by the square root of the (scalar-valued) interface permeability.

◆ betaBJ() [2/2]

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

Returns the beta value which is the alpha value divided by the square root of the (scalar-valued) interface 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) [23]
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) [69].

◆ 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.

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