Issue 004 · May 14, 2026

Manning's tells you Q. CFD tells you the rest. There is nothing in between.

SWMM and PCSWMM give you a discharge at every node. They tell you almost nothing about what is actually happening at a bridge pier, an outfall, or a junction — exactly the places where the structural and scour answers live. The gap between Manning's-class screening and full 3D RANS CFD has been open for forty years, and most engineers do not know how wide it is.

TL;DR. Between Manning's (one bulk velocity per reach) and 3D RANS CFD (turbulence resolved everywhere on a meshed boundary layer) there is roughly five orders of magnitude in computational cost and zero practitioner-grade tooling. A vortex-particle post-processor with adaptive observation-dependent resolution can recover ≥99.8% of the vorticity field of a 6,000-particle uniform baseline at roughly 20× the wall-clock speed, on a SWMM .out file an engineer already has. That is what I just submitted to the Journal of Water Management Modeling.

The two-tier stack we have

Open-channel hydraulics in regulatory practice runs on two computational tiers. There is no third.

TierWhat it gives youWhat it costsWhere it is used
Manning's / 1D SWMMBulk velocity, depth, peak Q at a nodeSeconds per simulationEvery drainage report, every SWMM model
3D RANS CFDVelocity, turbulence, shear stress at every cellSpecialist consultant + days to weeks of wall-clockForensic post-failure work, large bridges, mega-dams

The gap matters because most of the questions a civil engineer needs to answer about local behavior — scour at a pier, energy dissipation at an outfall, vortex shedding at a wing-wall, recirculation in a stilling basin — are turbulence questions. Manning's averages turbulence into a single empirical roughness coefficient (see Issue 003 on how unstable that coefficient is). RANS resolves it. There is no middle ground that an engineer can run on her laptop on the SWMM model she already has.

Why the gap exists

Two technical reasons, one professional reason. They compound.

1. Eulerian solvers are mesh-bound

Every commercial CFD package (HEC-RAS 2D, FLOW-3D, OpenFOAM, ANSYS Fluent) is Eulerian: the unknown is the velocity at fixed grid points. Refinement means more cells. A bridge pier in a 100-meter river reach with a 10 cm boundary-layer cell is a roughly 10⁹-cell problem. There is no acceptable cost-versus-fidelity intermediate; the moment you commit to resolving any local feature, you commit to resolving everything.

2. Lagrangian solvers exist but never crossed into practice

The Vortex Particle Method (VPM) is a 1980s contemporary of finite-volume CFD. The unknown is vorticity carried on Lagrangian particles, advected and diffused via Biot-Savart induction and a viscous-diffusion scheme like Particle Strength Exchange. The headline advantage: computation concentrates only where vorticity exists, which in open-channel flow is a small fraction of the domain (boundary layers, pier wakes, recirculation zones).

VPM has had a respectable academic literature for forty years (Cottet & Koumoutsakos 2000; Barba & Rossi 2010; Mimeau & Mortazavi 2021). It has produced almost no engineering tooling. The reason is that "compute only where vorticity exists" still leaves a large particle count in any realistic flow, and there has been no principled way to throttle further based on what the engineer actually needs to know.

3. Nobody got paid to fill the gap

Manning's is free, taught in every undergraduate program, and signed off by every reviewer. CFD is sold by ANSYS for tens of thousands of dollars per seat per year. There is no commercial niche between them — a tool that "almost does CFD" sounds like a worse version of CFD to a CFD shop and like overkill to a SWMM shop. The middle of the market quietly stayed empty.

What can fill it

The piece that has been missing is a way to make the VPM particle count itself a function of where the engineer is asking the question. If you only need to know what is happening within a 5-meter radius of a single bridge pier, you should not be paying for resolution at a downstream confluence 200 meters away.

The mechanism is a symmetrized variable-blob Biot-Savart kernel:

$$\mathbf{u}(\mathbf{x}_i) = \sum_j \mathbf{K}_{\sigma_{ij}}(\mathbf{x}_i - \mathbf{x}_j) \times \boldsymbol{\omega}_j \, V_j, \quad \sigma_{ij} = \tfrac{1}{2}(\sigma_i + \sigma_j)$$

where each particle j carries its own smoothing length σj set by an observation-density rule:

$$\sigma_j = \sigma_{\min} + (\sigma_{\max} - \sigma_{\min}) \, \exp\!\left(-\frac{r_j^2}{2 \, R_{\text{obs}}^2}\right)$$

Particles inside the engineer-designated observation zone of radius Robs get the small smoothing length and contribute high-fidelity local detail; particles outside relax to a coarse smoothing length and contribute only the far-field pressure-velocity coupling. The engineer's observation zone is now a first-class input to the discretization.

