version 3.9-dev
Shallow water flow

Two-dimensional shallow water flow (depth-averaged) More...

Description

A two-dimensional shallow water equations model.

The two-dimensional shallow water equations (SWEs) can be written as:

\[ \frac{\partial \mathbf{U}}{\partial t} + \frac{\partial \mathbf{F}}{\partial x} + \frac{\partial \mathbf{G}}{\partial y} - \mathbf{S_b} - \mathbf{S_f} = 0 \]

The first equation is the water balance equation (volume balance) and the following two equations balance the momentum in x-direction and y-direction. \( \mathbf{U} \), \( \mathbf{F} \) and \( \mathbf{G} \) are defined as:

\[ \mathbf{U} = \begin{bmatrix} h \\ uh \\ vh \end{bmatrix}, \mathbf{F} = \begin{bmatrix} hu \\ hu^2 + \frac{1}{2} gh^2 - \nu\frac{\partial uh}{\partial x} \\ huv - \nu\frac{\partial vh}{\partial x} \end{bmatrix}, \mathbf{G} = \begin{bmatrix} hv \\ huv - \nu\frac{\partial uh}{\partial y} \\ hv^2 + \frac{1}{2} gh^2 - \nu\frac{\partial vh}{\partial y} \end{bmatrix} \]

\( h \) is the water depth (in \( m \)), \( u \) the velocity in x-direction and \( v \) the velocity in y-direction (in \( ms^{-1} \)). \( g \) is the constant of gravity (in \( ms^{-2} \)). \( \nu \) is the effective turbulent viscosity (in \( m^2s^{-1} \)). By default the shallow water model neglects the viscous terms, but they can be enabled by setting the parameter ShallowWater.EnableViscousFlux = true.

The source terms for bed slope \( \mathbf{S_b} \) and bottom friction \( \mathbf{S_f} \) are given as:

\[ \mathbf{S_b} = \begin{bmatrix} 0 \\ -gh \frac{\partial z}{\partial x} \\ -gh \frac{\partial z}{\partial y}\end{bmatrix}, \mathbf{S_f} = \begin{bmatrix} 0 \\ -\frac{\tau_{x}}{\rho} \\ -\frac{\tau_{y}}{\rho}\end{bmatrix}. \]

\( z \) is the bed surface (in \( m \)), \( \tau_{x} \) and \( \tau_{y} \) the bottom shear stress (in \( Nm^{-2} \)) in x- an y-direction, respectively. \( \rho \) is the water density (in \( kgm^{-3} \)). The bed slope source term \( \mathbf{S_b} \) is covered by the hydrostatic reconstruction within the flux computation and must therefore not be treated separately within the computation of the source terms. On the contrary, the bottom friction source term must be implemented in the problem (have a look at the shallow water example).

When using a fully implicit Euler time discretization, note the following: Large time step sizes (CFL > 1) can lead to a strong smearing of sharp fronts. This can be seen in the movement of fast traveling waves (e.g. dam break waves). Nevertheless, the fully implicit time discretization shows good results in cases where slowly moving waves are considered. Thus, the model is a good choice for simulating flow in rivers and channels, where the fully-implicit discretization allows large time steps and reduces the overall computation time drastically.

Files

file  boundaryfluxes.hh
 Compute boundary conditions for the Riemann Solver.
 
file  freeflow/shallowwater/fluxvariables.hh
 
file  freeflow/shallowwater/indices.hh
 
file  freeflow/shallowwater/iofields.hh
 Add I/O fields specific to shallow water.
 
file  freeflow/shallowwater/localresidual.hh
 
file  freeflow/shallowwater/model.hh
 A two-dimensional shallow water equations model.
 
file  freeflow/shallowwater/problem.hh
 
file  freeflow/shallowwater/volumevariables.hh
 

Classes

class  Dumux::ShallowWaterFluxVariables< TypeTag >
 The flux variables class for the shallow water model. More...
 
struct  Dumux::ShallowWaterIndices
 The common indices for the shallow water equations model. More...
 
class  Dumux::ShallowWaterIOFields
 Adds vtk output fields for the shallow water model. More...
 
class  Dumux::ShallowWaterResidual< TypeTag >
 Element-wise calculation of the residual for the shallow water equations. More...
 
struct  Dumux::ShallowWaterModelTraits
 Specifies a number properties of shallow water models. More...
 
struct  Dumux::ShallowWaterVolumeVariablesTraits< PV, FSY, MT >
 Traits class for the volume variables of the shallow water model. More...
 
class  Dumux::ShallowWaterProblem< TypeTag >
 Shallow water problem base class. More...
 
class  Dumux::ShallowWaterVolumeVariables< Traits >
 Volume variables for the shallow water equations model. More...