Return
amerta: a Python library for idealized 1D Saint–Venant dam-break simulation
D
S
I
F
A
R
E
R
D
DOI:10.3389/frwa.2026.1900409.png)
Abstract
En 中文
The Saint–Venant shallow water equations (SWE) govern depth-integrated free-surface flows arising in dam-break inundation; flood routing; tsunami runup; and estuarine tidal dynamics. Closed-form analytical solutions exist only for highly idealized Riemann configurations; making rigorously verified numerical solvers essential. This work presents amerta; an open-source Python library that solves the one-dimensional frictionless Saint–Venant system on a uniform Cartesian grid using Monotone Upstream-centered Schemes for Conservation Laws (MUSCL) reconstruction with a minmod slope limiter; the Harten–Lax–van Leer–Contact (HLLC) approximate Riemann solver; and two-stage strong-stability-preserving Runge–Kutta (SSP-RK) time integration. Numba just-in-time (JIT) compilation accelerates the performance-critical kernels. The solver is verified end-to-end against the four canonical Riemann configurations: wet-bed dam break; dry-bed dam break; double rarefaction; and double shock. A six-component post-processing pipeline quantifies space-time topology; final-time error norms with empirical quantile decomposition; self-similarity collapse onto the analytical Riemann fan; integral-norm evolution; boundary-flux-corrected mass and energy diagnostics; and phase-plane analysis against analytical wave curves. The implementation conserves discrete mass to floating-point precision; satisfies discrete entropy admissibility identically; and reproduces all four analytical wave-curve geometries to within sub-centimeter accuracy in the depth-velocity phase plane. The complete source code; analytical-solution evaluators; post-processing scripts; and Network Common Data Format (NetCDF) archives are released under the MIT license.
Keywords:
Python
open-source software
dam-break problem
finite-volume method
MUSCL–HLLC scheme
Riemann problem
Saint–Venant equations
Journal
F
IF:
2.8
Papers:
360
Citations:
2.1K
