Does the model put an angled shock wave in the right place?
Test A2A-020 Ippen (1951) Version 2.0.0
What happens
Fast flow meets a wall angled at 15°. The water surface jumps along a straight line at 39.6° to the flow, and the depth almost doubles across it.
Why it matters
Shock waves form in steep channels, spillways and urban streets during flash floods; their angle sets where water overtops walls.
A good model must
keep the average depth error under 5 cm
store the right volume of 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 2 m down to 0.25 m cells; the checks are scored on the 0.25 m grid, and each card lists the error on every grid. Compare them in the results viewer (depth maps and animation) →
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): A2A-020.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.
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)
#2 0.36 % off
Rate the error shrinks on finer grids: 0.96 (90 % range 0.94 to 0.98); the method's expected rate is 0.8 or more
Run time, finest grid: 14.9 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)
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): A2A-020.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.83 % off
Rate the error shrinks on finer grids: 0.9 (90 % range 0.83 to 0.97); the method's expected rate is 0.8 or more
Run time, finest grid: 2.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); HLLC scheme (the default kinetic scheme is unstable here)
reported, not counted · the checks above are scored on the 0.25 m grid
Improves with finer grids
· rate 0.90 (90 % range 0.83 to 0.97)
reported, not counted · the scheme's design order is 1
Run with TELEMAC's HLLC scheme: its default kinetic scheme goes unstable with this supercritical inflow. The depth is right (1 cm) and converges, but the stored water is 0.15 % above exact, as with ANUGA (0.13 % below).
The test itself (inputs, exact answer, checks): A2A-020.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.
Demo 2D
Worked example that ships with the suite: first-order finite volume
#3= 0.89 % off
Rate the error shrinks on finer grids: 0.86 (90 % range 0.77 to 0.95); the method's expected rate is 0.8 or more
Run time, finest grid: 9.3 s· AMD EPYC 9V74 80-Core Processor, 2 cores, 15.6 GB, Linux 6.17.0-1022-azure (GitHub Actions (github-hosted, ubuntu24))
The model files for this run will be published with its next run.
The test itself (inputs, exact answer, checks): A2A-020.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, LISFLOOD-FP, 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
depth_L1
L1 of h · in the score
of the exact field's mean depth, 1.25 m
–
Mean depth error within 5 cm of the exact two-state field on the finest grid (6 % of the 0.81 m depth jump); a jump at the wrong angle or with the wrong conjugate depth fails.
mass
global_mass_error of volume · conservation, beside the score
already a percentage
–
Stored volume within 0.1 % of the exact field: the jump sits where the jump conditions put it.
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.oblique_jump.depth_velocity.
More figures
Exact
Demo solver
Upstream depth 1 m, downstream 1.807 m (Fr₂ = 1.58); the jump angle is 39.58° to the incoming flow.
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.
Uniform supercritical flow, \(h_1 = 1\) m, \(Fr_1 = 2.5\), arrives at
\(\theta = 15°\) towards a straight slip wall and is turned parallel to it
through a straight jump from the wall's leading edge. The exact shallow-water
jump conditions (mass, normal momentum, continuous tangential velocity) give
so \(\beta = 39.58°\) to the incoming flow (24.58° to the wall),
\(h_2/h_1 = 1.807\) and \(Fr_2 = 1.58\).
The case is posed in the wall frame on a Cartesian grid: the wall is the south
edge, the upstream state enters from the west and north, and the outflow to
the east is supercritical.
What it checks
2D shock capturing at an angle to the grid: jump angle, conjugate depth and
L1 convergence at order 1. The demo first-order solver converges at 0.91.
Case history
2.0.0 — the 1.x reference used the gas-dynamics θ–β–M relation (jump at
34.0° instead of 39.6°) and labelled the region between wall and jump as
upstream.
Citation
Ippen, A. T. (1951). "Mechanics of supercritical flow." Trans. ASCE, 116,
268–295. Chow, V. T. (1959). Open-Channel Hydraulics, §17-5. McGraw-Hill.
Sources
Ippen, A. T. (1951). Mechanics of supercritical flow. ASCE Trans. 116:268-295.
Test A2A-020_oblique_hydraulic_jump · version 2.0.0 · data licence analytic-public