SWMM5 Dynamic Wave — Why It Holds Its Own

An explorable answer: same Saint-Venant physics, explicit bookkeeping, one genuine weak spot.

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.

CLAIM 1

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.

CLAIM 2

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.

CLAIM 3

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.

THE WEAK SPOT

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.

CLAIM 4 — THE PUNCHLINE

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

CONTINUITY (mass) ∂A/∂t + ∂Q/∂x = qlat
MOMENTUM ∂Q/∂t + ∂(Q²/A)/∂x + gA ∂H/∂x + gA·Sf = 0
FRICTION SLOPE (Manning) Sf = ( n Q / (k A R2/3) )²   k = 1.49 (US) / 1.0 (SI)
FROUDE NUMBER Fr = V / √( gD )   Both engines assume subcritical flow (Fr < 1) dominates.

These are the same conservation laws. The engines disagree only on the numerical scheme wrapped around them:

AspectSWMM5 (EXTRAN heritage)InfoWorks ICM
Time integrationExplicit finite differenceImplicit (4-point Preissmann box)
Spatial gridStaggered: Q on links, H on nodesPreissmann box on the reach
StabilityCFL-limited: Δt ≤ Δx/(V+c)Unconditionally stable
Cost per stepCheap, local node updatesSolve a banded linear system
PressurizationMode switch (EXTRAN) or slot (5.1.013+)Preissmann slot (continuous)
2D overland coupling1D only (via subcatchment routing)Full 2D surface → sewer coupling
Where they agreeSubcritical, gravity-dominated, gradually-varied flow — i.e. most of the network, most of the time
The point. An implicit scheme doesn't land on a more correct answer in the regime that dominates real models. It lands on the same answer with a bigger allowed step. Run both where SWMM5 is comfortable and they converge. Both engines assume subcritical flow (Fr < 1) dominates; this is where the scheme difference matters least.

The node is a finite-volume control cell

NODE CONTINUITY (integral form) dV/dt = ΣQin − ΣQout  ⇒   dH/dt = ΣQ / As
—
ΣQ
—
dH/dt

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.

Why it matters: flux on faces and scalar in cells is analogous to a staggered (MAC-like) layout adapted for an unstructured link-node graph. It kills pressure–velocity checkerboarding. SWMM5 is closer to finite-volume than its 1970s Fortran lineage lets on — which is why a finite-volume SWMM6 isn't a departure, it's finishing the thought.
LINEAR ADVECTION (flood wave at celerity a = V + c) ∂u/∂t + a ∂u/∂x = 0
0.80
Courant
0.60
|G|max
—
Peak kept
STABLE

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

FREE-SURFACE TOP WIDTH (circular pipe) T = 2 √( d ( D − d ) )  → 0 at d = D
NODE RISE RATE dH/dt = ΣQ / As,  As = max( T·L, Amin )
—
top width T
—
area Aₛ
—
dH/dt

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.

What SWMM5 actually does. In free-surface mode it never lets Aₛ reach zero — 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

NORMAL-FLOW SENSITIVITY (Manning) Q ∝ 1/n  ⇒   ±Δn swings peak by roughly ∓Δn/(1∓Δn)
—
Dominant term
—
Largest ÷ scheme

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.

Equifinality. Many different parameter sets reproduce the same gauge equally well, and the spread those parameters open up dwarfs the difference between an explicit and an implicit solver. Once both engines are fit to the same observations, the numerics disappear into the noise. The disagreement budget is dominated by boundary conditions and roughness — not by the choice of scheme. (Magnitudes here are illustrative. Published benchmarks vary widely; the key point is that solver differences are typically an order of magnitude smaller than calibration uncertainty.)