OpenHydro Bench
Exact answer known1D · free surfaceCandidate

Hump with a hydraulic jump

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 →

RankModelDifferenceLargest difference inRun time
1Basilisk Saint-Venant0.076 %Average flow error1.7 s
2ANUGA 4.0.10.11 %Average flow error–
3TELEMAC-2D openTELEMAC 9.10.17 %Average flow error1.6 min
4=OpenSWMM 6 finite volume0.19 %Average depth error28.3 s
4=LISFLOOD-FP 8.3 · DG20.2 %Average depth error21.7 s
4=LISFLOOD-FP 8.3 · FV10.2 %Average depth error4.6 s
7Landlab OverlandFlow46 %Average flow error7.0 s
8LISFLOOD-FP 8.3 · ACC61 %Average flow error2.3 s
9OpenSWMM 6 dynamic wave194 %Average flow error54.0 s
10Hydra urban drainage220 %Average flow error1.0 min
11=SWMM 5.1.15 previous release322 %Average flow error51.3 s
11=EPA SWMM 5.2.4 dynamic wave322 %Average flow error51.2 s

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
Average flow error
• 0.000136 m²/s off
0.076 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.000815 · 0.1 m: 0.000366 · 0.05 m: 0.000188
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 1.06 (90 % range 0.71 to 1.41)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: Basilisk Saint-Venant (snapshot de851a91)

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
Average flow error
• 0.0002 m²/s off
0.11 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.000955 · 0.1 m: 0.000731 · 0.05 m: 0.000247
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.98 (90 % range −1.17 to 3.12)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: ANUGA 4.0.1

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))

Settings: telemac2d (Selafin, centreline nodes)

Average depth error
• 0.37 mm off
0.11 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.000305 m²/s off
0.17 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.00142 · 0.1 m: 0.000754 · 0.05 m: 0.000367
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.98 (90 % range 0.74 to 1.21)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: openTELEMAC-2D v9.1.1

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)

Average depth error
• 0.65 mm off
0.19 % of the exact profile's mean depth, 0.336 m
Average flow error
• < 0.0001 m²/s off
0.012 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.00221 · 0.1 m: 0.00128 · 0.05 m: 0.000645
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.89 (90 % range 0.52 to 1.25)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: OpenSWMM Engine v6 finite volume (6.0.0a4.dev1)

LISFLOOD-FP DG2
LISFLOOD-FP 8.3, second-order discontinuous Galerkin solver
#4= 0.2 % off

Rate the error shrinks on finer grids: 0.86 (90 % range 0.47 to 1.2); the method's expected rate is 0.8 or more

Run time, finest grid: 21.7 s · AMD EPYC 7763 64-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))

Settings: lisflood (dg2 solver, defaults; CPU, double precision)

Average depth error
• 0.67 mm off
0.2 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.000288 m²/s off
0.16 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.00219 · 0.1 m: 0.0013 · 0.05 m: 0.000667
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.86 (90 % range 0.47 to 1.24)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: LISFLOOD-FP 8.3 DG2

LISFLOOD-FP FV1
LISFLOOD-FP 8.3, first-order finite-volume solver (full shallow-water equations)
#4= 0.2 % off

Rate the error shrinks on finer grids: 0.9 (90 % range 0.61 to 1.2); the method's expected rate is 0.8 or more

Run time, finest grid: 4.6 s · AMD EPYC 7763 64-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))

Settings: lisflood (fv1 solver, defaults; CPU, double precision)

Average depth error
• 0.68 mm off
0.2 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.000288 m²/s off
0.16 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.00238 · 0.1 m: 0.00134 · 0.05 m: 0.000678
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.90 (90 % range 0.61 to 1.20)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: LISFLOOD-FP 8.3 FV1

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

Scored with method 3.0 · Score card: Landlab 2.11.0 OverlandFlow

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))

Settings: lisflood (acceleration solver, defaults; CPU, double precision)

Average depth error
• 8.5 cm off
25 % of the exact profile's mean depth, 0.336 m
Average flow error
• 0.11 m²/s off
61 % of the 0.18 m²/s unit discharge
Error by grid (L1 h)
· 0.2 m: 0.0895 · 0.1 m: 0.0975 · 0.05 m: 0.0851
reported, not counted · the checks above are scored on the 0.05 m grid
Improves with finer grids
· rate 0.04 (90 % range −0.55 to 0.62)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: LISFLOOD-FP 8.3 ACC

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

Scored with method 3.0 · Score card: OpenSWMM Engine v6 dynamic wave (6.0.0a4.dev1)

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

Scored with method 3.0 · Score card: Hydra urban drainage (17.0.0/4.1.1)

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

Scored with method 3.0 · Score card: EPA SWMM 5.1.15

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

Scored with method 3.0 · Score card: EPA SWMM 5.2.4

Not run yet: HEC-RAS 7.0, GeoClaw, TUFLOW, MIKE 21, Iber, BASEMENT, Delft3D FM
Run it and add yours →

Error shrinks as the grid gets finer

Average error on each grid. A steeper line means the model converges faster.

0.3 mm1 mm3 mm1 cm3 cm10 cm30 cm0.050.050.10.10.10.20.20.2grid cell sizeTELEMAC-2D openTELEMAC 9.1: rate 0.98ANUGA 4.0.1: rate 0.98LISFLOOD-FP 8.3 · FV1: rate 0.9LISFLOOD-FP 8.3 · DG2: rate 0.86LISFLOOD-FP 8.3 · ACC: rate 0.036EPA SWMM 5.2.4 dynamic wave: rate -0.56OpenSWMM 6 dynamic wave: rate -0.38OpenSWMM 6 finite volume: rate 0.89Hydra urban drainage: rate -0.33SWMM 5.1.15 previous release: rate -0.56Basilisk Saint-Venant: rate 1.1Landlab OverlandFlow: rate 0.0093
TELEMAC-2D · rate 0.98ANUGA · rate 0.98LISFLOOD-FP FV1 · rate 0.9LISFLOOD-FP DG2 · rate 0.86LISFLOOD-FP ACC · rate 0.036EPA SWMM 5.2.4 · rate -0.56OpenSWMM 6 · rate -0.38OpenSWMM 6 · rate 0.89Hydra · rate -0.33SWMM 5.1.15 · rate -0.56Basilisk · rate 1.1Landlab · rate 0.0093

Status of this test

Candidate. To become frozen it needs: maintainer review recorded.

Technical details for reviewers Checks, reference, inputs, sources

Checks and why each limit was chosen

CheckDifference measured as a percentage ofLatestDifferenceWhy 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.

  • ✓Data licence verifiedfor candidateanalytic-public
  • ✓All inputs availablefor candidateall committed or fetched by SHA-256
  • ✓Reference (truth) availablefor candidateanalytic generator
  • ✓Every tolerance justifiedfor candidateeach gating criterion has a rationale
  • ✓A published run passesfor frozen6 passing score card(s)
  • ✓Order of accuracy shownfor frozenobserved order meets the minimum
  • ✓Two independent codes passfor frozenpassing codes: ANUGA 4.0.1, Basilisk Saint-Venant, LISFLOOD-FP 8.3 DG2, LISFLOOD-FP 8.3 FV1, OpenSWMM Engine v6 finite volume, openTELEMAC-2D v9.1.1
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

FileRoleFormatSHA-256Get it
inputs/params.jsonparametersjson60030aae5847…Download

About this test

Physics

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

\[ \frac{q^2}{h_1} + \frac{g h_1^2}{2} = \frac{q^2}{h_2} + \frac{g h_2^2}{2} \]

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