OpenHydro Bench
Exact answer known1D · free surfaceCandidate

Gentle backwater in a channel

Does the model get the water level right along a calm river reach?

Test A1F-001
MacDonald (1997)
Version 1.1.0

What happens

Water flows slowly down a 1 km channel whose bed has been shaped so that the exact water surface is known everywhere. The level at the outlet backs water up the reach.

Why it matters

Most flood studies are steady backwater runs like this one. If the friction and slope balance is off, every flood level along the river is off too.

A good model must

  • keep the average depth error under 1 cm
  • neither lose nor create water
  • 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 4 grids, from 40 m down to 5 m cells; the checks are scored on the 5 m grid, and each card lists the error on every grid. Compare them in the results viewer →

RankModelDifferenceLargest difference inMass errorRun time
1=Demo 1D suite example<0.01 %Average depth error<0.01 %–
1=OpenSWMM 6 dynamic wave<0.01 %Average depth error<0.01 %0.51 s
1=SWMM 5.1.15 previous release<0.01 %Average depth error<0.01 %0.30 s
1=EPA SWMM 5.2.4 dynamic wave<0.01 %Average depth error<0.01 %0.30 s
5=HEC-RAS 7.0 1D · 2D SWE-ELM0.011 %Average depth error0.011 %7.3 s
5=HEC-RAS 6.6 previous release0.011 %Average depth error0.011 %7.2 s
5=TELEMAC-2D openTELEMAC 9.10.011 %Average depth error<0.01 %12.4 s
8Basilisk Saint-Venant0.014 %Average depth error0.014 %0.12 s
9=Hydra urban drainage0.022 %Average depth error<0.01 %0.27 s
9=LISFLOOD-FP 8.3 · DG20.022 %Average depth error0.022 %1.9 s
11LISFLOOD-FP 8.3 · FV10.026 %Average depth error0.026 %0.38 s
12OpenSWMM 6 finite volume0.049 %Average depth error0.049 %0.98 s
13ANUGA 4.0.10.062 %Average depth error0.013 %10.5 s
14=Landlab OverlandFlow0.085 %Average depth error0.065 %1.3 s
14=LISFLOOD-FP 8.3 · ACC0.085 %Average depth error0.065 %0.32 s
Demo 1D
Worked example that ships with the suite: plain, well-understood schemes
#1= under 0.01 % off

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

Average depth error
• 0.0096 mm off
<0.01 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.00025 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000597 · 20 m: 0.000152 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.99 (90 % range 1.98 to 2.00)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: demo

