version 3.10-dev
freeflow/shallowwater/model.hh File Reference

A two-dimensional shallow water equations model. More...

Go to the source code of this file.

Description

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.

Classes

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...
 
struct  Dumux::Properties::TTag::ShallowWater
 
struct  Dumux::Properties::ModelTraits< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::LocalResidual< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::FluxVariables< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::VolumeVariables< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::IOFields< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::AdvectionType< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::ViscousFluxType< TypeTag, TTag::ShallowWater >
 
struct  Dumux::Properties::FluidSystem< TypeTag, TTag::ShallowWater >
 

Namespaces

namespace  Dumux
 
namespace  Dumux::Properties
 The energy balance equation for a porous solid.
 
namespace  Dumux::Properties::TTag
 Type tag for numeric models.
 
Include dependency graph for freeflow/shallowwater/model.hh: