OpenHydro Bench
Exact answer known1D · pressurizedCandidate

Pollutant spreading in a pipe

Does the model carry and spread a pollutant correctly?

Test A1P-030
Ogata (1961)
Version 1.0.0
Press play, or drag the slider, to watch the exact answer unfold. Models are compared at the end, t = 3,600 s.

What happens

A tracer is released continuously into steady flow. After an hour its front has moved 360 m and smeared out by dispersion, following an exact formula.

Why it matters

Contamination warnings, chlorine decay and sewer water quality all depend on getting both the travel and the spreading right.

A good model must

  • match the concentration profile within 2 %
  • conserve the tracer within 0.5 %
  • show second-order accuracy 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 4 m down to 0.5 m cells; the checks are scored on the 0.5 m grid, and each card lists the error on every grid. Compare them in the results viewer →

RankModelDifferenceLargest difference inMass errorRun time
1Demo 1D suite example0.045 %Concentration profile<0.01 %–
2EPANET 2.2 US EPA1.9 %Concentration profile0.028 %0.56 s
Demo 1D
Worked example that ships with the suite: plain, well-understood schemes
#1 0.045 % off

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

Concentration profile
• 0.045 % off
Tracer conserved
· 0.0071 % error
conservation, reported beside the score
Error by grid (L1 c)
· 4 m: 0.00399 · 2 m: 0.00162 · 1 m: 0.000561 · 0.5 m: 0.000161
reported, not counted · the checks above are scored on the 0.5 m grid
Improves with finer grids
· rate 1.54 (90 % range 1.31 to 1.78)
reported, not counted · the scheme's design order is 2

Scored with method 3.0 · Score card: demo

EPANET 2.2
EPA EPANET 2.2, the standard water-network solver
#2 1.9 % off

Rate the error shrinks on finer grids: -0.0043 (90 % range -0.0087 to 0.0002); the method's expected rate is 1.6 or more

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

Settings: epanet (WNTR 1.5.0, libepanet22); water quality, Lagrangian advection (no dispersion)

Concentration profile
• 1.9 % off
Tracer conserved
· 0.028 % error
conservation, reported beside the score
Error by grid (L1 c)
· 4 m: 0.00671 · 2 m: 0.00675 · 1 m: 0.00676 · 0.5 m: 0.00677
reported, not counted · the checks above are scored on the 0.5 m grid
Improves with finer grids
· rate −0.00 (90 % range −0.01 to 0.00)
reported, not counted · the scheme's design order is 2

Scored with method 3.0 · Score card: EPA EPANET 2.2

Not run yet: HEC-RAS 7.0, TELEMAC-2D, ANUGA, GeoClaw, LISFLOOD-FP, 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.00030.0010.0030.5124grid cell sizeDemo 1D suite example: rate 1.7EPANET 2.2 US EPA: rate -0.0016
Demo 1D · rate 1.7EPANET 2.2 · rate -0.0016

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
concentration_L1
L1 of c · in the score
already a percentage–Concentration L1 error within 2 % of the L1 norm of the Ogata–Banks profile on the finest grid. The front is 8.5 m wide (2√(Dt)) and moves 360 m, so a scheme with numerical diffusion comparable to D (first-order upwind at u·dx/2 = 0.025 m²/s, 2.5×D) visibly smears it and fails.
mass
global_mass_error of c · conservation, beside the score
already a percentage–Tracer mass in the domain within 0.5 % of the exact integral: a conservative scheme meets it to quadrature error.
convergence
observed order of L1 error in c · reported, not counted
the design order, 2–Measured from the error on every refinement level, as in ASME V&V 20.

Reference

Exact solution from references.ogata_banks.concentration.

More figures