OpenSWMM 6
OpenSWMM Engine v6 (HydroCouple's SWMM 6, pre-release) with dynamic-wave routing
#1= under 0.01 % off

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

Run time, finest grid: 0.51 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
• 0.022 mm off
<0.01 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.002 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000971 · 20 m: 0.000242 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.84 (90 % range 1.60 to 2.08)
reported, not counted · the scheme's design order is 1

Identical, number for number, to EPA SWMM 5.2.4.

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

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
#1= under 0.01 % off

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

Run time, finest grid: 0.30 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
• 0.022 mm off
<0.01 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.002 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000971 · 20 m: 0.000242 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.84 (90 % range 1.60 to 2.08)
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
#1= under 0.01 % off

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

Run time, finest grid: 0.30 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
• 0.022 mm off
<0.01 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.002 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000971 · 20 m: 0.000242 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.84 (90 % range 1.60 to 2.08)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: EPA SWMM 5.2.4

HEC-RAS 7.0
HEC-RAS 7.0.1 (US Army Corps of Engineers), built and run headless with its default settings; in 2D, its default full shallow-water option (SWE-ELM)
#5= 0.011 % off

Rate the error shrinks on finer grids: the error is already at the solver's own precision on every grid

Run time, finest grid: 7.3 s · AMD EPYC 7763 64-Core Processor, 2 cores, 16 GB, Windows 2025Server (GitHub Actions (github-hosted, win25-vs2026))

Settings: hecras (text project, ras-commander, plan HDF)

Average depth error
• 0.1 mm off
0.011 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.011 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: < 0.0001 · 20 m: < 0.0001 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate −0.35 (90 % range −0.76 to 0.05)
reported, not counted · already at the solver's own precision

Scored with method 3.0 · Score card: HEC-RAS 7.0.1

HEC-RAS 6.6
HEC-RAS 6.6, the release before 7.0, run the same way (1D, and 2D with its default SWE-ELM): kept so a change between versions shows
#5= 0.011 % off

Rate the error shrinks on finer grids: the error is already at the solver's own precision on every grid

Run time, finest grid: 7.2 s · AMD EPYC 7763 64-Core Processor, 2 cores, 16 GB, Windows 2025Server (GitHub Actions (github-hosted, win25-vs2026))

Settings: hecras (text project, ras-commander, plan HDF)

Average depth error
• 0.1 mm off
0.011 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.011 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: < 0.0001 · 20 m: < 0.0001 · 10 m: < 0.0001 · 5 m: < 0.0001
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate −0.35 (90 % range −0.76 to 0.05)
reported, not counted · already at the solver's own precision

HEC-RAS stores input elevations to the nearest 0.001 ft (0.3 mm), even in a metric project. The depth error therefore stops at about 0.1 mm on every grid and cannot shrink with the grid, so its convergence rate says nothing about the scheme.

Scored with method 3.0 · Score card: HEC-RAS 6.6

TELEMAC-2D
openTELEMAC-2D 9.1.1, run with its default finite-volume settings
#5= 0.011 % off

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

Run time, finest grid: 12.4 s · 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.1 mm off
0.011 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.0035 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000827 · 20 m: 0.000417 · 10 m: 0.000205 · 5 m: 0.000101
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.01 (90 % range 0.99 to 1.03)
reported, not counted · the scheme's design order is 1

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

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)
#8 0.014 % off

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

Run time, finest grid: 0.12 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.13 mm off
0.014 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.014 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.000995 · 20 m: 0.000492 · 10 m: 0.000246 · 5 m: 0.000125
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.00 (90 % range 0.98 to 1.02)
reported, not counted · the scheme's design order is 1

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

Hydra
Hydra 17 (NEER AI, Rust): its urban-drainage engine on the SWMM data model, run through its CLI with default settings
#9= 0.022 % off

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

Run time, finest grid: 0.27 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
• 0.2 mm off
0.022 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.00049 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00102 · 20 m: 0.000684 · 10 m: 0.000357 · 5 m: 0.000196
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 0.81 (90 % range 0.64 to 0.97)
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)

LISFLOOD-FP DG2
LISFLOOD-FP 8.3, second-order discontinuous Galerkin solver
#9= 0.022 % off

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

Run time, finest grid: 1.9 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.2 mm off
0.022 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.022 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00189 · 20 m: 0.000824 · 10 m: 0.000402 · 5 m: 0.0002
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.07 (90 % range 0.98 to 1.17)
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)
#11 0.026 % off

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

Run time, finest grid: 0.38 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.24 mm off
0.026 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.026 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00185 · 20 m: 0.000946 · 10 m: 0.000476 · 5 m: 0.000236
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 0.99 (90 % range 0.97 to 1.01)
reported, not counted · the scheme's design order is 1

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

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
#12 0.049 % off

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

Run time, finest grid: 0.98 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.44 mm off
0.049 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.049 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.0023 · 20 m: 0.00127 · 10 m: 0.000731 · 5 m: 0.000445
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 0.79 (90 % range 0.73 to 0.85)
reported, not counted · the scheme's design order is 1

0.4 mm off. Its convergence rate fitted through the four grids is 0.79 (90 % range 0.73 to 0.85); dynamic wave reaches 1.8.

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

ANUGA
ANUGA 4.0.1 (Geoscience Australia / ANU), default settings on a triangular mesh
#13 0.062 % off

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

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

Settings: anuga (rectangular_cross mesh, defaults, sampled at cell centres)

