OpenHydro Bench
Compared with a pinned engine1D · pressurizedCandidate

Water distribution network

Does an engine give the same answers as EPANET 2.2?

Test B-EPANET-001
Rossman (2020)
Version 1.0.0
Right answer
A pinned reference engine · Rossman (2020)
Results
3 models · closest under 0.01 % off · see them ↓
Must
match peak pressures within 1 % at every node
Sketch, not to scale.

The model file

Every engine runs this EPANET 2 input file unchanged. Open it in EPANET 2, or in any engine that reads the format, and you are running exactly what was scored.

On the map: click any element to see its line in the file and every engine's result there over time, or colour the network by how far each engine is from the reference.

Reference flows in the five busiest links (EPANET 2.2)-5005010005101520Time (h)Flow (L/s)Link 10Link 9Link 11Link 110Link 111
  • Link 10
  • Link 9
  • Link 11
  • Link 110
  • Link 111
Reference pressure head at junctions (EPANET 2.2)40608005101520Time (h)Pressure head (m)Node 10Node 11Node 12Node 13Node 2Node 21
  • Node 10
  • Node 11
  • Node 12
  • Node 13
  • Node 2
  • Node 21

What happens

EPANET's own example network — junctions, a tank, a pump — run for 24 hours.

Why it matters

Utilities need to know an upgrade or a different engine will not change their results.

A good model must

  • match peak pressures within 1 % at every node
  • match conveyed volumes within 1 % in every pipe

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.

RankModelDifferenceLargest difference inTimingRun time
1=EPANET 2.0 vs EPANET 2.2<0.01 %Volumes0 s–
1=WNTR own hydraulic solver<0.01 %Volumes0 s–
3Hydra water distribution0.11 %Peak pressure0 s–
EPANET 2.0
EPANET 2.0, compared with EPANET 2.2
#1= under 0.01 % off

Settings: epanet (wntr libepanet2)

Peak pressure
• 0 % off
Volumes
• < 0.0001 % off
Timing
· 0 s off
reported, not counted · timing, reported beside the score, in seconds

Scored with method 3.0 · Score card: EPANET 2.0

WNTR
WNTR 1.5 (US EPA and Sandia), its own Python solver of the network equations (WNTRSimulator), independent of EPANET's code; Hazen-Williams friction only
#1= under 0.01 % off

Settings: wntr.sim.WNTRSimulator (WNTR's own Newton solver, in Python)

Peak pressure
• < 0.0001 % off
Volumes
• < 0.0001 % off
Timing
· 0 s off
reported, not counted · timing, reported beside the score, in seconds

Scored with method 3.0 · Score card: WNTR 1.5.0 WNTRSimulator

Hydra
Hydra 17 (NEER AI, Rust): its water-distribution engine on the EPANET data model, run through its CLI with default settings
#3 0.11 % off

Settings: hydra CLI 4.1.1 (wds engine, EPANET-format binary output)

Peak pressure
• 0.11 % off
Volumes
• 0.091 % off
Timing
· 0 s off
reported, not counted · timing, reported beside the score, in seconds

Scored with method 3.0 · Score card: Hydra 17.0.0 water distribution

Status of this test

Candidate. To become frozen it needs: reference reproduced by a second build; 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
peak_pressure
relative_peak of p · in the score
already a percentage–Nodal peak pressure within 1 % of EPANET 2.2 at every node.
link_volume
relative_volume of Q · in the score
already a percentage–24 h conveyed volume within 1 % of EPANET 2.2 in every pipe and pump.
peak_timing
timing_error of Q · reported, not counted
not a percentage: reported in seconds–Informational: one reporting step.

Reference

EPANET 2.2, run on the test's own input.

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 candidatepublic-domain-EPA
  • ✓All inputs availablefor candidateall committed or fetched by SHA-256
  • ✓Reference (truth) availablefor candidatecommitted reference results
  • ✓Every tolerance justifiedfor candidateeach gating criterion has a rationale
  • ✓A published run passesfor frozen3 passing score card(s)
  • ✓Order of accuracy shownfor frozennot a verification case
  • ✗Reference reproduced by a second buildfor frozenno second build of the reference engine scored yet
  • ✗Maintainer review recordedfor frozenno maintainer review recorded

Inputs

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

About this test

EPA's Example Network 1, run for 24 h. The reference is EPANET 2.2 (the libepanet22 library bundled with WNTR 1.5.0, SHA-256 recorded in the manifest). Regenerate with python scripts/make_reference.py B-EPANET-001.

A candidate passes when every node's peak pressure and every link's 24 h conveyed volume are within 1 % of EPANET 2.2.

Sources

  • Rossman, L. A., Woo, H., Tryby, M., Shang, F., Janke, R., Haxton, T. (2020). EPANET 2.2 User Manual. EPA/600/R-20/133.

Test B-EPANET-001_net1_parity · version 1.0.0 · data licence public-domain-EPA