OpenHydro Bench
Exact answer known2D · free surfaceCandidate

Water sloshing in a bowl

Does the model move a shoreline back and forth correctly?

Test A2A-001
Thacker (1981)
Version 2.0.0
Press play, or drag the slider, to watch the exact answer unfold. Models are compared at the end, t = 1 s.

What happens

Water sloshes in a smooth bowl. The shoreline creeps up one side and retreats from the other, and the exact motion is known at every moment.

Why it matters

Flood edges wet and dry all the time. Models that mishandle the shoreline leak water or create it.

A good model must

  • keep the average depth error under 2 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 0.1 m down to 0.0125 m cells; the checks are scored on the 0.0125 m grid, and each card lists the error on every grid. Compare them in the results viewer (depth maps and animation) →

RankModelDifferenceLargest difference inMass errorRun time
1Basilisk Saint-Venant0.021 %Average depth error<0.01 %0.96 s
2ANUGA 4.0.10.11 %Average depth error0.012 %21.2 s
3=Demo 2D suite example0.15 %Average depth error<0.01 %0.65 s
3=TELEMAC-2D openTELEMAC 9.10.15 %Average depth error<0.01 %13.5 s
5=LISFLOOD-FP 8.3 · DG20.18 %Average depth error<0.01 %2.0 s
5=GeoClaw Clawpack 5.90.19 %Average depth error0.038 %2.1 s
7LISFLOOD-FP 8.3 · FV10.21 %Average depth error<0.01 %0.38 s
8LISFLOOD-FP 8.3 · ACC0.42 %Average depth error<0.01 %0.31 s
9Landlab OverlandFlow1.1 %Average depth error0.25 %0.28 s
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.021 % off

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

Run time, finest grid: 0.96 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.0069 mm off
0.021 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.0001 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000156 · 0.05 m: < 0.0001 · 0.025 m: < 0.0001 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 1.48 (90 % range 1.31 to 1.64)
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: 1.3 (90 % range 1.2 to 1.4); the method's expected rate is 0.8 or more

Run time, finest grid: 21.2 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.036 mm off
0.11 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.012 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000522 · 0.05 m: 0.000196 · 0.025 m: < 0.0001 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 1.29 (90 % range 1.16 to 1.43)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: ANUGA 4.0.1

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

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

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

Average depth error
• 0.047 mm off
0.15 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.0001 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000311 · 0.05 m: 0.000167 · 0.025 m: < 0.0001 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 0.90 (90 % range 0.86 to 0.94)
reported, not counted · the scheme's design order is 1

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.15 % off

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

Run time, finest grid: 13.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, centreline nodes)

Average depth error
• 0.049 mm off
0.15 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.00036 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000306 · 0.05 m: 0.000168 · 0.025 m: < 0.0001 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 0.88 (90 % range 0.84 to 0.91)
reported, not counted · the scheme's design order is 1

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

LISFLOOD-FP DG2
LISFLOOD-FP 8.3, second-order discontinuous Galerkin solver
#5= 0.18 % off

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

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

Average depth error
• 0.057 mm off
0.18 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.00079 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000397 · 0.05 m: 0.000128 · 0.025 m: < 0.0001 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 0.93 (90 % range 0.30 to 1.57)
reported, not counted · the scheme's design order is 1

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

GeoClaw
GeoClaw 5.9.2 (Clawpack), with its stock example's settings on a uniform grid
#5= 0.19 % off

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

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

Settings: geoclaw (uniform grid, stock example settings)

Average depth error
• 0.061 mm off
0.19 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.038 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.00079 · 0.05 m: 0.000267 · 0.025 m: 0.000104 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 1.24 (90 % range 0.86 to 1.62)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: GeoClaw 5.9.2

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

Rate the error shrinks on finer grids: 0.79 (90 % range 0.69 to 0.88); 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.069 mm off
0.21 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· < 0.0001 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000349 · 0.05 m: 0.0002 · 0.025 m: 0.000109 · 0.0125 m: < 0.0001
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 0.79 (90 % range 0.69 to 0.88)
reported, not counted · the scheme's design order is 1

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

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

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

Run time, finest grid: 0.31 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.14 mm off
0.42 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· < 0.0001 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000406 · 0.05 m: 0.000214 · 0.025 m: 0.000147 · 0.0125 m: 0.000135
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate 0.53 (90 % range 0.16 to 0.90)
reported, not counted · the scheme's design order is 1

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

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
#9 1.1 % off

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

