Does the jump below the hump stand in the right place?
Test A1F-042 Delestre (2013) Version 1.0.0
Hidden at first because they are far off the exact answer: LISFLOOD-FP ACC, EPA SWMM 5.2.4, OpenSWMM 6 dynamic wave, Hydra, SWMM 5.1.15, Landlab. Click a name to show it.
What happens
A small flow goes rapid over the hump and then jumps back to calm, deeper water partway down its far side, at a point fixed exactly by the balance of momentum.
Why it matters
Jumps below weirs and sills decide where the bed scours and how big the protection must be.
A good model must
keep the average depth error under 5 mm
carry the same flow along the whole channel
get steadily more accurate on finer grids
How models did
In rank order: by each model's percent difference from the right answer, the largest over the test's accuracy checks (lower is better; results within 10 % of each other share a rank). Mass error, timing and NSE are shown beside it, not folded in. Each model runs the same inputs on 3 grids, from 0.2 m down to 0.05 m cells; the checks are scored on the 0.05 m grid, and each card lists the error on every grid. Compare them in the results viewer →
The SWMM dynamic-wave engines (EPA SWMM 5.2.4, OpenSWMM v6 dynamic wave and Hydra) never settle on this frictionless channel with 10 and 5 cm conduits, even with a 0.0025 s routing step: depths swing by more than a metre. On 20 cm conduits SWMM 5.2.4 is within 8 mm on the subcritical case. OpenSWMM v6's finite-volume routing stays close on all four bump tests.
Basilisk
Basilisk (Popinet, basilisk.fr), its second-order well-balanced Saint-Venant solver on a uniform Cartesian grid with its defaults; Manning friction added as the usual semi-implicit term (it has none built in)
#1 0.076 % off
Rate the error shrinks on finer grids: 1.1 (90 % range 0.71 to 1.4); the method's expected rate is 0.8 or more
Run time, finest grid: 1.7 s· Intel(R) Xeon(R) 6973P-C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: basilisk saint-venant.h (uniform Cartesian grid, defaults; a C program per test, generated by scripts/run_basilisk.py)
Average depth error
• 0.19 mm off
0.056 % of the exact profile's mean depth, 0.336 m
The script writes a small Basilisk C program for the test (kept in the model files below) and compiles it with qcc.
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
ANUGA
ANUGA 4.0.1 (Geoscience Australia / ANU), default settings on a triangular mesh
#2 0.11 % off
Rate the error shrinks on finer grids: 0.98 (90 % range -1.2 to 3.1); the method's expected rate is 0.8 or more
Settings: anuga (rectangular_cross mesh, defaults, sampled at cell centres)
Average depth error
• 0.25 mm off
0.073 % of the exact profile's mean depth, 0.336 m
The model files for this run will be published with its next run.
ANUGA builds its mesh and boundaries in Python: the script is the model.
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
TELEMAC-2D
openTELEMAC-2D 9.1.1, run with its default finite-volume settings
#3 0.17 % off
Rate the error shrinks on finer grids: 0.98 (90 % range 0.74 to 1.2); the method's expected rate is 0.8 or more
Run time, finest grid: 1.6 min· AMD EPYC 7763 64-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
OpenSWMM 6
OpenSWMM Engine v6 with its new explicit finite-volume routing (FLOW_ROUTING FV): one cell per conduit on the channel tests, its default cells per pipe on the drainage networks
#4= 0.19 % off
Rate the error shrinks on finer grids: 0.89 (90 % range 0.52 to 1.3); the method's expected rate is 0.8 or more
Run time, finest grid: 28.3 s· INTEL(R) XEON(R) PLATINUM 8573C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: swmm (FV routing, conduit per grid cell)
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
Landlab
Landlab 2.11 (CSDMS), its OverlandFlow component: the local-inertial 2D flood scheme of de Almeida et al. (2012), written independently in NumPy, with its defaults
#7 46 % off
Rate the error shrinks on finer grids: 0.0093 (90 % range -0.019 to 0.038); the method's expected rate is 0.8 or more
Run time, finest grid: 7.0 s· AMD EPYC 7763 64-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: landlab.components.OverlandFlow (local inertial, defaults; a node per cell centre)
Average depth error
• 10 cm off
30 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.0835 m²/s off
46 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.102 · 0.1 m: 0.101 · 0.05 m: 0.101
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.01 (90 % range −0.02 to 0.04)
reported, not counted · the scheme's design order is 1
The model files for this run will be published with its next run.
Landlab models are built in Python: the script is the model.
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
LISFLOOD-FP ACC
LISFLOOD-FP 8.3, the local-inertia solver it is best known for; it leaves out the advection term
#8 61 % off
Rate the error shrinks on finer grids: 0.036 (90 % range -0.55 to 0.62); the method's expected rate is 0.8 or more
Run time, finest grid: 2.3 s· AMD EPYC 7763 64-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
OpenSWMM 6
OpenSWMM Engine v6 (HydroCouple's SWMM 6, pre-release) with dynamic-wave routing
#9 194 % off
Rate the error shrinks on finer grids: -0.38 (90 % range -0.82 to 0.063); the method's expected rate is 0.8 or more
Run time, finest grid: 54.0 s· INTEL(R) XEON(R) PLATINUM 8573C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: swmm (DYNWAVE routing, conduit per grid cell)
Average depth error
• 24 cm off
70 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.349 m²/s off
194 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.14 · 0.1 m: 0.197 · 0.05 m: 0.236
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate −0.38 (90 % range −0.82 to 0.06)
reported, not counted · the scheme's design order is 1
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
Hydra
Hydra 17 (NEER AI, Rust): its urban-drainage engine on the SWMM data model, run through its CLI with default settings
#10 220 % off
Rate the error shrinks on finer grids: -0.33 (90 % range -1 to 0.38); the method's expected rate is 0.8 or more
Run time, finest grid: 1.0 min· INTEL(R) XEON(R) PLATINUM 8573C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: swmm (DYNWAVE routing, conduit per grid cell)
Average depth error
• 24 cm off
72 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.397 m²/s off
220 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.155 · 0.1 m: 0.221 · 0.05 m: 0.243
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate −0.33 (90 % range −1.03 to 0.38)
reported, not counted · the scheme's design order is 1
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
SWMM 5.1.15
EPA SWMM 5.1.15, the release before 5.2: on the parity tests compared with SWMM 5.2.4, on the exact tests scored like any other engine
#11= 322 % off
Rate the error shrinks on finer grids: -0.56 (90 % range -1.6 to 0.46); the method's expected rate is 0.8 or more
Run time, finest grid: 51.3 s· INTEL(R) XEON(R) PLATINUM 8573C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: swmm (DYNWAVE routing, conduit per grid cell)
Average depth error
• 29 cm off
86 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.579 m²/s off
322 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.132 · 0.1 m: 0.237 · 0.05 m: 0.287
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate −0.56 (90 % range −1.58 to 0.46)
reported, not counted · the scheme's design order is 1
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
EPA SWMM 5.2.4
EPA SWMM 5.2.4 with dynamic-wave routing; on the channel tests, the channel is written as one conduit per grid cell
#11= 322 % off
Rate the error shrinks on finer grids: -0.56 (90 % range -1.6 to 0.46); the method's expected rate is 0.8 or more
Run time, finest grid: 51.2 s· INTEL(R) XEON(R) PLATINUM 8573C, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
Settings: swmm (DYNWAVE routing, conduit per grid cell)
Average depth error
• 29 cm off
86 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.579 m²/s off
322 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.132 · 0.1 m: 0.237 · 0.05 m: 0.287
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate −0.56 (90 % range −1.58 to 0.46)
reported, not counted · the scheme's design order is 1
The test itself (inputs, exact answer, checks): A1F-042.zip. Check the score card with benchmark1d2d verify-card: its signature by the suite's public development key shows the card has not changed since it was written, not who wrote it.
Not run yet: HEC-RAS 7.0, GeoClaw, TUFLOW, MIKE 21, Iber, BASEMENT, Delft3D FM
Technical details for reviewers Checks, reference, inputs, sources
Checks and why each limit was chosen
Check
Difference measured as a percentage of
Latest
Difference
Why this check
L1_h
L1 of h · in the score
of the exact profile's mean depth, 0.336 m
–
Average depth error under 5 mm (1.5 % of the downstream depth) once steady; a jump one cell out of place costs about 0.2 m over one cell, about 1 mm of average error on the finest grid.
L1_Q
L1 of Q · in the score
of the 0.18 m²/s unit discharge
–
Discharge within 1 % of q on average.
convergence
observed order of L1 error in h · reported, not counted
the design order, 1
–
Measured from the error on every refinement level, as in ASME V&V 20.
Reference
Exact solution from references.swashes.steady_bump.
Promotion checklist
Only frozen tests have fixed inputs and answers. This list is computed from the manifest and the published score cards; the rules are in the method.
The same channel and bump with \(q = 0.18\) m²/s and 0.33 m held
downstream. The flow goes critical at the crest, supercritical down its far
side and jumps back to subcritical where the Rankine–Hugoniot condition
holds between the supercritical branch of the crest head and the subcritical
branch of the downstream head: \(x_s = 11.6656\) m (solved to \(10^{-12}\) m).
What it checks
Shock capturing on a sloping bed: the jump's position and the conjugate
depths on either side.
Citation
Delestre et al. (2013), SWASHES, doi:10.1002/fld.3741.
Sources
Delestre, O., Lucas, C., Ksinant, P.-A., Darboux, F., Laguerre, C., Vo, T. N. T., James, F., Cordier, S. (2013). SWASHES: a compilation of shallow water analytic solutions for hydraulic and environmental studies. doi:10.1002/fld.3741
Goutal, N., Maurel, F. (1997). Proceedings of the 2nd workshop on dam-break wave simulation (EDF HE-43/97/016/B). www.irit.fr/swashes
Test A1F-042_swashes_bump_shock · version 1.0.0 · data licence analytic-public