Tracer concentration, Ogata–Banks00.250.50.7510100200300400500600Distance x (m)c / c₀Exact, t = 0.25 hExact, t = 0.5 hExact, t = 0.75 hExact, t = 1 hDemo solver, t = 1 h: 250, 1Demo solver, t = 1 h: 254, 1Demo solver, t = 1 h: 257, 1Demo solver, t = 1 h: 261, 1Demo solver, t = 1 h: 264, 1Demo solver, t = 1 h: 268, 1Demo solver, t = 1 h: 271, 1Demo solver, t = 1 h: 275, 1Demo solver, t = 1 h: 278, 1Demo solver, t = 1 h: 282, 1Demo solver, t = 1 h: 285, 1Demo solver, t = 1 h: 289, 1Demo solver, t = 1 h: 292, 1Demo solver, t = 1 h: 296, 1Demo solver, t = 1 h: 299, 1Demo solver, t = 1 h: 303, 1Demo solver, t = 1 h: 306, 1Demo solver, t = 1 h: 310, 1Demo solver, t = 1 h: 313, 1Demo solver, t = 1 h: 317, 1Demo solver, t = 1 h: 320, 1Demo solver, t = 1 h: 324, 1Demo solver, t = 1 h: 327, 1Demo solver, t = 1 h: 331, 0.999Demo solver, t = 1 h: 334, 0.998Demo solver, t = 1 h: 338, 0.994Demo solver, t = 1 h: 341, 0.984Demo solver, t = 1 h: 345, 0.961Demo solver, t = 1 h: 348, 0.915Demo solver, t = 1 h: 352, 0.837Demo solver, t = 1 h: 355, 0.72Demo solver, t = 1 h: 359, 0.571Demo solver, t = 1 h: 362, 0.408Demo solver, t = 1 h: 366, 0.259Demo solver, t = 1 h: 369, 0.142Demo solver, t = 1 h: 373, 0.0668Demo solver, t = 1 h: 376, 0.0263Demo solver, t = 1 h: 380, 0.00854Demo solver, t = 1 h: 383, 0.00225Demo solver, t = 1 h: 387, 0.00047Demo solver, t = 1 h: 390, 7.6e-05Demo solver, t = 1 h: 394, 9.2e-06Demo solver, t = 1 h: 397, 8.1e-07Demo solver, t = 1 h: 401, 5e-08Demo solver, t = 1 h: 404, 2e-09Demo solver, t = 1 h: 408, 4.8e-11Demo solver, t = 1 h: 411, 6.2e-13Demo solver, t = 1 h: 415, 3.6e-15Demo solver, t = 1 h: 418, 7e-18Demo solver, t = 1 h: 422, 3.4e-21Demo solver, t = 1 h: 425, 3.5e-25Demo solver, t = 1 h: 429, 1.1e-29Demo solver, t = 1 h: 432, 1.9e-34Demo solver, t = 1 h: 436, 2.2e-39Demo solver, t = 1 h: 439, 2e-44Demo solver, t = 1 h: 443, 1.4e-49Demo solver, t = 1 h: 446, 8.2e-55Demo solver, t = 1 h: 450, 3.9e-60Demo solver, t = 1 h: 453, 1.6e-65Demo solver, t = 1 h: 457, 5.3e-71Demo solver, t = 1 h: 460, 1.5e-76Demo solver, t = 1 h: 464, 3.5e-82Demo solver, t = 1 h: 467, 7.2e-88Demo solver, t = 1 h: 471, 1.2e-93Demo solver, t = 1 h: 474, 1.8e-99Demo solver, t = 1 h: 478, 2.4e-105
  • Exact, t = 0.25 h
  • Exact, t = 0.5 h
  • Exact, t = 0.75 h
  • Exact, t = 1 h
  • Demo solver, t = 1 h

Exact profile every 15 min; dots are the demo solver (MUSCL advection, central diffusion) on its finest grid, around the front at 1 h.

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 frozen2 passing score card(s)
  • ✓Order of accuracy shownfor frozenobserved order meets the minimum
  • ✓Two independent codes passfor frozenpassing codes: EPA EPANET 2.2, demo
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

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

About this test

Physics

A tracer enters a uniform flow \(u = 0.1\) m/s at \(x = 0\) with \(c = c_0\) from \(t = 0\); dispersion \(D = 0.01\) m²/s. Ogata & Banks (1961) give

$$\frac{c}{c_0} = \tfrac12\left[\operatorname{erfc}\frac{x-ut}{2\sqrt{Dt}} + e^{ux/D}\operatorname{erfc}\frac{x+ut}{2\sqrt{Dt}}\right].$$

After one hour the front is at 360 m and about 8.5 m wide.

What it checks

Advection without excess numerical diffusion. A first-order upwind scheme adds \(u\,\Delta x/2\), already 2.5 × \(D\) on a 0.5 m grid, and smears the front; a second-order TVD scheme should converge at order 2 on this smooth, monotone profile (minimum 1.6). The demo solver (MUSCL with van Leer limiter, central diffusion, SSP-RK2) reaches 1.67 across the four grids: its coarsest grid is half the front width, so the asymptotic order of 2 only shows on the finer pairs (1.8).

Citation

Ogata, A., and Banks, R. B. (1961). A Solution of the Differential Equation of Longitudinal Dispersion in Porous Media. USGS Professional Paper 411-A.

Sources

  • Ogata, A., Banks, R. B. (1961). A Solution of the Differential Equation of Longitudinal Dispersion in Porous Media. USGS Professional Paper 411-A.

Test A1P-030_advection_dispersion_tracer · version 1.0.0 · data licence analytic-public