Run time, finest grid: 0.28 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.35 mm off
1.1 % of the exact solution's mean depth over the bowl, 32 mm
Water conserved
· 0.25 % error
conservation, reported beside the score
Error by grid (L1 h)
· 0.1 m: 0.000311 · 0.05 m: 0.000186 · 0.025 m: 0.000186 · 0.0125 m: 0.000351
reported, not counted · the checks above are scored on the 0.0125 m grid
Improves with finer grids
· rate −0.05 (90 % range −0.82 to 0.71)
reported, not counted · the scheme's design order is 1

Scored with method 3.0 · Score card: Landlab 2.11.0 OverlandFlow

Not run yet: HEC-RAS 7.0, 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 mm0.01250.01250.0250.0250.050.050.10.1grid cell sizeDemo 2D suite example: rate 0.91TELEMAC-2D openTELEMAC 9.1: rate 0.89ANUGA 4.0.1: rate 1.2GeoClaw Clawpack 5.9: rate 1.1LISFLOOD-FP 8.3 · FV1: rate 0.76LISFLOOD-FP 8.3 · DG2: rate 0.59LISFLOOD-FP 8.3 · ACC: rate 0.33Basilisk Saint-Venant: rate 1.4Landlab OverlandFlow: rate -0.46
Demo 2D · rate 0.91TELEMAC-2D · rate 0.89ANUGA · rate 1.2GeoClaw · rate 1.1LISFLOOD-FP FV1 · rate 0.76LISFLOOD-FP DG2 · rate 0.59LISFLOOD-FP ACC · rate 0.33Basilisk · rate 1.4Landlab · rate -0.46

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
depth_L1
L1 of h · in the score
of the exact solution's mean depth over the bowl, 32 mm–L1 depth error within 0.02 m of Thacker exact solution on the finest mesh.
mass
global_mass_error of volume · conservation, beside the score
already a percentage–Global volume conserved within 0.1% versus analytic wet mass.
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.thacker.depth_velocity.

More figures

