The short version
Most of what looks crude about SWMM5's dynamic wave is a sound discretization wearing a 1970s coat. "Explicit" costs it timestep, not accuracy. SWMM5 and InfoWorks ICM integrate the same Saint-Venant equations; for gravity-dominated, subcritical, gradually-varied flow — most of any real network most of the time — the answer is pinned by the physics, not the numerics. ICM's implicit machinery doesn't reach a more correct answer there; it gets to take bigger steps to reach it.
Tap any card to explore the claim interactively. Four hold up under scrutiny. One is a real weak spot.
Same equations, different bookkeeping
Both engines integrate Saint-Venant. The disagreement is the discretization, and it cancels once the flow is gravity-dominated and gradually varied.
One Q per link, one H per node is a staggered grid
Not a shortcut — a MAC-like arrangement. Flux on faces, scalar in cells. It conserves mass at the node by construction.
Explicit means timestep-limited, not wrong
The penalty is CFL. Implicit is unconditionally stable — but stability isn't accuracy. At a coarse Δt it buys that stability with numerical diffusion.
What happens at the surcharge transition
At the crown the node surface area → 0 and dH/dt = ΣQ/Aₛ blows up. SWMM5 mode-switches; ICM's slot stays continuous. The one place ICM is genuinely more elegant.
Calibration quietly erases the rest
Roughness, RDII, boundary inflows — parameter uncertainty in any real model dwarfs the scheme-level difference. Once both engines are fit to the same gauge, the numerics vanish into the noise. The solver is almost never the dominant term in the disagreement budget; the boundary conditions are.
Both engines solve the Saint-Venant equations
These are the same conservation laws. The engines disagree only on the numerical scheme wrapped around them:
| Aspect | SWMM5 (EXTRAN heritage) | InfoWorks ICM |
|---|---|---|
| Time integration | Explicit finite difference | Implicit (4-point Preissmann box) |
| Spatial grid | Staggered: Q on links, H on nodes | Preissmann box on the reach |
| Stability | CFL-limited: Δt ≤ Δx/(V+c) | Unconditionally stable |
| Cost per step | Cheap, local node updates | Solve a banded linear system |
| Pressurization | Mode switch (EXTRAN) or slot (5.1.013+) | Preissmann slot (continuous) |
| 2D overland coupling | 1D only (via subcatchment routing) | Full 2D surface → sewer coupling |
| Where they agree | Subcritical, gravity-dominated, gradually-varied flow — i.e. most of the network, most of the time | |
The node is a finite-volume control cell
Momentum lives on the links (one Q per face); continuity lives in the node (one H per cell). Mass is conserved at the node by construction — this is finite-volume wearing Fortran clothing.
Solid = numerical solution. Dashed grey = exact (a pure translation). Implied Δt for Δx = 100 m, a = 3 m/s shown in the status.
Explicit (SWMM5's choice)
Stable only for Cr ≤ 1, and at Cr = 1 it's exact. The amplification factor is |G|max = |2Cr − 1|, which exceeds 1 the instant Cr > 1. The cost is small steps — paid honestly, and Courant-based variable stepping just takes the steps it needs.
Implicit (ICM's choice)
Never blows up — but crank Cr up and watch the peak attenuate and lag. Unconditional stability is bought with numerical diffusion and phase error. The wave still arrives; it just arrives blunted. Stability bought you robustness, not a better answer. The honest statement is max |G| = 1 for every Cr (it never grows); the highest-frequency mode (kΔx = π) is damped by 1/(1+2Cr) — that damping is the numerical diffusion smearing the peak.
At the crown, the continuity denominator vanishes
Top: pipe cross-section, free surface (cyan chord) collapsing toward the crown. Bottom: dH/dt vs d/D — red raw (→∞), green with MIN_SURFAREA floor, blue with Preissmann slot.
MIN_SURFAREA (default 12.566 ft² ≈ a 4-ft access shaft) floors it. At the crown it mode-switches to the EXTRAN surcharge algorithm: drop the storage term and iterate for the head that makes ΣQ = 0 across the connected full pipes. When it converges it gives the right HGL — it's still enforcing the same conservation — but a switch can oscillate and throw continuity spikes near the boundary. ICM's Preissmann slot hands every full pipe a sliver of fictitious free surface, so open→pressurized is continuous instead of a regime change. That's the one place ICM is genuinely more elegant rather than just more expensive — and SWMM 5.1.013 (May 2018) added SURCHARGE_METHOD SLOT to adopt the same trick, attaching the slot to closed conduits once they flow more than 98.5% full.The solver is rarely the dominant term
Each bar is a term's contribution to the spread between two model results, expressed as % swing in simulated peak flow. The solver term is fixed by the slider; the rest scale with parameter uncertainty.