OpenHydro Bench
Exact answer known1D · pressurizedCandidate

Sewer pipes running full

When pipes surcharge, does the model get the water level in the manholes right?

Test A1D-002
Chow (1959)
Version 1.0.0
Right answer
Exact solution · Chow (1959)
Results
5 models · closest under 0.01 % off · see them ↓
Must
keep manhole levels within 1 cm
Sketch, not to scale.

The model file

The suite writes this EPA SWMM 5 input file from the test's inputs. Each engine's own copy, as it ran, is in Run it yourself under its result below.

On the map: click any element to see its line in the file and every engine's result there over time.

What happens

Five pipes carry more water than they can as open channels, with the outlet held above the pipe tops, so they run full like water mains. The level in each manhole rises by an exact friction loss along each pipe.

Why it matters

Surcharged pipes push water up manholes and out onto streets. How high it rises decides whether a street floods.

A good model must

  • keep manhole levels within 1 cm
  • pass the full inflow down every pipe

Exact answer and models

Water level in the manholes (hydraulic grade line)

Every pipe runs full: the water level falls by the same friction loss along each pipe.

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

Difference from the exact answer at every manhole and pipe

Shaded: the pass limit, ±10 mm.

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 →

RankModelDifferenceLargest difference inRun time
1Hydra urban drainage<0.01 %Worst depth error0.03 s
2=OpenSWMM 6 dynamic wave0.034 %Worst depth error0.29 s
2=SWMM 5.1.15 previous release0.034 %Worst depth error0.05 s
2=EPA SWMM 5.2.4 dynamic wave0.034 %Worst depth error0.05 s
5OpenSWMM 6 finite volume23 %Worst depth error0.83 s
Hydra
Hydra 17 (NEER AI, Rust): its urban-drainage engine on the SWMM data model, run through its CLI with default settings
#1 under 0.01 % off

Run time, finest grid: 0.03 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, network.json as a SWMM input file)

Worst depth error
• 0.00011 mm off
<0.01 % of the 1.19 m friction loss along the line
Typical flow error
• < 0.0001 % off

Scored with method 3.0 · Score card: Hydra urban drainage (17.0.0/4.1.1)

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

Run time, finest grid: 0.29 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, network.json as a SWMM input file)

Worst depth error
• 0.4 mm off
0.034 % of the 1.19 m friction loss along the line
Typical flow error
• < 0.0001 % off

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

Run time, finest grid: 0.05 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, network.json as a SWMM input file)

Worst depth error
• 0.4 mm off
0.034 % of the 1.19 m friction loss along the line
Typical flow error
• < 0.0001 % off

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

Run time, finest grid: 0.05 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, network.json as a SWMM input file)

Worst depth error
• 0.4 mm off
0.034 % of the 1.19 m friction loss along the line
Typical flow error
• < 0.0001 % off

Scored with method 3.0 · Score card: EPA SWMM 5.2.4

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
#5 23 % off

Run time, finest grid: 0.83 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, network.json as a SWMM input file)

Worst depth error
• 28 cm off
23 % of the 1.19 m friction loss along the line
Typical flow error
• < 0.0001 % off

The pipes are surcharged and the finite-volume routing overestimates the friction loss: the hydraulic grade line falls 1.42 m over the five pipes instead of 1.19 m (19 % more), so the upstream manholes stand up to 28 cm too high. Dynamic wave in the same engine is 0.4 mm from exact.

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

Not run yet: InfoWorks ICM, MIKE+ (MOUSE), PCSWMM, XPSWMM, Flood Modeller, HEC-RAS
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
grade_line
Linf of h · in the score
of the 1.19 m friction loss along the line–Worst manhole head within 1 cm of the 1.19 m friction loss (0.8 %). Full-pipe friction is exact in every engine's geometry; the error is how surcharged heads are solved.
pipe_flow
L2 of Q · in the score
already a percentage–Pipe flows within 0.5 % of the inflow.
convergence
not applicable
––A link–node network with a closed-form (or 1e-11 integrated) reference at fixed elements: there is no grid to refine.

Reference

Exact solution from references.drainage.surcharged_pipe.

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 frozen4 passing score card(s)
  • ✓Order of accuracy shownfor frozennot applicable: A link–node network with a closed-form (or 1e-11 integrated) reference at fixed elements: there is no grid to refine.
  • ✓Two independent codes passfor frozenpassing codes: EPA SWMM 5.1.15, EPA SWMM 5.2.4, Hydra urban drainage, OpenSWMM Engine v6 dynamic wave
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

FileRoleFormatSHA-256Get it
inputs/network.jsonnetworkjsonc228b0e9e815…Download

About this test

Physics

Five 0.6 m circular pipes (100 m each, \(n = 0.013\), slope 0.001) carry 0.3 m³/s to an outfall held 1.5 m above its invert, well above every pipe's crown, so all five run full. With no junction losses, the hydraulic grade line falls along each pipe by the Manning friction loss of a full pipe,

\[ \Delta H = \frac{n^2 Q^2 L}{A^2 R^{4/3}}, \quad A = \pi D^2/4,\ R = D/4, \]

0.239 m per pipe, 1.19 m over the five. The reference checks that the grade line stays above every crown, so the answer is exact.

What it checks

How an engine solves heads in surcharged pipes (SWMM's EXTRAN surcharge iteration, a Preissmann slot, a pressurised finite-volume cell). Manhole depths are scored against the grade line; pipe depths are not (a full pipe's "depth" is its diameter, or a slot depth, by convention).

Citation

Chow, V. T. (1959). Open-Channel Hydraulics. McGraw-Hill. Rossman, L. A. (2017). SWMM Reference Manual Volume II – Hydraulics. EPA/600/R-17/111.

Sources

Test A1D-002_surcharged_pipe_grade_line · version 1.0.0 · data licence analytic-public