Note
Go to the end to download the full example code.
Analytical solution of a dam-break problem on a dry slope with friction (Chanson)
This example presents the classical one-dimensional analytical solution proposed by Chanson (2005) for the dam-break problem on a dry, horizontal bed with friction.
Model Assumptions
Instantaneous dam break at position \(x = x_0 = 0\) and at time \(t = 0\).
The domain is initially dry for \(x > x_0\), with a finite volume of still water (with height \(h_0\)) on the left of the dam (\(0 < x \leq x_0\)).
The bed is flat and horizontal (no slope).
Basal friction is modeled via Darcy friction factor \(f\).
The fluid is incompressible, homogeneous, and only subject to gravity and friction.
Basic equations
As a reminder, the general formula of the Saint-Venant equation system is:
with:
\(h\) the fluid depth
\(u\) the fluid velocity
\(g\) the gravitational acceleration
\(\theta\) the surface slope
\(S\) source term
Here is equation 1 from Chanson (2005) with the same notation and in 1D:
with \(S_f = \frac{f}{2} \frac{u^2}{g D_H}\), \(f\) being Darcy friction factor and \(D_H\) the hydraulic diameter.
By transforming these equations, we find the Saint-Venant equations:
with \(S = \frac{h f u^2}{2 D_H}\) the source term integrating the dissipative effects due to friction. In those conditions (approximate to a wide rectangular channel), the hydraulic diameter can be expressed \(D_H = 4 h\) (see footnote number 5 of Chanson (2005)).
With this we have finally the source term \(S = \frac{f u^2}{8}\).
In fluid simulation, hydraulic models can be used to express the source term \(S\). For example, we can cite an equation combining the Darcy-Weisbach and Manning laws:
where \(n\) is Manning coefficient (in \(s.m^{-1/3}\)).
These forms diverge in that the fluid height \(h\) is not present in the expression found for Chanson. However, it can be compared to Voellmy’s expression by taking a friction coefficient \(\mu = 0\) and with an empirical coefficient \(\xi = \frac{8}{f}\):
Initial Conditions
where \(x_0\) is the initial dam location and \(h_0\) is the height of the water column.
Analytical Solution
The water height and velocity profiles for \(t > 0\) are given by:
\[\begin{split}h(x, t) = \begin{cases} h_0 & \text{if } x \leq x_A(t), \\\\ \frac{4}{9g} \left( \sqrt{g h_0} - \frac{x - x_0}{2t} \right)^2 & \text{if } x_A(t) < x \leq x_B(t), \\\\ \sqrt{\frac{f}{4} \frac{U(t)^2}{g h_0} \frac{x_C(t)-x}{h_0}} & \text{if } x_B(t) < x \leq x_C(t), \\\\ 0 & \text{if } x_C(t) < x \end{cases}\end{split}\]
where the positions of the rarefaction wave front, the tip position and the dry front are:
\[\begin{split}\begin{cases} x_A(t) = x_0 - t \sqrt{g h_0}, \\\\ x_B(t) = x_0 + \left( \frac{3}{2} \frac{U(t)}{\sqrt{g h_0}} - 1 \right) t \sqrt{g h_0}, \\\\ x_C(t) = x_0 + \left( \frac{3}{2} \frac{U(t)}{\sqrt{g h_0}} - 1 \right) t \sqrt{\frac{g}{h_0}} + \frac{4}{f\frac{U(t)^2}{g h_0}} \left( 1 - \frac{U(t)}{2 \sqrt{g h_0}} \right)^4 \end{cases}\end{split}\]
with the celerity of the wave front \(U(t)\) solution of:
\[\left( \frac{U}{\sqrt{g h_0}} \right)^3 - 8 \left( 0.75 - \frac{3 f t \sqrt{g}}{8 \sqrt{h_0}} \right) \left( \frac{U}{\sqrt{g h_0}} \right)^2 + 12 \left( \frac{U}{\sqrt{g h_0}} \right) - 8 = 0\]
Implementation
First import required packages and define the spatial domain for visualization. For following examples we will use a 1D space from -600 to 600 m.
import numpy as np
from tilupy.analytic_sol import Chanson_dry
x = np.linspace(-600, 600, 1000)
Case: Chanson’s solution with dam at \(x_0 = 0 m\), initial height \(h_0 = 10 m\) and friction coefficient \(f = 0.05\)
case = Chanson_dry(h_0=10, x_0=0, f=0.05)
Compute and plot fluid height at times \(t = {0, 1, 20, 30, 50} s\).
case.compute_h(x, [0, 1, 20, 30, 50])
ax = case.plot(show_h=True, linestyles=["", ":", "-.", "--", "-"])
![Flow height for t=[0, 1, 20, 30, 50]](../../_images/sphx_glr_plot_as_h_u_chanson_001.png)
Original reference:
Chanson, H., 2005, Applications of the Saint‑Venant Equations and Method of Characteristics to the Dam Break Wave Problem. https://espace.library.uq.edu.au/view/UQ:9438
Total running time of the script: (0 minutes 0.301 seconds)