OpenHydro Bench
Benchmark with known end states2D · free surfaceCandidate

Flooding a cut-off pond

Does a pond behind a ridge fill and settle at the right level?

Test A2C-EA1
Néelz (2013)
Version 1.0.0
Right answer
Known end states · Néelz (2013)
Results
10 models · closest 0.27 % off · see them ↓
Must
leave the pond at the crest level within 2 cm
Sketch, not to scale.
Terrain
water depth at the end of the run (demo solver) for EA Test 1 — flooding a disconnected water body, with output points and the inflow line in red
Water level imposed on the west boundary9.81010.205101520Time (h)Level (m)Boundary levelSill crest 10.25 m
Water level at the output points, demo solver1010.110.210.305101520Time (h)Water level (m)P1P2Expected 10.25 m
  • P1
  • P2

Gaps are times when the cell at that point is dry.

What happens

Rising water spills over a 10.25 m ridge into a hollow, then falls away again. The trapped pond must end level with the ridge crest.

Why it matters

Floodplains are full of hollows that fill and stay wet. Models must not lose or invent water as it is trapped.

A good model must

  • leave the pond at the crest level within 2 cm
  • reach the right peak level

Exact answer and models

Water level at gauge P1 (400 m, 50 m)

The pond must settle at the level of the sill once the boundary falls (dashed).

Point at the chart to read every model's value; click a name to hide or show it.

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. Compare them in the results viewer (depth maps and animation) →

RankModelDifferenceLargest difference inRun time
1LISFLOOD-FP 8.3 · FV10.27 %Pond level, point 14.8 s
2Demo 2D suite example0.44 %Peak level14.3 s
3TELEMAC-2D openTELEMAC 9.10.56 %Pond level, point 159.5 s
4LISFLOOD-FP 8.3 · DG21.7 %Pond level, point 118.1 s
5=ANUGA 4.0.11.9 %Pond level, point 21.7 min
5=LISFLOOD-FP 8.3 · ACC2.1 %Pond level, point 13.4 s
7=HEC-RAS 7.0 2D · SWE-EM5.1 %Pond level, point 123.5 s
7=HEC-RAS 6.6 previous release · 2D SWE-EM5.1 %Pond level, point 126.0 s
7=HEC-RAS 7.0 1D · 2D SWE-ELM5.1 %Pond level, point 119.3 s
7=HEC-RAS 6.6 previous release5.1 %Pond level, point 137.7 s
LISFLOOD-FP FV1
LISFLOOD-FP 8.3, first-order finite-volume solver (full shallow-water equations)
#1 0.27 % off

Run time, finest grid: 4.8 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)

Pond level, point 1
• 0.66 mm off
0.27 % of the 0.25 m pond depth at P1
Pond level, point 2
• 0.66 mm off
0.26 % of the 0.25 m pond depth at P2
Peak level
• 0.38 mm off
0.11 % of the 0.35 m plateau depth
Water stored
· 0.48 % off
reported, not counted

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

Demo 2D
Worked example that ships with the suite: first-order finite volume
#2 0.44 % off

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

Pond level, point 1
• 0.95 mm off
0.38 % of the 0.25 m pond depth at P1
Pond level, point 2
• 0.95 mm off
0.38 % of the 0.25 m pond depth at P2
Peak level
• 1.5 mm off
0.44 % of the 0.35 m plateau depth
Water stored
· 0.53 % off
reported, not counted

Scored with method 3.0 · Score card: demo-swe2d (first-order FV, HLL + hydrostatic reconstruction)

TELEMAC-2D
openTELEMAC-2D 9.1.1, run with its default finite-volume settings
#3 0.56 % off

Run time, finest grid: 59.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: telemac2d (Selafin, nodes at the grid's cell centres)

Pond level, point 1
• 1.4 mm off
0.56 % of the 0.25 m pond depth at P1
Pond level, point 2
• 1.4 mm off
0.56 % of the 0.25 m pond depth at P2
Peak level
• 0.00045 mm off
<0.01 % of the 0.35 m plateau depth
Water stored
· 0.81 % off
reported, not counted

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

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

Run time, finest grid: 18.1 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)

