![]() |
OpenSWMM Engine
6.0.0-alpha.4
Data-oriented, plugin-extensible SWMM Engine (6.0.0-alpha.4)
|
A network built from survey or GIS data arrives as hundreds of short segments. The segments are not separate pipes — they are one pipe, described piecewise, with a point every time the survey recorded one. Modelling each break as a junction invents a manhole that is not there: a node with storage, a place for water to pond, an entrance and exit loss, and one more equation to solve.
A virtual junction is the alternative: a splice with no storage that transmits momentum, so the solver sees one continuous conduit through it. This chapter builds a trunk out of 370 of them and asks what the routing choice does to the answer.
Decks: docs/figures/decks/cedar_glen/cedar_glen_fv.inp, cedar_glen_dw.inp, cedar_glen_dw_extran.inp
Cedar Glen to FRS, a synthetic raw-water conveyance generated by generate_model.py in the same folder: 387 conduits, of which 370 are joined by virtual junctions and 17 by real ones, a 25 900 ft trunk of 72, 78 and 90 in pipe with two lateral branches, gentle slopes of 0.10 to 0.30 %, and a flow-regulating basin with a service orifice and an elevated overflow.
The interesting geometry is in the middle: a double-pocket reach between the two tie-ins, where the invert falls into a pocket at 442 ft, rises over a 1.55 % adverse riser to a crest at 455 ft, falls into a second pocket, and lifts again. That reach pressurises at each surge peak, which is the point of the model — a valved-conveyance grade is where routing choices stop agreeing.
The forcing is a 24-hour double surge-and-drain hydrograph, the second peak at 85 % of the first. Every coordinate, elevation and name is generated from a seeded script; nothing comes from any client data.
The three decks differ only in their routing options. The splices are the same in all three:
and the routing is
A virtual junction is subject to the rules of its kind: exactly two conduits, the same cross-section on both, zero offsets. Under the finite-volume router the splice is transparent by construction — the cells either side are neighbours across a face. Under dynamic wave it is a node the solver is told not to give storage to.
Figure 4-1 The hydraulic grade line along a trunk chained by virtual junctions, under three routings
Figure 4-2 Head at the node where the three routings disagree most, with each run's cost
| Deck | Flow-routing continuity error | Run time |
|---|---|---|
cedar_glen_fv.inp | 0.000 % | 102 s |
cedar_glen_dw.inp (slot) | −8.285 % | 29 s |
cedar_glen_dw_extran.inp | −0.026 % | 9 s |
Table 4-1 What each routing cost, and what it conserved
The grade line runs through the splices. Figure 4-1 is 260 trunk nodes plotted at one instant, and there is no step at any of them. That is the whole claim of a virtual junction, and it is worth checking on a real model by eye: a sawtooth in a profile like this one is the signature of accidental junctions with storage.
Two of the three routings agree; one does not. The finite-volume and EXTRAN runs sit on top of each other over most of the trunk, both pressurising the flat reach to about 457 ft. The Preissmann-slot run disagrees, and Figure 4-2 shows how: at the node 25 800 ft along, near the basin, it oscillates between 420 and 455 ft for hours at a time while the other two hold a smooth recession.
Continuity says which to believe. The slot run's flow-routing continuity error is −8.285 %: it lost more than one part in twelve of the water it was given. The finite-volume run's is 0.000 % and EXTRAN's is −0.026 %. On this network the slot's surcharge accounting is the problem, not the virtual junctions — and the error is large enough that no calibration of the deck would rescue it.
The cost. 102 seconds against 29 and 9, for a 387-conduit model over 24 hours. The finite-volume router pays for resolving the pressurisation front in the pocket reach; local time stepping is what keeps that from being far worse, since the trunk's short survey segments would otherwise put the whole model on the shortest cell's clock (Hydraulics 8, §8.5.6).
What to take from this. On a conveyance like this one — long, gently sloped, pressurising in pockets — the choice that matters most is not whether to use virtual junctions, which is settled by how the network was surveyed, but the surcharge accounting. Read the continuity error first, then the profile, then the cost.