pub struct SimulationOptions {Show 49 fields
pub duration: f64,
pub hyd_step: f64,
pub qual_step: f64,
pub report_step: f64,
pub report_start: f64,
pub pattern_step: f64,
pub pattern_start: f64,
pub start_clocktime: f64,
pub head_loss_formula: HeadLossFormula,
pub demand_model: DemandModel,
pub flow_units: FlowUnits,
pub viscosity: f64,
pub diffusivity: f64,
pub specific_gravity: f64,
pub demand_multiplier: f64,
pub default_pattern: Option<String>,
pub pda_min_pressure: f64,
pub pda_required_pressure: f64,
pub pda_pressure_exponent: f64,
pub emitter_backflow: bool,
pub quality_mode: QualityMode,
pub trace_node: Option<String>,
pub chem_name: String,
pub chem_units: String,
pub max_iter: u32,
pub extra_iter: i32,
pub head_tol: f64,
pub flow_change_tol: f64,
pub flow_tol: f64,
pub head_error_limit: f64,
pub flow_change_limit: f64,
pub rq_tol: f64,
pub damp_limit: f64,
pub check_freq: u32,
pub max_check: u32,
pub bulk_order: f64,
pub tank_order: f64,
pub wall_order: WallOrder,
pub bulk_coeff: f64,
pub wall_coeff: f64,
pub conc_limit: f64,
pub energy_price: f64,
pub energy_price_pattern: Option<String>,
pub energy_efficiency: f64,
pub peak_demand_charge: f64,
pub roughness_reaction_factor: f64,
pub rule_timestep: f64,
pub quality_tolerance: f64,
pub statistic: StatisticType,
}Expand description
Global simulation parameters (§2.1). All fields are static after loading.
SimulationOptions::default() returns the canonical default values defined
in §2.1. Callers typically construct this with ..SimulationOptions::default()
and override only the fields that differ from the spec defaults.
Fields§
§duration: f64Total simulation duration (s); 0 = single steady-state step.
hyd_step: f64Hydraulic time step Δt_h (s); default 3600.
qual_step: f64Quality time step δt_q (s); must satisfy 0 < δt_q ≤ hyd_step.
report_step: f64Interval at which results are written to the output file (s); default 3600.
report_start: f64Simulation time at which reporting begins (s); default 0.
pattern_step: f64Pattern time step Δt_p (s); default 3600.
pattern_start: f64Time offset for pattern evaluation (s from midnight); default 0.
start_clocktime: f64Wall-clock time of simulation t=0 (s from midnight).
head_loss_formula: HeadLossFormulaHead-loss formula used for pipes.
demand_model: DemandModelDemand allocation model (DDA or PDA).
flow_units: FlowUnitsFlow unit system used for input/output (does not affect internal solver).
viscosity: f64Kinematic viscosity of water (m²/s); default ≈ 1.022×10⁻⁶.
diffusivity: f64Molecular diffusivity of the tracer chemical (m²/s); default ≈ 1.208×10⁻⁹.
specific_gravity: f64Specific gravity of the fluid relative to water; default 1.0.
demand_multiplier: f64Global demand multiplier applied to all base demands; default 1.0.
default_pattern: Option<String>Pattern ID applied to demand categories with no explicit pattern;
None means a multiplier of 1.0 is used.
pda_min_pressure: f64PDA minimum pressure — below this, delivered demand is 0 (m).
pda_required_pressure: f64PDA required pressure — at or above this, full demand is delivered (m).
pda_pressure_exponent: f64PDA pressure exponent n in the Wagner equation; default 0.5.
emitter_backflow: boolWhether emitters allow reverse flow (backflow into the network).
quality_mode: QualityModeWater quality simulation mode.
trace_node: Option<String>Node ID for source tracing; required when quality_mode = Trace.
chem_name: StringChemical species name (e.g. “Chlorine”); from QUALITY Chemical <name>.
chem_units: StringChemical concentration units (e.g. “mg/L”); from QUALITY Chemical <name> <units>.
max_iter: u32Maximum Newton-Raphson iterations; default 200.
extra_iter: i32Extra frozen-status iterations on non-convergence; −1 = halt; default −1.
head_tol: f64Head tolerance εH for link status transitions (m); default 1.524×10⁻⁴.
flow_change_tol: f64Absolute flow tolerance εQ for link status transition tests (m³/s); default 2.832×10⁻⁶.
Distinct from flow_tol: flow_tol governs solver convergence (relative criterion);
flow_change_tol governs link status transition conditions only.
flow_tol: f64Relative flow accuracy (Hacc) for solver convergence; default 0.001.
head_error_limit: f64Absolute per-link head balance error limit (m); 0 = disabled; default 0.
flow_change_limit: f64Absolute maximum flow change per iteration (m³/s); 0 = disabled; default 0.
rq_tol: f64Minimum gradient clamp for emitter/pump coefficient linearisation; default 1e-7.
damp_limit: f64Relative flow accuracy threshold below which damping activates; 0 = disabled.
check_freq: u32Status check interval (iterations); default 2.
max_check: u32Iteration count after which status checks stop; default 10.
bulk_order: f64Bulk reaction order for pipes; default 1.0.
tank_order: f64Bulk reaction order for tanks; default 1.0.
wall_order: WallOrderWall reaction order (zero or first); default first.
bulk_coeff: f64Global bulk reaction rate coefficient (1/day for first-order).
wall_coeff: f64Global wall reaction rate coefficient (m/day for first-order).
conc_limit: f64Limiting concentration for reactions (mg/L); 0 = no limit.
energy_price: f64Global unit energy cost ($/kWh).
energy_price_pattern: Option<String>Pattern ID modulating the energy price over time.
energy_efficiency: f64Global default pump efficiency fraction.
peak_demand_charge: f64Global demand charge (cost per peak kW); 0 = disabled.
roughness_reaction_factor: f64Roughness–reaction correlation factor Rf; 0 = disabled.
rule_timestep: f64Rule evaluation sub-step duration (s).
quality_tolerance: f64Segment merge tolerance Ctol; default 0.01.
statistic: StatisticTypeReport statistic aggregation type (from TIMES STATISTIC).
Trait Implementations§
Source§impl Clone for SimulationOptions
impl Clone for SimulationOptions
Source§fn clone(&self) -> SimulationOptions
fn clone(&self) -> SimulationOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SimulationOptions
impl Debug for SimulationOptions
Source§impl Default for SimulationOptions
impl Default for SimulationOptions
Source§fn default() -> SimulationOptions
fn default() -> SimulationOptions
Returns the canonical default values from §2.1.