Pond level, point 1
• 4.2 mm off
1.7 % of the 0.25 m pond depth at P1
Pond level, point 2
• 4.2 mm off
1.7 % of the 0.25 m pond depth at P2
Peak level
• 0.5 mm off
0.14 % of the 0.35 m plateau depth
Water stored
· 2.5 % off
reported, not counted

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

ANUGA
ANUGA 4.0.1 (Geoscience Australia / ANU), default settings on a triangular mesh
#5= 1.9 % off

Run time, finest grid: 1.7 min · 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)

Pond level, point 1
• 4.8 mm off
1.9 % of the 0.25 m pond depth at P1
Pond level, point 2
• 4.8 mm off
1.9 % of the 0.25 m pond depth at P2
Peak level
• 0.0049 mm off
<0.01 % of the 0.35 m plateau depth
Water stored
· 2.6 % off
reported, not counted

Scored with method 3.0 · Score card: ANUGA 4.0.1

LISFLOOD-FP ACC
LISFLOOD-FP 8.3, the local-inertia solver it is best known for; it leaves out the advection term
#5= 2.1 % off

Run time, finest grid: 3.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: lisflood (acceleration solver, defaults; CPU, double precision)

Pond level, point 1
• 5.3 mm off
2.1 % of the 0.25 m pond depth at P1
Pond level, point 2
• 5.3 mm off
2.1 % of the 0.25 m pond depth at P2
Peak level
• 0.091 mm off
0.026 % of the 0.35 m plateau depth
Water stored
· 2.7 % off
reported, not counted

The pond settles 5 mm above the sill. The stored volume is 2.7 % above the figure integrated on the EA's 2 m DEM; that check does not gate, because a 10 m grid samples the ground differently.

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

HEC-RAS 7.0
HEC-RAS 7.0.1 2D with its Eulerian shallow-water option (SWE-EM), which HEC recommends for dam breaks
#7= 5.1 % off

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

Settings: hecras 2D (headless terrain + seeded mesh + boundary lines, SWE-EM; depth = cell volume / area)

Pond level, point 1
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P1
Pond level, point 2
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P2
Peak level
• 0.05 mm off
0.014 % of the 0.35 m plateau depth
Water stored
· 6.2 % off
reported, not counted

Scored with method 3.0 · Score card: HEC-RAS 7.0.1 2D SWE-EM

HEC-RAS 6.6
HEC-RAS 6.6 2D with its Eulerian shallow-water option (SWE-EM), the release before 7.0
#7= 5.1 % off

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

Settings: hecras 2D (headless terrain + seeded mesh + boundary lines, SWE-EM; depth = cell volume / area)

Pond level, point 1
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P1
Pond level, point 2
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P2
Peak level
• 0.051 mm off
0.015 % of the 0.35 m plateau depth
Water stored
· 6.2 % off
reported, not counted

Scored with method 3.0 · Score card: HEC-RAS 6.6 2D SWE-EM

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)
#7= 5.1 % off

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

Settings: hecras 2D (headless terrain + seeded mesh + boundary lines, SWE-ELM; depth = cell volume / area)

Pond level, point 1
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P1
Pond level, point 2
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P2
Peak level
• 0.052 mm off
0.015 % of the 0.35 m plateau depth
Water stored
· 6.2 % off
reported, not counted

Scored with method 3.0 · Score card: HEC-RAS 7.0.1 2D SWE-ELM

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

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

Settings: hecras 2D (headless terrain + seeded mesh + boundary lines, SWE-ELM; depth = cell volume / area)

Pond level, point 1
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P1
Pond level, point 2
• 1.3 cm off
5.1 % of the 0.25 m pond depth at P2
Peak level
• 0.052 mm off
0.015 % of the 0.35 m plateau depth
Water stored
· 6.2 % off
reported, not counted

Run on the EA's own 2 m DEM, which HEC-RAS uses as sub-grid terrain. The pond settles 1.3 cm above the sill.