Average depth error
• 0.57 mm off
0.062 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.013 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00463 · 20 m: 0.0023 · 10 m: 0.00116 · 5 m: 0.000565
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 1.01 (90 % range 0.99 to 1.03)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: ANUGA 4.0.1

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
#14= 0.085 % off

Rate the error shrinks on finer grids: 0.37 (90 % range -0.34 to 1.1); the method's expected rate is 0.8 or more

Run time, finest grid: 1.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: landlab.components.OverlandFlow (local inertial, defaults; a node per cell centre)

Average depth error
• 0.77 mm off
0.085 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.065 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00176 · 20 m: 0.000715 · 10 m: 0.00068 · 5 m: 0.000766
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 0.37 (90 % range −0.34 to 1.07)
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
#14= 0.085 % off

Rate the error shrinks on finer grids: 0.36 (90 % range -0.34 to 1.1); the method's expected rate is 0.8 or more

Run time, finest grid: 0.32 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
• 0.77 mm off
0.085 % of the exact profile's mean depth, 0.905 m
Water conserved
· 0.065 % error
conservation, reported beside the score
Error by grid (L1 h)
· 40 m: 0.00175 · 20 m: 0.000717 · 10 m: 0.000682 · 5 m: 0.000767
reported, not counted · the checks above are scored on the 5 m grid
Improves with finer grids
· rate 0.36 (90 % range −0.34 to 1.07)
reported, not counted · the scheme's design order is 1

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

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.01 mm0.03 mm0.1 mm0.3 mm1 mm3 mm5102040grid cell sizeDemo 1D suite example: rate 2HEC-RAS 7.0 1D · 2D SWE-ELM: rate -0.12TELEMAC-2D openTELEMAC 9.1: rate 1ANUGA 4.0.1: rate 1LISFLOOD-FP 8.3 · FV1: rate 1LISFLOOD-FP 8.3 · DG2: rate 1LISFLOOD-FP 8.3 · ACC: rate -0.048EPA SWMM 5.2.4 dynamic wave: rate 1.7OpenSWMM 6 dynamic wave: rate 1.7OpenSWMM 6 finite volume: rate 0.76Hydra urban drainage: rate 0.9SWMM 5.1.15 previous release: rate 1.7Basilisk Saint-Venant: rate 0.99Landlab OverlandFlow: rate -0.049HEC-RAS 6.6 previous release: rate -0.12
Demo 1D · rate 2HEC-RAS 7.0 · rate -0.12TELEMAC-2D · rate 1ANUGA · rate 1LISFLOOD-FP FV1 · rate 1LISFLOOD-FP DG2 · rate 1LISFLOOD-FP ACC · rate -0.048EPA SWMM 5.2.4 · rate 1.7OpenSWMM 6 · rate 1.7OpenSWMM 6 · rate 0.76Hydra · rate 0.9SWMM 5.1.15 · rate 1.7Basilisk · rate 0.99Landlab · rate -0.049HEC-RAS 6.6 · rate -0.12

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.905 m–Steady depth L1 error on finest mesh against MacDonald M1 profile.
mass
global_mass_error of volume · conservation, beside the score
already a percentage–Conservation property at steady state.
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.macdonald.depth_profile.

More figures

