Load SWMM .inp File
Drop or select an EPA SWMM .inp file exported from ICM (SWMM network) or native SWMM5.
The parser reads [CONDUITS], [XSECTIONS], and [JUNCTIONS]
to compute CFL time steps, Courant numbers, and discretization recommendations for every conduit.
📂
Drop .inp file here or click to browse
Supports EPA SWMM5 and ICM SWMM export format
Or Load Demo Network
Generate a synthetic SWMM network to explore the analysis tools. Includes a mix of short/long conduits
with varying diameters — the kind of network that benefits most from CFL analysis.
Simulation Time Step
Model Δt (s)30
Target Crmax1.0
Conduit CFL Results
| Conduit | Length (m) | D (m) | c (m/s) | Δtmax (s) | Cr | Status | Segments Needed |
Δx/D |
|---|
Courant Number Distribution
Conduit Length Distribution
CFL Stability Map (Δt vs Δx)
Each dot represents one conduit plotted at its (Δx=length, Δt=model time step).
The Cr=1 boundary separates stable (below) from unstable (above) regions.
Dots use each conduit's actual wave celerity c = √(gD).
Δtmax per Conduit — Sorted
Discretization Recommendations
Conduits violating the CFL condition at the specified Δt are flagged for spatial discretization.
Three methods are compared following the ReSWMM framework (Pachaly, 2018):
Method 1: Fixed Interval
Δx = user-specified constantN = ⌈L / Δx⌉ − 1 new nodes
Simple, uniform segmentation
Method 2: CFL-Based
Δx = c · Δt (Courant limit)N = ⌈L / Δx⌉ − 1 new nodes
Roesner et al. (1988)
Method 3: AASD (Δx/D)
Δx ≤ 10 · DN = ⌈L / (10·D)⌉ − 1 new nodes
Pachaly et al. (2019), CHI JWMM
Discretization Controls
Fixed Δx (m)50
AASD multiplier (×D)10
Per-Conduit Discretization Comparison
| Conduit | L (m) | D (m) | Crnow | Fixed Segments |
CFL Segments |
AASD Segments |
Rec. Method |
|---|
CFL Condition
Courant–Friedrichs–Lewy Stability Criterion
Cr = (|V| + c) · Δt / Δx ≤ 1.0For pre-simulation analysis (no velocity known):
Cr ≈ c · Δt / L where c = √(g·D)
Maximum stable time step:
Δtmax = Δx / c = L / √(g·D)
Courant, Friedrichs & Lewy (1928) · Applied to SWMM by Roesner et al. (1988)
Wave Celerity
Gravity Wave Celerity (Full Pipe)
c = √(g · D)where g = 9.81 m/s², D = conduit maximum depth (diameter for circular pipes).
At partial depth: c = √(g · A/T) where A = flow area, T = top width.
Full-pipe celerity is used as the conservative (worst-case) estimate.
Saint-Venant equations · SWMM5 dynwave.c getNodeStep()
EXTRAN Time Step Guideline
Roesner et al. (1988)
Δt ≤ Lmin / √(g · Dmax)The minimum conduit length with the maximum depth (diameter) controls the global time step. Networks with Lmax/Lmin > 4 should be discretized.
SWMM-EXTRAN Manual, Roesner, Aldrich & Dickinson (1988)
Adaptive Artificial Spatial Discretization (AASD)
Pachaly et al. (2019)
Δx ≤ 10 · DEach conduit segment length should not exceed 10 times the pipe diameter. For a 500 mm pipe → Δx ≤ 5 m. Larger pipes need finer discretization because pressure waves travel faster through them (c ∝ √D).
Pachaly, R.L. et al. (2019). "Performance of conduit discretization in hydrodynamic
models." Journal of Water Management Modeling, CHI C463.
Preissmann Slot + CFL Synergy
SWMM5 Variable Time Stepping
SWMM5 uses getNodeStep() in dynwave.c to compute:Δtnode = surfArea · maxDepth / (2 · totalInflow)
Under surcharge, the Preissmann slot creates very fast wave propagation (c → large). The CFL-based variable time step automatically shortens to maintain stability. Small MinSurfArea (12.566 ft² default) lets pressure waves propagate realistically, while the time step adaptor prevents instability.
SWMM5 dynwave.c · Rossman (2017) · Sjöberg slot width formula