Does it actually work

I ran the convergence experiment that the JWMM reviewers will see in §3 of the manuscript. Reference case is a 6,000-particle uniform-resolution VPM run on a single bridge pier, treated as ground truth. The Adaptive Lagrangian Refinement (ALR) version uses ~200 particles concentrated in a single observation zone around the pier:

Metric6,000-particle uniform200-particle ALRRecovery
Vorticity magnitude (zone)1.0000.998299.82%
Standard deviation (zone)0.690.1623%
Wall-clock (single core)~2,400 s~120 s20× faster
Shields parameter at pier face1.211.24+2.5%

The 23% recovery on standard deviation is the trade-off — ALR averages out the high-frequency content outside the observation zone, by design. The mean fields, the shear stress, and the scour-relevant Shields number are recovered to within engineering tolerance.

Why this is a JWMM paper, not a JHE paper

The first version of this work went to ASCE's Journal of Hydraulic Engineering as a method paper (HYENG-15116) and was declined at editor screening on 21 April. The reviewer was right. JHE expects a contribution to CFD method development; the actual contribution is a contribution to engineering workflow. The right journal is the Journal of Water Management Modeling, the JWMM, whose readership is the SWMM and PCSWMM community.

The reframed pitch — submitted yesterday — is not "here is a new CFD method." It is: your existing SWMM model gives you a discharge at the bridge pier node, and now there is an open-source, MIT-licensed Python tool that takes the same .out file and returns local turbulence and Shields-number information without you mesh-generating, hiring a consultant, or learning OpenFOAM. That is a JWMM contribution.

What to actually do with this

Practical implications you can use now, regardless of whether the paper is accepted:

  • Stop reporting Manning's-derived velocities at structures as design numbers. A bulk velocity at a pier node is a screening number. Document it as such in your basis-of-design and pair it with a documented uncertainty.
  • Bracket every empirical answer with the spread of the empirical family it came from — same three-value rule we used in Issue 001 on the runoff coefficient C. The forebay trap-efficiency worked example is the same idea applied to a different number.
  • If you are running SWMM/PCSWMM, the .out file you already have is the input for the post-processor. No re-modeling, no mesh generation, no boundary-condition rewrite.
  • If you are doing dam-spillway, energy-dissipator, or large-pier work, ask whether a VPM post-processor is appropriate before defaulting to a six-figure CFD consultant. The answer will frequently be yes.

Open-source repository: github.com/michaelflynn/quantum-hydraulics (MIT, v1.0.0 beta). Manuscript under review at JWMM as of 13 May 2026.

Where this fits with HydroComplete

HydroComplete sits in the lower tier this paper is about — Manning's-equation, SCS curve number, Camp's surface-area criterion, 7-bin Stokes/Camp trap efficiency. That is on purpose. The lower tier is where 95% of the stormwater work in this country gets done, and the right discipline at that tier is not "pretend to be CFD" — it is show every formula, every input, every intermediate, so the engineer can see exactly which empirical assumptions her answer is resting on.

That is the same response to opacity that the VPM post-processor is to RANS-as-black-box, just at a different scale. The whole HydroComplete philosophy — KaTeX rendering on every equation, every coefficient table inspectable, the SEDCAD4 engine sources cited inline — is the lower-tier version of the same answer. Run the screening cleanly and transparently. When the screening tells you you have a turbulence-dominated structural question, hand the .out file to a tool built for that tier. Do not let the gap quietly turn into a single Manning's-derived number on a stamped sheet.

Run the lower tier honestly

HydroComplete's SEDCAD4, SCS, Rational, and Camp's-equation engines render every formula and every assumption on the page — same discipline this paper applies to the upper-tier gap. Open the app and inspect any number it produces.

— Michael Flynn, PE
Next issue: probabilistic dam-breach hydrographs. Wahl told us in 2004 that the deterministic peak is wrong by a factor of two to four. Twenty years later, every breach memo I review still reports a single number. Why that is finally about to change.

More from the Hydraulic Notebook

Next → Issue 005 — The deterministic dam-breach peak is a lie of false precision

← Previous Issue 003 — Why your Manning's n estimate is probably wrong

← Issue 002 Kirpich vs NRCS: when time of concentration disagrees by a factor of two

← Issue 001 The runoff coefficient C is the dirtiest number in stormwater

See also: Sediment basin sizing — 5-ac residential NC (worked example)

Browse the full archive →

Get next issue in your inbox

One issue per month. Real design problems, real math. Free, unsubscribe in one click.

Free. Unsubscribe anytime. Privacy.