Implementation of the friction law after Manning. More...
#include <dumux/material/fluidmatrixinteractions/frictionlaws/manning.hh>
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 > | shearStress (const VolumeVariables &volVars) const final |
Compute the shear stress. More... | |
Scalar | limitRoughH (const Scalar roughnessHeight, const Scalar waterDepth) const |
Limit the friction for small water depth. More... | |
|
inline |
Constructor.
gravity | Gravity constant [m/s^2] |
manningN | Manning friction coefficient [-] |
|
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 friciton. So the friciton 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.
roughnessHeight | roughness height of the representive structure (e.g. largest grain size). |
waterDepth | water depth. |
< maximal mobility
|
inlinefinalvirtual |
Compute the shear stress.
volVars | Volume variables |
Compute the shear stress due to friction. The shear stress is not a tensor as know from contiuums mechanics, but a force projected on an area. Therefore it is a vector with two entries.
Implements Dumux::FrictionLaw< VolumeVariables >.