Governing equations
A = πr² ; v = Q / A
Re = ρvD / μ
hᶠ = [f(L/D) + ΣK] · v² / (2g)
Hₚ = H₀(n/n₀)² · [1 − (Q / (Qmax·n/n₀))²]
Pₕ = ρgQH / η
dV/dt = Q(1 − λ) − Qd
What the model assumes
- Water is incompressible, with constant density 998 kg/m³ and dynamic viscosity 1.002 mPa·s.
- The pump curve is an approximate quadratic affinity-law curve; speed changes scale head and flow.
- Pipe losses use Darcy–Weisbach with the Haaland turbulent-friction approximation and 64/Re for laminar flow.
- The tank is well mixed; its volume is integrated with a fixed 1/120 s explicit step.
Honest simplifications
- Approximate: no water hammer, pipe elasticity, thermal variation, cavitation dynamics, or detailed impeller blade flow.
- Leakage is represented as a fraction of pumped flow; valve and fittings are combined into a lumped loss coefficient.
- Weather and catchment events are scenario effects, not a calibrated forecast. The 3D scene is illustrative, not a surveyed site.
- Live power is hydraulic input divided by efficiency; motor-drive losses outside that efficiency are not modelled separately.
Procedural scene and original simulation code · Three.js r160 · No external 3D assets