Steady water surface over the manufactured bed-0.2500.250.50.7502004006008001,000Distance x (m)Elevation (m)Exact water surfaceDemo solver (Heun GVF): 0, 0.748Demo solver (Heun GVF): 5, 0.748Demo solver (Heun GVF): 10, 0.747Demo solver (Heun GVF): 15, 0.747Demo solver (Heun GVF): 20, 0.746Demo solver (Heun GVF): 25, 0.746Demo solver (Heun GVF): 30, 0.746Demo solver (Heun GVF): 35, 0.745Demo solver (Heun GVF): 40, 0.745Demo solver (Heun GVF): 45, 0.744Demo solver (Heun GVF): 50, 0.744Demo solver (Heun GVF): 55, 0.743Demo solver (Heun GVF): 60, 0.743Demo solver (Heun GVF): 65, 0.742Demo solver (Heun GVF): 70, 0.742Demo solver (Heun GVF): 75, 0.742Demo solver (Heun GVF): 80, 0.741Demo solver (Heun GVF): 85, 0.741Demo solver (Heun GVF): 90, 0.74Demo solver (Heun GVF): 95, 0.74Demo solver (Heun GVF): 100, 0.739Demo solver (Heun GVF): 105, 0.739Demo solver (Heun GVF): 110, 0.739Demo solver (Heun GVF): 115, 0.738Demo solver (Heun GVF): 120, 0.738Demo solver (Heun GVF): 125, 0.737Demo solver (Heun GVF): 130, 0.737Demo solver (Heun GVF): 135, 0.737Demo solver (Heun GVF): 140, 0.736Demo solver (Heun GVF): 145, 0.736Demo solver (Heun GVF): 150, 0.736Demo solver (Heun GVF): 155, 0.735Demo solver (Heun GVF): 160, 0.735Demo solver (Heun GVF): 165, 0.734Demo solver (Heun GVF): 170, 0.734Demo solver (Heun GVF): 175, 0.734Demo solver (Heun GVF): 180, 0.733Demo solver (Heun GVF): 185, 0.733Demo solver (Heun GVF): 190, 0.733Demo solver (Heun GVF): 195, 0.732Demo solver (Heun GVF): 200, 0.732Demo solver (Heun GVF): 205, 0.732Demo solver (Heun GVF): 210, 0.732Demo solver (Heun GVF): 215, 0.731Demo solver (Heun GVF): 220, 0.731Demo solver (Heun GVF): 225, 0.731Demo solver (Heun GVF): 230, 0.73Demo solver (Heun GVF): 235, 0.73Demo solver (Heun GVF): 240, 0.73Demo solver (Heun GVF): 245, 0.73Demo solver (Heun GVF): 250, 0.729Demo solver (Heun GVF): 255, 0.729Demo solver (Heun GVF): 260, 0.729Demo solver (Heun GVF): 265, 0.729Demo solver (Heun GVF): 270, 0.728Demo solver (Heun GVF): 275, 0.728Demo solver (Heun GVF): 280, 0.728Demo solver (Heun GVF): 285, 0.728Demo solver (Heun GVF): 290, 0.728Demo solver (Heun GVF): 295, 0.727Demo solver (Heun GVF): 300, 0.727Demo solver (Heun GVF): 305, 0.727Demo solver (Heun GVF): 310, 0.727Demo solver (Heun GVF): 315, 0.727Demo solver (Heun GVF): 320, 0.726Demo solver (Heun GVF): 325, 0.726Demo solver (Heun GVF): 330, 0.726Demo solver (Heun GVF): 335, 0.726Demo solver (Heun GVF): 340, 0.726Demo solver (Heun GVF): 345, 0.726Demo solver (Heun GVF): 350, 0.726Demo solver (Heun GVF): 355, 0.725Demo solver (Heun GVF): 360, 0.725Demo solver (Heun GVF): 365, 0.725Demo solver (Heun GVF): 370, 0.725Demo solver (Heun GVF): 375, 0.725Demo solver (Heun GVF): 380, 0.725Demo solver (Heun GVF): 385, 0.724Demo solver (Heun GVF): 390, 0.724Demo solver (Heun GVF): 395, 0.724Demo solver (Heun GVF): 400, 0.724Demo solver (Heun GVF): 405, 0.724Demo solver (Heun GVF): 410, 0.724Demo solver (Heun GVF): 415, 0.724Demo solver (Heun GVF): 420, 0.724Demo solver (Heun GVF): 425, 0.723Demo solver (Heun GVF): 430, 0.723Demo solver (Heun GVF): 435, 0.723Demo solver (Heun GVF): 440, 0.723Demo solver (Heun GVF): 445, 0.723Demo solver (Heun GVF): 450, 0.723Demo solver (Heun GVF): 455, 0.723Demo solver (Heun GVF): 460, 0.723Demo solver (Heun GVF): 465, 0.722Demo solver (Heun GVF): 470, 0.722Demo solver (Heun GVF): 475, 0.722Demo solver (Heun GVF): 480, 0.722Demo solver (Heun GVF): 485, 0.722Demo solver (Heun GVF): 490, 0.722Demo solver (Heun GVF): 495, 0.722Demo solver (Heun GVF): 500, 0.722Demo solver (Heun GVF): 505, 0.721Demo solver (Heun GVF): 510, 0.721Demo solver (Heun GVF): 515, 0.721Demo solver (Heun GVF): 520, 0.721Demo solver (Heun GVF): 525, 0.721Demo solver (Heun GVF): 530, 0.721Demo solver (Heun GVF): 535, 0.721Demo solver (Heun GVF): 540, 0.721Demo solver (Heun GVF): 545, 0.72Demo solver (Heun GVF): 550, 0.72Demo solver (Heun GVF): 555, 0.72Demo solver (Heun GVF): 560, 0.72Demo solver (Heun GVF): 565, 0.72Demo solver (Heun GVF): 570, 0.72Demo solver (Heun GVF): 575, 0.72Demo solver (Heun GVF): 580, 0.719Demo solver (Heun GVF): 585, 0.719Demo solver (Heun GVF): 590, 0.719Demo solver (Heun GVF): 595, 0.719Demo solver (Heun GVF): 600, 0.719Demo solver (Heun GVF): 605, 0.719Demo solver (Heun GVF): 610, 0.718Demo solver (Heun GVF): 615, 0.718Demo solver (Heun GVF): 620, 0.718Demo solver (Heun GVF): 625, 0.718Demo solver (Heun GVF): 630, 0.718Demo solver (Heun GVF): 635, 0.717Demo solver (Heun GVF): 640, 0.717Demo solver (Heun GVF): 645, 0.717Demo solver (Heun GVF): 650, 0.717Demo solver (Heun GVF): 655, 0.717Demo solver (Heun GVF): 660, 0.716Demo solver (Heun GVF): 665, 0.716Demo solver (Heun GVF): 670, 0.716Demo solver (Heun GVF): 675, 0.716Demo solver (Heun GVF): 680, 0.716Demo solver (Heun GVF): 685, 0.715Demo solver (Heun GVF): 690, 0.715Demo solver (Heun GVF): 695, 0.715Demo solver (Heun GVF): 700, 0.715Demo solver (Heun GVF): 705, 0.714Demo solver (Heun GVF): 710, 0.714Demo solver (Heun GVF): 715, 0.714Demo solver (Heun GVF): 720, 0.714Demo solver (Heun GVF): 725, 0.713Demo solver (Heun GVF): 730, 0.713Demo solver (Heun GVF): 735, 0.713Demo solver (Heun GVF): 740, 0.712Demo solver (Heun GVF): 745, 0.712Demo solver (Heun GVF): 750, 0.712Demo solver (Heun GVF): 755, 0.711Demo solver (Heun GVF): 760, 0.711Demo solver (Heun GVF): 765, 0.711Demo solver (Heun GVF): 770, 0.71Demo solver (Heun GVF): 775, 0.71Demo solver (Heun GVF): 780, 0.71Demo solver (Heun GVF): 785, 0.709Demo solver (Heun GVF): 790, 0.709Demo solver (Heun GVF): 795, 0.709Demo solver (Heun GVF): 800, 0.708Demo solver (Heun GVF): 805, 0.708Demo solver (Heun GVF): 810, 0.708Demo solver (Heun GVF): 815, 0.707Demo solver (Heun GVF): 820, 0.707Demo solver (Heun GVF): 825, 0.706Demo solver (Heun GVF): 830, 0.706Demo solver (Heun GVF): 835, 0.706Demo solver (Heun GVF): 840, 0.705Demo solver (Heun GVF): 845, 0.705Demo solver (Heun GVF): 850, 0.704Demo solver (Heun GVF): 855, 0.704Demo solver (Heun GVF): 860, 0.704Demo solver (Heun GVF): 865, 0.703Demo solver (Heun GVF): 870, 0.703Demo solver (Heun GVF): 875, 0.702Demo solver (Heun GVF): 880, 0.702Demo solver (Heun GVF): 885, 0.702Demo solver (Heun GVF): 890, 0.701Demo solver (Heun GVF): 895, 0.701Demo solver (Heun GVF): 900, 0.7Demo solver (Heun GVF): 905, 0.7Demo solver (Heun GVF): 910, 0.699Demo solver (Heun GVF): 915, 0.699Demo solver (Heun GVF): 920, 0.698Demo solver (Heun GVF): 925, 0.698Demo solver (Heun GVF): 930, 0.697Demo solver (Heun GVF): 935, 0.697Demo solver (Heun GVF): 940, 0.697Demo solver (Heun GVF): 945, 0.696Demo solver (Heun GVF): 950, 0.696Demo solver (Heun GVF): 955, 0.695Demo solver (Heun GVF): 960, 0.695Demo solver (Heun GVF): 965, 0.694Demo solver (Heun GVF): 970, 0.694Demo solver (Heun GVF): 975, 0.693Demo solver (Heun GVF): 980, 0.693Demo solver (Heun GVF): 985, 0.692Demo solver (Heun GVF): 990, 0.692Demo solver (Heun GVF): 995, 0.691Demo solver (Heun GVF): 1,000, 0.691
  • Exact water surface
  • Demo solver (Heun GVF)

