1D-2D Flood Modelling in SWMM: Mesh, Coupling and Hazard
What does 1D-2D modelling in SWMM mean?
It means routing the sewer (1D) and the ground surface (2D) in one SWMM run, so water that leaves a manhole spreads over the streets and can drain back in elsewhere. Plain SWMM cannot do this. The EPA SWMM 5.2 user's manual says water above a node's maximum depth is normally lost from the system, or with Allow Ponding is stored over that node on a fixed Ponded Area. Either way it stays at the manhole that overflowed, so a 1D model tells you how much floods but not where it goes.
How can SWMM represent a 2D surface?
By building the ground out of ordinary SWMM objects. Each cell of a surface mesh becomes a junction at ground level, and each pair of neighbouring cells is joined by a short, wide open rectangular conduit that carries a sheet of water across their shared edge. This is the method CHI built into PCSWMM. James et al. (2012) state its assumption as flow between cells that is mainly one dimensional and can be represented with rectangular cross-sections, and they ran square, hexagonal and directional meshes.
Three settings make the conduits behave like sheet flow:
- No side walls in the friction. In the EPA SWMM source code (xsect.c), the third geometry value of a RECT_OPEN section is the number of sides, 0 to 2, left out of the wetted perimeter. James et al. recommend removing the walls, and keeping the cell size more than about five times the water depth to reduce the wall effect.
- Dynamic wave routing. The SWMM manual says kinematic wave cannot handle backwater, flow reversal or looped layouts, and a mesh has all of them.
- No conduit lengthening. SWMM's lengthening option artificially stretches short conduits, which would pull them away from the mesh geometry.
How is the sewer coupled to the surface?
Through a bottom orifice from the cell above each manhole down to the manhole junction. Beck (2016) describes the bottom orifice as the connection used mainly in urban settings, between the collection network and the streets. Street water drains in while it stands above the manhole head, and a surcharging sewer pushes water back up onto the cell. SWMM computes orifice flow as Q = C A (2gh)0.5, so opening area and discharge coefficient limit the exchange.
GeoSWMM's documentation suggests an orifice width equal to the 2D conduit width or the grid resolution, and a manhole surcharge depth equal to the orifice height, so the manhole surcharges through the orifice instead of flooding out of the model.
How do you build the mesh from a DEM?
Draw a study area, lay a regular grid of cells over it, and give each cell the ground level of the DEM beneath it. Check four things:
- Coordinates. The DEM must use the model's projected coordinate system and length unit, not longitude and latitude.
- Averaging. A cell takes one ground level, usually the DEM average inside it. Kerbs and walls narrower than a cell vanish into that average, so a coarse mesh can open flow paths that do not exist.
- Buildings. A bare-earth DEM lets water run through houses.
- Boundary. An open edge drains off the mesh through outfalls; a closed edge is a wall, and water must leave through the sewer.
What cell size should you use?
Use the coarsest cell that still resolves the streets you care about, then rerun with smaller cells and see whether the flooded area changes. Halving the cell size makes four times as many cells. For a 1 km2 study area:
| Cells | Resolution | Number of cells |
|---|---|---|
| Square | 20 m | 2,500 |
| Square | 10 m | 10,000 |
| Hexagonal | 10 m centre to centre | about 11,500 |
| Square | 5 m | 40,000 |
Smaller cells also need shorter routing steps. On the UK Environment Agency 2D benchmark tests, James et al. (2012) used 2 s with 10 m squares, 5 s with 20 m squares and 0.5 s with 5 m hexagons. Al Amin et al. (2024) used 0.5 s for 10 m hexagons in an urban PCSWMM model. The SWMM manual names long time steps and short conduits as the most common causes of a large continuity error, and a fine mesh is all short conduits, so check the routing continuity error each run.
How do you read flood depth and hazard from the results?
Map each cell junction's maximum depth, then combine depth with velocity for hazard. SWMM reports velocity for links, not nodes, so a cell's velocity has to be rebuilt from its conduits. Australian practice uses the combined hazard curves of AIDR Guideline 7-3, where a cell falls in the first class whose three limits it meets:
| Class | Depth x velocity | Depth | Velocity | Meaning |
|---|---|---|---|---|
| H1 | 0.3 m2/s | 0.3 m | 2.0 m/s | Generally safe for vehicles, people and buildings |
| H2 | 0.6 m2/s | 0.5 m | 2.0 m/s | Unsafe for small vehicles |
| H3 | 0.6 m2/s | 1.2 m | 2.0 m/s | Unsafe for vehicles, children and the elderly |
| H4 | 1.0 m2/s | 2.0 m | 2.0 m/s | Unsafe for vehicles and people |
| H5 | 4.0 m2/s | 4.0 m | 4.0 m/s | As H4; all buildings vulnerable to structural damage |
| H6 | over 4.0 m2/s | As H4; all building types vulnerable to failure |
UK flood risk work usually uses the FD2320 hazard rating, HR = d (v + 0.5) + DF, where DF is a debris factor. Either way, classify each reporting time and keep the worst. The AIDR guideline shows peak hazard can come before the peak water level, so a cell's maximum depth and maximum velocity may not coincide.
How do you run a 1D-2D model in DrainPilot?
DrainPilot runs EPA SWMM 5.2.4 compiled to WebAssembly in the browser, and files stay on your computer. Its Tools > Flood 2D... window builds the mesh as described above:
- Load a DEM as an ESRI ASCII grid (.asc) and pick the study area: the extent of the network, the outline of a selected subcatchment, or the whole DEM.
- Choose hexagonal or rectangular cells and a resolution (10 m or 30 ft to start). Each cell takes the mean of a 3 x 3 set of DEM samples, and the mesh edge is a staircase of whole cells.
- Each manhole inside the mesh gets a bottom orifice to its cell, by default a square one cell edge wide with a discharge coefficient of 0.65, and a surcharge depth of at least the orifice height.
- The 2D conduits are RECT_OPEN with both walls left out of the friction, run with dynamic wave routing, lengthening off and a routing step you set (1 s to start).
One default differs from a plain edge-width mesh. When each conduit is as wide as the shared edge, the conduits' plan areas (width times centre spacing) add up to about twice the mesh area, and in DrainPilot's engine tests ponded water stood at about half its true depth. DrainPilot therefore halves both width and Manning n, which keeps the Manning flow unchanged and matches storage to the cell areas. You can switch back.
The map shows maximum depth, from SWMM's Node Depth Summary, or the AIDR 7-3 hazard class at each reporting period, with flooded area per band. You can save a PNG, GeoJSON, a CSV of each cell's maximum depth, velocity and depth x velocity, or a GeoTIFF of maximum depth. The run leaves your project unchanged unless you add the mesh to it.
What does DrainPilot not do?
- It gives every cell the same Manning n. There is no land-use roughness map in the window.
- It has no buildings or obstruction layer, and builds uniform meshes only, with no directional or refined cells.
- It runs at most 20,000 cells in the browser, so 1 km2 at 5 m square cells is too large.
- It classifies hazard by AIDR 7-3 only, not FD2320. You can work out HR from the CSV, but its maxima may come from different times.
- Its optional rain on the grid has no infiltration or other losses.
If you are choosing a full 2D package, see flood modelling software compared and InfoWorks ICM vs TUFLOW.
DrainPilot is free to use at geopilotai.com/drainpilot. The Flood 2D docs page lists every setting in the window, its start value and the hazard classes.
Jagadeesh Gaddam
CEO, Smart Bhujal
Try this in GeoPilot
Run the analysis described in this article with one prompt. No setup required.
Open GeoPilot