Water surface across the bowl (y = 0)-0.1-0.050-1-0.500.51x (m)Elevation (m)Exact, t = 0 TExact, t = 0.25 TExact, t = 0.5 TDemo solver, t = 1 s: -0.981, -0.00287Demo solver, t = 1 s: -0.969, -0.00193Demo solver, t = 1 s: -0.956, -0.00197Demo solver, t = 1 s: -0.944, -0.00192Demo solver, t = 1 s: -0.931, -0.00186Demo solver, t = 1 s: -0.919, -0.00182Demo solver, t = 1 s: -0.906, -0.00177Demo solver, t = 1 s: -0.894, -0.00173Demo solver, t = 1 s: -0.881, -0.00169Demo solver, t = 1 s: -0.869, -0.00165Demo solver, t = 1 s: -0.856, -0.00161Demo solver, t = 1 s: -0.844, -0.00158Demo solver, t = 1 s: -0.831, -0.00154Demo solver, t = 1 s: -0.819, -0.0015Demo solver, t = 1 s: -0.806, -0.00146Demo solver, t = 1 s: -0.794, -0.00142Demo solver, t = 1 s: -0.781, -0.00139Demo solver, t = 1 s: -0.769, -0.00135Demo solver, t = 1 s: -0.756, -0.00132Demo solver, t = 1 s: -0.744, -0.00129Demo solver, t = 1 s: -0.731, -0.00126Demo solver, t = 1 s: -0.719, -0.00123Demo solver, t = 1 s: -0.706, -0.0012Demo solver, t = 1 s: -0.694, -0.00117Demo solver, t = 1 s: -0.681, -0.00114Demo solver, t = 1 s: -0.669, -0.00111Demo solver, t = 1 s: -0.656, -0.00108Demo solver, t = 1 s: -0.644, -0.00105Demo solver, t = 1 s: -0.631, -0.00103Demo solver, t = 1 s: -0.619, -0.001Demo solver, t = 1 s: -0.606, -0.00098Demo solver, t = 1 s: -0.594, -0.00095Demo solver, t = 1 s: -0.581, -0.00092Demo solver, t = 1 s: -0.569, -0.0009Demo solver, t = 1 s: -0.556, -0.00088Demo solver, t = 1 s: -0.544, -0.00085Demo solver, t = 1 s: -0.531, -0.00083Demo solver, t = 1 s: -0.519, -0.00081Demo solver, t = 1 s: -0.506, -0.00078Demo solver, t = 1 s: -0.494, -0.00076Demo solver, t = 1 s: -0.481, -0.00074Demo solver, t = 1 s: -0.469, -0.00072Demo solver, t = 1 s: -0.456, -0.0007Demo solver, t = 1 s: -0.444, -0.00067Demo solver, t = 1 s: -0.431, -0.00065Demo solver, t = 1 s: -0.419, -0.00063Demo solver, t = 1 s: -0.406, -0.00061Demo solver, t = 1 s: -0.394, -0.00059Demo solver, t = 1 s: -0.381, -0.00057Demo solver, t = 1 s: -0.369, -0.00055Demo solver, t = 1 s: -0.356, -0.00053Demo solver, t = 1 s: -0.344, -0.00052Demo solver, t = 1 s: -0.331, -0.0005Demo solver, t = 1 s: -0.319, -0.00048Demo solver, t = 1 s: -0.306, -0.00046Demo solver, t = 1 s: -0.294, -0.00044Demo solver, t = 1 s: -0.281, -0.00042Demo solver, t = 1 s: -0.269, -0.0004Demo solver, t = 1 s: -0.256, -0.00038Demo solver, t = 1 s: -0.244, -0.00037Demo solver, t = 1 s: -0.231, -0.00035Demo solver, t = 1 s: -0.219, -0.00033Demo solver, t = 1 s: -0.206, -0.00031Demo solver, t = 1 s: -0.194, -0.00029Demo solver, t = 1 s: -0.181, -0.00027Demo solver, t = 1 s: -0.169, -0.00026Demo solver, t = 1 s: -0.156, -0.00024Demo solver, t = 1 s: -0.144, -0.00022Demo solver, t = 1 s: -0.131, -0.0002Demo solver, t = 1 s: -0.119, -0.00018Demo solver, t = 1 s: -0.106, -0.00016Demo solver, t = 1 s: -0.0938, -0.00015Demo solver, t = 1 s: -0.0813, -0.00013Demo solver, t = 1 s: -0.0688, -0.00011Demo solver, t = 1 s: -0.0563, -9.1e-05Demo solver, t = 1 s: -0.0437, -7.2e-05Demo solver, t = 1 s: -0.0312, -5.4e-05Demo solver, t = 1 s: -0.0188, -3.6e-05Demo solver, t = 1 s: -0.00625, -1.7e-05Demo solver, t = 1 s: 0.00625, -1.8e-07Demo solver, t = 1 s: 0.0188, 1.8e-05Demo solver, t = 1 s: 0.0312, 3.6e-05Demo solver, t = 1 s: 0.0437, 5.4e-05Demo solver, t = 1 s: 0.0562, 7.2e-05Demo solver, t = 1 s: 0.0687, 9.1e-05Demo solver, t = 1 s: 0.0813, 0.00011Demo solver, t = 1 s: 0.0938, 0.00013Demo solver, t = 1 s: 0.106, 0.00015Demo solver, t = 1 s: 0.119, 0.00016Demo solver, t = 1 s: 0.131, 0.00018Demo solver, t = 1 s: 0.144, 0.0002Demo solver, t = 1 s: 0.156, 0.00022Demo solver, t = 1 s: 0.169, 0.00024Demo solver, t = 1 s: 0.181, 0.00025Demo solver, t = 1 s: 0.194, 0.00027Demo solver, t = 1 s: 0.206, 0.00029Demo solver, t = 1 s: 0.219, 0.00031Demo solver, t = 1 s: 0.231, 0.00033Demo solver, t = 1 s: 0.244, 0.00035Demo solver, t = 1 s: 0.256, 0.00036Demo solver, t = 1 s: 0.269, 0.00038Demo solver, t = 1 s: 0.281, 0.0004Demo solver, t = 1 s: 0.294, 0.00042Demo solver, t = 1 s: 0.306, 0.00044Demo solver, t = 1 s: 0.319, 0.00046Demo solver, t = 1 s: 0.331, 0.00048Demo solver, t = 1 s: 0.344, 0.0005Demo solver, t = 1 s: 0.356, 0.00051Demo solver, t = 1 s: 0.369, 0.00053Demo solver, t = 1 s: 0.381, 0.00055Demo solver, t = 1 s: 0.394, 0.00057Demo solver, t = 1 s: 0.406, 0.00059Demo solver, t = 1 s: 0.419, 0.00061Demo solver, t = 1 s: 0.431, 0.00063Demo solver, t = 1 s: 0.444, 0.00065Demo solver, t = 1 s: 0.456, 0.00067Demo solver, t = 1 s: 0.469, 0.00069Demo solver, t = 1 s: 0.481, 0.00072Demo solver, t = 1 s: 0.494, 0.00074Demo solver, t = 1 s: 0.506, 0.00076Demo solver, t = 1 s: 0.519, 0.00078Demo solver, t = 1 s: 0.531, 0.0008Demo solver, t = 1 s: 0.544, 0.00083Demo solver, t = 1 s: 0.556, 0.00085Demo solver, t = 1 s: 0.569, 0.00087Demo solver, t = 1 s: 0.581, 0.0009Demo solver, t = 1 s: 0.594, 0.00092Demo solver, t = 1 s: 0.606, 0.00095Demo solver, t = 1 s: 0.619, 0.00097Demo solver, t = 1 s: 0.631, 0.001Demo solver, t = 1 s: 0.644, 0.00103Demo solver, t = 1 s: 0.656, 0.00105Demo solver, t = 1 s: 0.669, 0.00108Demo solver, t = 1 s: 0.681, 0.00111Demo solver, t = 1 s: 0.694, 0.00114Demo solver, t = 1 s: 0.706, 0.00117Demo solver, t = 1 s: 0.719, 0.0012Demo solver, t = 1 s: 0.731, 0.00123Demo solver, t = 1 s: 0.744, 0.00126Demo solver, t = 1 s: 0.756, 0.00129Demo solver, t = 1 s: 0.769, 0.00132Demo solver, t = 1 s: 0.781, 0.00135Demo solver, t = 1 s: 0.794, 0.00138Demo solver, t = 1 s: 0.806, 0.00142Demo solver, t = 1 s: 0.819, 0.00145Demo solver, t = 1 s: 0.831, 0.00149Demo solver, t = 1 s: 0.844, 0.00152Demo solver, t = 1 s: 0.856, 0.00156Demo solver, t = 1 s: 0.869, 0.00159Demo solver, t = 1 s: 0.881, 0.00163Demo solver, t = 1 s: 0.894, 0.00167Demo solver, t = 1 s: 0.906, 0.00171Demo solver, t = 1 s: 0.919, 0.00175Demo solver, t = 1 s: 0.931, 0.00179Demo solver, t = 1 s: 0.944, 0.00184Demo solver, t = 1 s: 0.956, 0.00188Demo solver, t = 1 s: 0.969, 0.00194Demo solver, t = 1 s: 0.981, 0.00199Demo solver, t = 1 s: 0.994, 0.00208Demo solver, t = 1 s: 1.006, 0.00265Demo solver, t = 1 s: 1.019, 0.00435Demo solver, t = 1 s: 1.031, 0.00661Demo solver, t = 1 s: 1.044, 0.00906Exact, t = 1 s
  • Exact, t = 0 T
  • Exact, t = 0.25 T
  • Exact, t = 0.5 T
  • Demo solver, t = 1 s
  • Exact, t = 1 s