Ochre: MacDonald bed built so that the profile is exact.

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 frozen15 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, EPA SWMM 5.1.15, EPA SWMM 5.2.4, HEC-RAS 6.6, HEC-RAS 7.0.1, Hydra urban drainage, LISFLOOD-FP 8.3 ACC, LISFLOOD-FP 8.3 DG2, LISFLOOD-FP 8.3 FV1, Landlab 2.11.0 OverlandFlow, OpenSWMM Engine v6 dynamic wave, OpenSWMM Engine v6 finite volume, demo, openTELEMAC-2D v9.1.1
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

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

About this test

Physics

Steady rectangular-channel flow with constant discharge \(Q\) and Manning friction. A smooth depth profile \(h(x)\) is prescribed; the bed \(z_b(x)\) is manufactured so that the steady Saint-Venant equations hold exactly (MacDonald et al., 1997). Default M1 parameters live in references.macdonald.M1_PARAMS (\(L = 1000\,\mathrm{m}\), \(B = 10\,\mathrm{m}\), \(Q = 2\,\mathrm{m^3\,s^{-1}}\), \(n = 0.03\)).

Citation

MacDonald, I., Baines, M. J., Nichols, N. K., and Samuels, P. G. (1997). "Analytic benchmark solutions for open-channel flows." J. Hydraul. Eng., 123(11), 1041–1045. https://doi.org/10.1061/(ASCE)0733-9429(1997)123:11(1041)

Analytic generator: references.macdonald.depth_profile (case m1).

Pitfalls

  • Errors in bed slope / friction source terms (well-balanced vs non-balanced discretizations) dominate depth error on coarse meshes.
  • Reach steady state before scoring; transient residuals pollute L1(\(h\)).
  • Boundary conditions must match the analytic subcritical regime (downstream depth control).
  • Use the manufactured bed from the same parameter set as the depth profile; mismatched \(n\) or \(Q\) voids the exactness property.

Case history

  • 1.1.0 — inputs/params.json described a 1 m channel with n = 0.033, contradicting the reference (10 m, n = 0.03, wide-channel hydraulic radius). The inputs now state the reference's parameters, the exact downstream depth and that only friction losses apply. The reference is unchanged, so scores from solvers that used the reference parameters are comparable.

Sources

Test A1F-001_macdonald_m1_backwater · version 1.1.0 · data licence analytic-public