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

Implementation of the friction law after Manning. More...

#include <dumux/material/fluidmatrixinteractions/frictionlaws/manning.hh>

Inheritance diagram for Dumux::FrictionLawManning< VolumeVariables >:

Description

template<typename VolumeVariables>
class Dumux::FrictionLawManning< VolumeVariables >

Implementation of the friction law after Manning.

The LET mobility model is used to limit the friction for small water depths.

Public Member Functions

 FrictionLawManning (const Scalar gravity, const Scalar manningN)
 Constructor. More...
 
Dune::FieldVector< Scalar, 2 > bottomShearStress (const VolumeVariables &volVars) const final
 Compute the bottom shear stress. More...
 
virtual Dune::FieldVector< Scalar, 2 > shearStress (const VolumeVariables &volVars) const
 
Scalar limitRoughH (const Scalar roughnessHeight, const Scalar waterDepth) const
 Limit the friction for small water depth. More...
 

Constructor & Destructor Documentation

◆ FrictionLawManning()

template<typename VolumeVariables >
Dumux::FrictionLawManning< VolumeVariables >::FrictionLawManning ( const Scalar  gravity,
const Scalar  manningN 
)
inline

Constructor.

Parameters
gravityGravity constant (in m/s^2)
manningNManning friction coefficient (in s/m^(1/3))

Member Function Documentation

◆ bottomShearStress()

template<typename VolumeVariables >
Dune::FieldVector< Scalar, 2 > Dumux::FrictionLawManning< VolumeVariables >::bottomShearStress ( const VolumeVariables &  volVars) const
inlinefinalvirtual

Compute the bottom shear stress.

Parameters
volVarsVolume variables

Compute the bottom shear stress due to bottom friction. The bottom shear stress is a projection of the shear stress tensor onto the river bed. It can therefore be represented by a (tangent) vector with two entries.

Returns
shear stress in N/m^2. First entry is the x-component, the second the y-component.

Implements Dumux::FrictionLaw< VolumeVariables >.

◆ limitRoughH()

template<typename VolumeVariables >
Scalar Dumux::FrictionLaw< VolumeVariables >::limitRoughH ( const Scalar  roughnessHeight,
const Scalar  waterDepth 
) const
inlineinherited

Limit the friction for small water depth.

We define a water depth minUpperH. If the water depth is smaller, we start to limit the friction. So the friction term get's not extreme large for small water depths.

----------------------— minUpperH --------—

---------------------—roughnessHeight ------------— /\ /\ roughness /grain\ ----------------------------—bottom ---------------— /////////////////////////////////////////////////

For the limiting the LET model is used, which is usually applied in the porous media flow to limit the permeability due to the saturation. It employs the three empirical paramaters L, E and T, which describe the limiting curve (mobility).

auto mobility = (mobility_max * pow(sw,L))/(pow(sw,L) + E * pow(1.0-sw,T));

For the limitation of the roughness height L = 0.0, T = 2.0 and E = 1.0 are choosen. Therefore the calculation of the mobility is simplified significantly.

Parameters
roughnessHeightroughness height of the representative structure (e.g. largest grain size).
waterDepthwater depth.

< maximal mobility

◆ shearStress()

template<typename VolumeVariables >
virtual Dune::FieldVector< Scalar, 2 > Dumux::FrictionLaw< VolumeVariables >::shearStress ( const VolumeVariables &  volVars) const
inlinevirtualinherited

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