run_design_verification#

module wntr.extensions.design_verification.runner

run_design_verification(wn, scenario, *, design=None, simulator='WNTRSimulator', minimum_pressure_m=15.0, maximum_velocity_mps=2.5, required_compliance_pct=100.0, pressure_tolerance_m=0.0, velocity_tolerance_mps=0.0)[source]#

Run one hydraulic design-verification assessment.

The original network is protected from modification. Pipe-diameter changes and hydraulic simulation-option changes are applied to independent copies.

Parameters:
  • wn (WaterNetworkModel) – Original WNTR water-distribution network model.

  • scenario (HydraulicScenario) – WNTR time and hydraulic simulation options to assess.

  • design (PipeDesign or None, optional) – Optional pipe-diameter design. If omitted, the unchanged baseline network is assessed.

  • simulator (str, optional) – Hydraulic simulation engine. Accepted values are WNTRSimulator and EpanetSimulator.

  • minimum_pressure_m (float, optional) – Minimum acceptable junction pressure in metres.

  • maximum_velocity_mps (float, optional) – Maximum acceptable absolute pipe velocity in metres per second.

  • required_compliance_pct (float, optional) – Required percentage of assessed node-time and pipe-time values satisfying each constraint.

  • pressure_tolerance_m (float, optional) – Non-negative numerical tolerance applied below the minimum pressure limit. The default of zero preserves strict comparison behaviour.

  • velocity_tolerance_mps (float, optional) – Non-negative numerical tolerance applied above the maximum absolute velocity limit. The default of zero preserves strict comparison behaviour.

Returns:

  • verification (VerificationResult) – Structured pressure, velocity, pump and overall feasibility result.

  • hydraulic_results (Any) – Raw WNTR hydraulic simulation results.

  • audit (dict) – Record of the applied design, scenario, simulator and assessed components.

Return type:

tuple[VerificationResult, Any, dict[str, object]]