version 3.9-dev
Dumux::FrictionLaw< VolumeVariables > Class Template Referenceabstract

Implementation of the abstract base class for friction laws. More...

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

Inheritance diagram for Dumux::FrictionLaw< VolumeVariables >:

Description

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

A LET mobility model can be used to add an artificial water depth to limit the friction for small water depths.

Public Member Functions

virtual Dune::FieldVector< Scalar, 2 > bottomShearStress (const VolumeVariables &volVars) const =0
 Compute the bottom shear stress. More...
 
Scalar limitRoughH (const Scalar roughnessHeight, const Scalar waterDepth, const Scalar eps=1.0e-12) const
 Limit the friction for small water depth. More...
 
virtual ~FrictionLaw ()=default
 

Constructor & Destructor Documentation

◆ ~FrictionLaw()

template<typename VolumeVariables >
virtual Dumux::FrictionLaw< VolumeVariables >::~FrictionLaw ( )
virtualdefault

Member Function Documentation

◆ bottomShearStress()

template<typename VolumeVariables >
virtual Dune::FieldVector< Scalar, 2 > Dumux::FrictionLaw< VolumeVariables >::bottomShearStress ( const VolumeVariables &  volVars) const
pure virtual
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 [N/m^2]. First entry is the x-component, the second the y-component.

Implemented in Dumux::FrictionLawManning< VolumeVariables >, Dumux::FrictionLawNikuradse< VolumeVariables >, Dumux::FrictionLawNoFriction< VolumeVariables >, and Dumux::FrictionLawViscousNoSlip< VolumeVariables >.

◆ limitRoughH()

template<typename VolumeVariables >
Scalar Dumux::FrictionLaw< VolumeVariables >::limitRoughH ( const Scalar  roughnessHeight,
const Scalar  waterDepth,
const Scalar  eps = 1.0e-12 
) const
inline

Compute a small artificial water depth that is added to the actual water depth to avoid extreme friction values which can occur for small water depths.

The function is called with a roughness height, which can be seen as roughness height of the surface (e.g. grain size). For a zero roughnessHeight the artificial water depth will be zero.

A water depth minUpperH (minUpperH = 2 * roughnessHeight) is defined for the limiting. Limiting is applied between both 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 parameters 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 chosen. Therefore the calculation of the mobility is simplified significantly.

Parameters
roughnessHeightroughness height of the representative structure (e.g. largest grain size).
waterDepthwater depth.
epsIf the roughness height falls below this threshold, this function returns zero.

< maximal mobility


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