24#ifndef DUMUX_MATERIAL_FLUIDMATRIX_FRICTIONLAW_HH
25#define DUMUX_MATERIAL_FLUIDMATRIX_FRICTIONLAW_HH
30#include <dune/common/fvector.hh>
40template <
typename VolumeVariables >
43 using Scalar =
typename VolumeVariables::PrimaryVariables::value_type;
56 virtual Dune::FieldVector<Scalar, 2>
bottomShearStress(
const VolumeVariables& volVars)
const = 0;
87 Scalar
limitRoughH(
const Scalar roughnessHeight,
const Scalar waterDepth)
const
91 const Scalar mobilityMax = 1.0;
93 const Scalar minUpperH = roughnessHeight * 2.0;
94 const Scalar sw = clamp(waterDepth * (1.0/minUpperH), 0.0, 1.0);
95 const Scalar
mobility = mobilityMax /(1.0 + (1.0-sw)*(1.0-sw));
96 return roughnessHeight * (1.0 -
mobility);
Adaption of the non-isothermal two-phase two-component flow model to problems with CO2.
Definition: adapt.hh:29
std::string mobility(int phaseIdx) noexcept
I/O name of mobility for multiphase systems.
Definition: name.hh:101
Implementation of the abstract base class for friction laws.
Definition: frictionlaw.hh:42
virtual ~FrictionLaw()=default
Scalar limitRoughH(const Scalar roughnessHeight, const Scalar waterDepth) const
Limit the friction for small water depth.
Definition: frictionlaw.hh:87
virtual Dune::FieldVector< Scalar, 2 > bottomShearStress(const VolumeVariables &volVars) const =0
Compute the bottom shear stress.