3.6-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Classes | Functions
Dumux::ShallowWater Namespace Reference

Classes

struct  RiemannSolution
 

Functions

template<class Scalar >
RiemannSolution< Scalar > exactRiemann (const Scalar dl, const Scalar dr, const Scalar ul, const Scalar ur, const Scalar vl, const Scalar vr, const Scalar grav, const Scalar s=0.0)
 Exact Riemann solver for the shallow water equations. More...
 
template<class Scalar >
static Scalar fluxLimiterLET (const Scalar valueLeft, const Scalar valueRight, const Scalar upperH, const Scalar lowerH)
 Flux limiter function to scale fluxes for small water depths. More...
 
template<class Scalar , class GlobalPosition >
std::array< Scalar, 3 > riemannProblem (const Scalar waterDepthLeft, const Scalar waterDepthRight, Scalar velocityXLeft, Scalar velocityXRight, Scalar velocityYLeft, Scalar velocityYRight, const Scalar bedSurfaceLeft, const Scalar bedSurfaceRight, const Scalar gravity, const GlobalPosition &nxy)
 Construct a Riemann problem and solve it. More...
 
template<class Scalar , class GlobalPosition >
std::array< Scalar, 3 > fixedWaterDepthBoundary (const Scalar waterDepthBoundary, const Scalar waterDepthInside, const Scalar velocityXInside, const Scalar velocityYInside, const Scalar gravity, const GlobalPosition &nxy)
 Compute the outer cell state for fixed water depth boundary. More...
 
template<class Scalar , class GlobalPosition >
std::array< Scalar, 3 > fixedDischargeBoundary (const Scalar dischargeBoundary, const Scalar waterDepthInside, const Scalar velocityXInside, const Scalar velocityYInside, const Scalar gravity, const GlobalPosition &nxy)
 Compute the outer cell state for a fixed discharge boundary. More...
 
template<class PrimaryVariables , class Scalar , class GlobalPosition >
std::array< Scalar, 3 > noslipWallBoundary (const Scalar alphaWall, const Scalar turbulentViscosity, const PrimaryVariables &state, const GlobalPosition &cellCenterToBoundaryFaceCenter, const GlobalPosition &unitNormal)
 Compute the viscosity/diffusive flux at a rough wall boundary using no-slip formulation. More...
 
template<class PrimaryVariables , class Scalar , class GlobalPosition >
std::array< Scalar, 3 > nikuradseWallBoundary (const Scalar ksWall, const PrimaryVariables &state, const GlobalPosition &cellCenterToBoundaryFaceCenter, const GlobalPosition &unitNormal)
 Compute the viscosity/diffusive flux at a rough wall boundary using Nikuradse formulation. More...
 

Function Documentation

◆ fixedDischargeBoundary()

template<class Scalar , class GlobalPosition >
std::array< Scalar, 3 > Dumux::ShallowWater::fixedDischargeBoundary ( const Scalar  dischargeBoundary,
const Scalar  waterDepthInside,
const Scalar  velocityXInside,
const Scalar  velocityYInside,
const Scalar  gravity,
const GlobalPosition &  nxy 
)

Compute the outer cell state for a fixed discharge boundary.

Parameters
dischargeBoundaryDischarge per meter at the boundary face [m^2/s]
waterDepthInsideWater depth in the inner cell [m]
velocityXInsideVelocity in x-direction in the inner cell [m/s]
velocityYInsideVelocity in y-direction in the inner cell [m/s]
gravityGravity constant [m/s^2]
nxyNormal vector of the boundary face
Returns
cellStateOutside The outer cell state

◆ fixedWaterDepthBoundary()

template<class Scalar , class GlobalPosition >
std::array< Scalar, 3 > Dumux::ShallowWater::fixedWaterDepthBoundary ( const Scalar  waterDepthBoundary,
const Scalar  waterDepthInside,
const Scalar  velocityXInside,
const Scalar  velocityYInside,
const Scalar  gravity,
const GlobalPosition &  nxy 
)

Compute the outer cell state for fixed water depth boundary.

Parameters
waterDepthBoundaryWater depth at the boundary face [m^2/s]
waterDepthInsideWater depth in the inner cell [m]
velocityXInsideVelocity in x-direction in the inner cell [m/s]
velocityYInsideVelocity in y-direction in the inner cell [m/s]
gravityGravity constant [m/s^2]
nxyNormal vector of the boundary face
Returns
cellStateOutside The outer cell state

◆ nikuradseWallBoundary()

template<class PrimaryVariables , class Scalar , class GlobalPosition >
std::array< Scalar, 3 > Dumux::ShallowWater::nikuradseWallBoundary ( const Scalar  ksWall,
const PrimaryVariables &  state,
const GlobalPosition &  cellCenterToBoundaryFaceCenter,
const GlobalPosition &  unitNormal 
)

Compute the viscosity/diffusive flux at a rough wall boundary using Nikuradse formulation.

Parameters
ksWallNikuradse roughness height for the wall [m]
statethe primary variable state (water depth, velocities)
cellCenterToBoundaryFaceCenterCell-center to boundary distance
unitNormalNormal vector of the boundary face

◆ noslipWallBoundary()

template<class PrimaryVariables , class Scalar , class GlobalPosition >
std::array< Scalar, 3 > Dumux::ShallowWater::noslipWallBoundary ( const Scalar  alphaWall,
const Scalar  turbulentViscosity,
const PrimaryVariables &  state,
const GlobalPosition &  cellCenterToBoundaryFaceCenter,
const GlobalPosition &  unitNormal 
)

Compute the viscosity/diffusive flux at a rough wall boundary using no-slip formulation.

Parameters
alphaWallRoughness parameter: alphaWall=0.0 means full slip, alphaWall=1.0 means no slip, \(0.0<\text{alphaWall}<1.0\) means partial slip [-]
turbulentViscosityTurbulent viscosity [m^2/s]
statePrimary variables (water depth, velocities)
cellCenterToBoundaryFaceCenterCell-center to boundary distance
unitNormalNormal vector of the boundary face