Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Provenance

Everything below is tutorial-owned synthetic data. No utility network, customer record or tariff dataset is redistributed.

Input classOriginFrozen representation
topology and coordinateshand-designed single-zone teaching networknetwork/synthetic-zone.inp
elevations and base demandssynthetic values chosen to admit normal and stressed operation[JUNCTIONS], [RESERVOIRS], [TANKS]
pipe dimensions and roughnesssynthetic metric Darcy–Weisbach inputs[PIPES]
pump head curvessynthetic three-point curves[CURVES] C1 and C2
pump efficiency curvessmooth tutorial functions, not EPANET ENERGY datasrc/energy.rs
power oraclefour pump/flow/head values calculated independently outside the Rust implementation and rounded to six decimalsscenarios/energy-power-oracle.csv
daily demand patternsynthetic 24-hour multiplier profile[PATTERNS] DAILY
tariffsynthetic off-peak/shoulder/peak bandssrc/scenarios.rs::tariff
scenariosnamed deterministic perturbationssrc/scenarios.rs
generator identityfixed template seed 20260730publication generated/generator.json

The one-pipe validation input and tank-free benchmark input are also tutorial-owned:

  • network/analytic-pipe.inp isolates a laminar Darcy–Weisbach case;
  • network/benchmark-zone.inp removes tanks and pressure control so both parallelism arrangements are legal.

epanet-rs = 0.2.3 is dual MIT/Apache-2.0. fcmaes-core = 0.1.3 is MIT. The exact dependency graph is frozen by Cargo.lock. Its transitive logging stack includes unmodified paris = 1.5.15 under MPL-2.0; see DEPENDENCY_NOTICE.md and the named cargo-deny exception.