When the physics forces two engines to the same answer, their agreement describes the network. The finding is where they part.
EXTRAN drew fifty years of complaints about robustness and kept matching other models on accuracy. Those are different properties. Most sewer flow is set by node continuity, Manning friction and the boundary conditions, so any scheme that conserves mass lands close to the same place. A comparison that reports only how close two engines are has measured the regime, and nothing yet about either solver.
Predict before you look
EXTRAN manual example 1, nine conduits, three of them pressurizing. Switch the inertial terms off entirely (INERTIAL_DAMPING FULL in place of NONE). The median conduit moves by some amount. Expressed as the uniform change in Manning's n that moves it just as far, how big is that?
One model, eight differences, one scale
Six shifts in how to compare engines
Where each model spends its conduit-hours
Each bar is the mean over conduits of the time fractions in the .rpt of the most refined baseline run. "Pressurizes" counts conduits with either end full for at least 1% of the run.
The sentence the census forces
Agreement by regime, every conduit in the sample
Census your own model
Load a SWMM5 .rpt from a dynamic wave run. Nothing leaves your device.
Refine the step: one gap falls, the other holds
Robustness card: what the engine says about itself
From each run's own .rpt. Baseline configuration, fixed step.
Accuracy card: distance from the most refined run
Conduits only, every reporting period, each conduit normalised to its own peak. Median over conduits.
Formulation switches against the floor
Convention used here: a gap under 1× the floor is below it, 1× to 3× is marginal, 3× or more is resolved. The floor is the difference between the two finest baseline steps, same metric.
Response = median over conduits of the chosen metric, baseline vs baseline with every conduit's n multiplied by 1.01, 1.02, 1.05 and 1.10. Linear between measured points, through the origin.
The model's response to roughness, with the gaps placed on it
Every model, every gap, in percent of n
The six runs
- A, the baseline engine or option.
- A again. The .out must be byte-identical. If it is not, stop.
- A at half the routing step, fixed step. A against this is the floor.
- B, the other engine or option, same step as A.
- B at half the step. Compare the two refined runs to see what survives refinement.
- A with every conduit n × 1.05. Prices the gap.
Set REPORT_STEP near the routing step and report all nodes and links, or the files have nothing to compare.
Load .out files
Files are read in your browser and go nowhere. Conduits only; flow floor 1 L/s in the file's units; depth floor 0.001.