Period T = 4.49 s. The plane tilts and the shoreline moves; the demo solver is first-order finite volume.

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 frozen8 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, GeoClaw 5.9.2, 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/params.jsonparametersjsonc9abbf619962…Download

About this test

Physics

Nonlinear 2D shallow-water planar oscillation in a frictionless parabolic basin. The free surface remains planar; the shoreline is an exact moving wet/dry boundary (Thacker 1981).

Analytic generator: references.thacker.depth_velocity (alias planar_oscillation).

Citation

Thacker, W. C. (1981). "Some exact solutions to the nonlinear shallow-water wave equations." J. Fluid Mech., 107, 499–508. https://doi.org/10.1017/S0022112081001882

Reference correction (case v2.0.0)

The v1 reference used \(\omega=\sqrt{8gh_0}/L\) and a free surface without the \(-\eta^2 h_0 \cos^2\omega t / L^2\) term. It satisfied momentum but not mass conservation (continuity residual ≈ 83 % of \(\partial h/\partial t\)), so every correct solver would have failed. The corrected solution is

$$z_s = \frac{\eta h_0}{L^2}\left(2x\cos\omega t - \eta\cos^2\omega t\right),\qquad u = -\eta\,\omega\sin\omega t,\qquad \omega=\frac{\sqrt{2gh_0}}{L},$$

verified pointwise against both equations in references/tests/test_thacker.py.

Demo solver

Scored end to end by the first-order finite-volume demo solver (examples/demo_solver/swe2d.py, run by scripts/run_demo_2d.py): it passes with observed order ≈ 0.9. examples/demo_solver/solve_2d.py only samples the analytical solution; it is a scorer fixture, and the convergence check rejects it.

Sources

Test A2A-001_thacker_parabolic_bowl · version 2.0.0 · data licence analytic-public