Scored with method 3.0 · Score card: HEC-RAS 6.6 2D SWE-ELM

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

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
final_level_p1
expected_state_error of h · in the score
of the 0.25 m pond depth at P1–A solver that conserves mass and handles the sill must leave the pond at the crest level; 2 cm allows for slow drainage over the sill by t = 20 h.
final_level_p2
expected_state_error of h · in the score
of the 0.25 m pond depth at P2–Same pond as P1, so it must settle at the same 10.25 m crest level; a second point catches a solver that leaves the pond tilted or partly drained.
peak_level
expected_state_error of h · in the score
of the 0.35 m plateau depth–Hydrostatic plateau level during the 10 h hold.
final_volume
expected_state_error of volume · reported, not counted
already a percentage–Informational: depends on how the solver samples the 2 m DEM onto its own grid.

Reference

No exact or measured answer exists. The test is scored on states that follow from the inputs alone; published package results are context only.

Expected stateValueWhy it must hold
pond_final_level_p1
h+z at P1
10.25 mSpecification §2: after the boundary falls the pond becomes horizontal at the sill elevation, 10.25 m (sill crest at x = 300 m in the DEM).
pond_final_level_p2
h+z at P2
10.25 mAs P1; both points lie in the same pond.
peak_level
h+z at P1,P2
10.35 mBoundary holds 10.35 m for 10 h (60–660 min), long enough for the whole domain to become horizontal (specification §2).
final_stored_volume
volume
9,954 m3Pond below 10.25 m (9887.3 m³) plus water below 9.7 m elsewhere (66.9 m³), integrated on the 2 m EA DEM. Solvers on a 10 m grid sample the DEM differently, so this check does not gate.

More figures

Terrain
water depth at the end of the run (demo solver) for EA Test 1 — flooding a disconnected water body, with output points and the inflow line in red
Water level imposed on the west boundary9.81010.205101520Time (h)Level (m)Boundary levelSill crest 10.25 m
Water level at the output points, demo solver1010.110.210.305101520Time (h)Water level (m)P1P2Expected 10.25 m
  • P1
  • P2

Gaps are times when the cell at that point is dry.

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 candidateOGL-UK-3.0
  • ✓All inputs availablefor candidateall committed or fetched by SHA-256
  • ✓Reference (truth) availablefor candidateobjective expected states
  • ✓Every tolerance justifiedfor candidateeach gating criterion has a rationale
  • ✓A published run passesfor frozen10 passing score card(s)
  • ✓Order of accuracy shownfor frozennot a verification case
  • ✓Two independent codes passfor frozenpassing codes: ANUGA 4.0.1, HEC-RAS 6.6 2D SWE-ELM, HEC-RAS 6.6 2D SWE-EM, HEC-RAS 7.0.1 2D SWE-ELM, HEC-RAS 7.0.1 2D SWE-EM, LISFLOOD-FP 8.3 ACC, LISFLOOD-FP 8.3 DG2, LISFLOOD-FP 8.3 FV1, demo-swe2d, openTELEMAC-2D v9.1.1
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

FileRoleFormatSHA-256Get it
inputs/terrain.ascterrainesri_ascii_grid96dc6541a3e5…Fetched by hash from source
inputs/boundary_level.csvboundary_conditioncsvc0a001dd8971…Download
inputs/output_points.csvprobescsv6b89f16db52d…Download
inputs/case.jsoncase_parametersjson70b96e6d913a…Download

About this test

Parameter Value
Manning's n 0.03
Grid 10 m (DEM 2 m)
Run time 20 h
Initial level 9.7 m
Settled pond volume 9,887 m³

Data and licence

Inputs come from the GOV.UK 'Benchmarking model data' archive, published under the Open Government Licence v3.0 (the page licence; the archive carries no other terms). Attribution: Environment Agency, SC120002 (2013), test specifications May 2010.

Fetch the non-committed inputs with python scripts/fetch_inputs.py A2C-EA1.

Sources

Test A2C-EA1_disconnected_water_body · version 1.0.0 · data licence OGL-UK-3.0