2D Modeling in SewerGEMS and CivilStorm

Product(s):SewerGEMS, CivilStorm
Version(s):CONNECT Edition Update 4 and later (


Starting with OpenFlows SewerGEMS and OpenFlows CivilStorm CONNECT Edition Update 4 (, you can now model a 2D analysis, reporting results such as surface flow, surface velocity, and water depth. The 2D analysis can be integrated with the 1D analysis. (coupled 1D+2D) With 2D Modeling, you will be able to model 1D/2D urban flooding (including 2D flow from overtopping structures and 2D flow captured by structures) and rainfall runoff (including overflows and direct rainfall on terrain).

Note: 2D Modeling is available at no extra cost as part of OpenFlows SewerGEMS and OpenFlows CivilStorm licenses, but only for organizations with an active license such as: Virtuoso Subscription (Practitioner License), SELECT, ELS or E365, see more here. Non-SELECT Perpetual Licenses (without an active SELECT contract) will not be able to compute a model with the 2D solver. The 2D solver is available in Trial model, but the license cannot be Disconnected mode.

If you do not have a subscription and are interested in 2D Modeling, please
contact sales, or you can purchase OpenFlows SewerGEMS and OpenFlows CivilStorm at our e-Store

Watch the below short video for a demonstration of the benefit of this feature. For a longer demonstration, watch this webinar recording.


2D Modeling Highlights

Below are some of key features when using the 2D Modeling option in SewerGEMS and CivilStorm. You can find details on these features further below in this wiki.


The key features for setting up a 2D model are the Grid, Terrain Models, and Surface Definitions.

The Grid element represents the area of interest for the 2D analysis. After the 2D model is computed, many of the 2D results will be displayed on the grid. Other results, like graphs and profiles, will also be generated based on the results on the grid.

The size of the grid cells is an important consideration. Smaller grid cell sizes will give you finer results, but it will increase the analysis run time. The grid cell size is entered in the grid properties. The number of grid cells will then be calculated based on the grid area and the grid cell size. Properties like SCS CN, Manning's n, and Impermeability are also added to the grid properties. These values are assigned to all grid cells. This values can be adjusted for some grid cells using Surface Definitions.

The grid can be set up to be in the same area as the catchment. However, if you do this you will want to make sure that the Calculation Options property field Rainfall Method is set properly. If the rainfall should only fall on the catchments, this should be set to “Rainfall on Catchment Only.” If the catchment is outside of the grid, you can also set to this to “Rainfall on Grid and Catchment.”

A Terrain Model is required so that the terrain elevations and contours are available on the grid. The terrain model should be at least the size of the grid, though it can be larger as well.

Changes and adjustments to the terrain model is done through Surface Definitions. Surface Definitions start with shapefiles of the location of what is being adjusted. If there are buildings in the grid, the elevation in these parts of the grid. If there are roads, properties like Manning’s n and SCS CN values can be adjusted as well. Note: Surface Definitions are not included in the Surface Polygon flextable.

Other elements used in the setup of the model will depend on how the system is being modeled. If you want to have catchment runoff onto the grid going to a specific point on the grid, you will include a Boundary Point element. All runoff will flow to this point and move along the grid from there. Often the catchment runoff will be spread along a given area. In that case, the Boundary Line element can be used. The 2D lesson file includes a case like this.

Viewing Results

The Grid Browser is a key tool to view results. In the Grid Browser, you can view numerical input and results for the individual cells in the grid by placing the cursor over a cell. When you toggle a given input or result field, color coding will show the input or result values. For time-based results, like velocity or depth, you can use the Time Browser to see how the results change with time. Maximum results are also available in the Grid Browser.

Reporting Points and Profile Paths are other reporting options. With a Reporting Point, you can generate a graph at key points in the model with 2D results, such as the depth on the grid or velocity. With a Profile Path, you can generate depth results along a path of interest.

Additional results, like volume results, are available in the Calculation Summary. This is generated after computing the 2D run. It is also available by going to Home > Summary or Analysis > Summary.

2D results are available in 1D elements in the grid. For instance, “Depth on Grid” results are available in the properties for node elements. You can also graph these results from the 1D element.

It is also possible to export the 2D model to a raster format or to LumenRT. This is done by going to File > Export. 

2D Modeling Menu and Options

All 2D related elements, input managers, and results viewers are located in the 2D Modeling tab in the Ribbon interface.

Note: 2D gutter spread results are outside of the scope the 2D workflow in SewerGEMS. With a terrain model, you would be able to use the Gutter Cross Section Viewer. This link also includes functionality for viewing gutter results in OpenRoads Designer.

A new calculation option has been included in SewerGEMS and CivilStorm. In order to compute the 2D analysis, the Active Numerical Solver field will need to be set to “2D Solver.” The 2D solver is based on the Explicit solver. This link has information on troubleshooting a model using the Explicit solver: Troubleshooting unstable SewerGEMS and CivilStorm modeling results using the Explicit SWMM Solver.

How rainfall is handled in the simulation is defined by the setting for the Rainfall Method property field. If you set the Rainfall Method to “Rainfall on Catchments Only,” the 2D grid will only receive flow from elements in the model, such as catchment runoff and catch basin overtopping. The catchments in the model would be used for hydrologic calculations. If you set Rainfall Method to “Rainfall on Grid and Catchments,” the 2D grid will receive rainfall, as well as any 1D catchments in the model. You will want to avoid overlapping catchments and the grid, as this will result in double-counting for rainfall in these areas. If overlapping does occur a user notification will be generated when computing or validating the model.

This wiki has more information: User notification computing 2D model: The catchment overlaps the 2D calculation grid. This may result in over counting rainfall where they intersect.


2D modeling can be applied to existing SewerGEMS or CivilStorm models, though you will need some additional data in order to accurately calculate 2D results. 2D modeling results are displayed on a grid, which represents the area of concern for the analysis. More information on adding the grid and using the grid to view results can be found below.

A terrain model is required so that the terrain elevations and contours are available on the grid. Data on buildings and other structures can be added so that the correct 2D results can be derived. Related to this, land use data (roads, impervious areas, etc.) may be needed, as well as information on the Manning’s n, SCS curve numbers, impermeability factors, etc., that will apply to an area. While the terrain model may apply to the entire model, information on buildings and land use can apply just to the area for your grid.

Surface Definition elements

Below is a brief description of the available 2D and surface definition elements. How these are applied can be found in the sections below.

Grid – the area that the 2D analysis will be done.
Building – an area in the grid that represents a building footprint.
Land Use Area – an area where the land use may differ from the global data applied to the grid.
Adjustment Area – an area to simulation proposed land use or elevation adjustments
Road Area – an area where a road is located on the grid. This can have different input compared to the grid
Road Centerline – a line that represents the center of a road. This can have different input compared to the grid
Breakline – a line on the grid that is a higher elevation. Flow may pool against or flow around this.
Void Area – an area in the grid where no results will be reported.
Void Point – a point in the grid where no results will be reported.
Spot Elevation – a point where the elevation may be different from that depicted on the grid
Boundary Line – a line that represents inflow onto the grid. This can be used as the outflow element for a catchment or used for constant water elevation.
Boundary Point – a point that represents inflow onto the grid. This is similar to the Boundary Line element.
Reporting Point – a point of interest on the grid, where you will be able to view results in the Properties grid and FlexTables, as well as report graphs.
Profile Path – A line representing a profile in the grid, where you can view results like water depth.

There is a Surface Definition alternative, which stores all information related to the 2D analysis. If you have more than one scenario that has different surface definitions, such as existing and proposed conditions, you will be able to apply the appropriate surface definitions to these scenarios.

Computational Grid

The computational grid is the area of interest for the 2D analysis. It should overlay at least part of the terrain model associated with the model. If there are 1D catchments in the model, you will want to either make sure the grid and catchments to not overlap or that the Rainfall Method is set properly in the calculation options, or there may be an overcounting of the rainfall on the grid.

The grid consists of four aspects: Elevation, SCS CN, Manning’s n, and Impermeability Fraction. Each grid cell has a value for each of these. These values can be adjusted for different parts of the grid to influence how surface flows will behave. These adjustments can be made with adjustment layers using shapefiles or adjustment elements using drawing elements.

As an example, a part of a largely grassy grid may have an area of pavement, which will have different values for the four aspects of the grid. A shapefile can be applied to account for these differences. Adjustment layers or adjustment elements can also be used to adjust the elevation for a group of cells, for instance if there is a building, so that flow will go around an area instead of over it. More information on applying these can be found in sections below.

Once the grid element is added to the model, you will need to generate the grid itself. The grid is made up of smaller cells within the grid. Before generating the grid, open the properties for the grid and set the Grid Cell Size. This will define the size of each grid.

To generate the grid, select Generate Grid from the 2D Modeling tab in the Ribbon.  Note: Larger grids and smaller grid cell sizes will take longer to compute.


If changes are made to the grid, you will need to generate the grid for the updates to apply.

Multiple grids can be added to a model, however results will only be available in one grid at a time. Void areas can be added to a grid, manually or imported as a shapefile. 2D results will not be available in these areas.

Using 1D Elements with 2D

If you add 1D model elements to a grid, the grid will couple the element to exchange flow with the corresponding grid or grids. This includes node elements like outfalls and catch basins, as well as ponds and channels. Flow and water elevations are exchanged automatically, providing information on how water can move between the 1D and 2D systems.

Note: Overtopping manholes will discharge water to the 2D grid, but flow will not go back into the subsurface network through the manhole element. The catch basin element type would need to be used if you need flow to go back into the subsurface network.

If you include 1D channels or ponds in the grid, when you generate the grid the program will remove grid cells around the channel and pond. This channel burn-in and pond burn-in will avoid double counting of results at these elements within the grid.

With node elements, like catch basins, there may be a difference in the elevation data for the grid cell, which is interpolated from the terrain model, and the elevation entered in the node properties. You will need to define how the elevation at these nodes are applied in the calculation. In the node properties, find the field 2D Surface Elevation Matching and set this to either “Adjust Grid to Rim” or “Adjust Rim to Grid.”

Setting Boundary Conditions

Once relevant model data is added, boundary conditions can be set up. There are few areas that apply to this.

Calculation Options

The Rainfall Method set in the calculation options is key to how the rainfall will apply to the model, whether that is on just catchments or on both grid and catchments.

The option for Minimum Depth on Grid is used to used to define if a cell is considered wet or dry. If the calculated depth is less than the value entered, the 2D engine will skip the calculation for the cell. The Minimum Flood Arrival Depth value is used in the calculation of the Flood Arrival Time result.

The calculation option Allow Boundary Inflow? is used to prevent inflow from off the grid. The option “Maximum Terrain Elevation for Boundary” is used so high elevation boundary cells are closed to inflow off the grid.


You can define the type of boundary that the grid itself has using the property field Grid Boundary Type. If it is set to “Closed,” no flow into or out of the boundary of the grid unless a boundary element is used. If this is set to “Constant,” you can add a water surface elevation that will define if and how much flow can enter or exit the grid boundary.

Boundary Element

Boundary Elements are used to establish boundary conditions are specific locations in the grid. This will override the Grid Boundary Type set in the grid properties.

There are two types of boundary elements. A Boundary Point is a specific point for the inflow or removal of flow. A Boundary Line will distribute flow along a line or will operate as tailwater conditions for a grid.

Boundary lines and boundary points can both be used as the outflow element for a catchment. For the boundary line, the runoff will be distributed along the length of the boundary line. For both the boundary line and boundary point you can define a Boundary Flow Type of either “Hydrograph” or “Constant. Boundary lines have a Boundary Type field that can be set to “Flow” or “Elevation.” With a setting of Flow, you can define a hydrograph or constant inflow. With a setting of Elevation, you would define a constant water surface elevation or a time-elevation series, where the water surface may change with time. 

Note: If there are 1D elements in the model, rainfall falling on the grid can be directed to those elements. A 1D node, like a catch basin, can be provide a flow path for 2D flow at the grid cell.


Note: There is a Quick Start Lesson related to 2D modeling. Browse to File > Help > Quick Start Lessons and go to Lesson 9. This is highly recommended to get a better understanding for the general workflow.

The 2D workflow assumes that you have the necessary files and information needed for the analysis. This will include a terrain model. In many cases, this will also include a 1D hydraulic model. Reference shapefiles for buildings and other void areas may be useful as well, though you can add these manually.

Once the model is created and terrain model added to the model, the next step is to add a grid to the model. Open the 2D Modeling tab in the Ribbon, then select Grid. You can then add a grid to the drawing. With the grid in place, open the properties for the grid and enter a value for the Grid Cell Size. Once completed, either go to the 2D Modeling tab and select Generate Grid or right-click on the grid in the drawing and select Generate Grid.

The grid will have land use data, such as CN numbers or Manning’s n values. The grid may also comprise of different types of land use. For instance, a part of the grid may be a parking lot and a part may have vegetation, or there may be roads, buildings, or void areas that need to be accounted for. Additional surface adjustments can be included in the grid for cases like this.

If these areas are available as shapefiles, they can be imported using the Surface Definition dialog. You will be able to add shapefiles and enter any land use information here. Once the elements are added, you can adjust values in this manager or in the properties for the element.

These surface adjustment types can also be added manually through the 2D Modeling tab in the Ribbon. Simply select the type (building, breakline, etc.) and add it to the model within the grid boundary. You will be able to adjust the land use and other properties in the Properties grid.

The shapefiles in the table are processed from the bottom row to the top. The layering will mean that if there is any overlap in the shapefile data that the shapefile at the top of the table would override data below it.

Note: Properties can also be adjusted through the element flextables. Some surface adjustment types will be available in the same flextable. For instance, “building” and “land use” are both in the Surface Polygon flextable. Surface polygons are not included in the Surface Definitions manager.

Road areas and Road centerlines can be added. This can represent an area or line of higher CN values in a vegetative grid or land use area.

Breaklines can be added to grid to represent a barrier, levee, or other feature that will change the flow in the grid. For instance, there may be a barrier through part of a parking lot or a levee near a channel. You can adjust the elevation of the breakline in the Geometry field in the properties grid. Selecting this cell will show the X and Y values, but also the Z value related elevation.

If you want to analyze surface runoff from a catchment directly unto the grid, you can use the Boundary Line and Boundary Point options. This represent areas where runoff from a catchment will be directed to the grid.

Note: Any time that new surface adjustment features are included in a grid, the grid will need to be regenerated before computing.

Once all grid and surface definition data are included in the model, you will need to set the calculation options to use 2D modeling. Open the calculation options properties and set the Active Numerical Solver to “2D Solver.” This is based on the Explicit solver available in SewerGEMS and CivilStorm, so the 1D model will need to be able to compute with reasonable results using the Explicit solver. There are 2D specific settings that can be set in the calculation options, such as how the storm data is applied to the grid.

Viewing Results

Once the 2D analysis has computed, you can view the results using the Grid Browser.

With the Grid Browser open, you can view numerical input and results for the individual cells in the grid by placing the cursor over a cell. When you toggle a given input or result field, color coding will show the input or result values. For time-based results, like flow and velocity, you can use the Time Browser to see how the results change with time.

You can also add Reporting Points and Profile Paths to the grid. With a Reporting Point, you can generate a graph at key points in the model with 2D results, such as the depth on the grid or velocity. With a Profile Path, you can generate depth results along a path of interest.

Results are also available in the Calculation Summary that is generated after computing the model. The calculation summary includes mass balance information used to assure that the model results are accurate. Included in this is volume results related to 1D/2D system. For this reason, you will be able to find volume results in the Calculation Summary. For instance, the "Total System Volume (Final)" result is the total volume of the system (both 2D and 1D). Volume results for just the 2D grid can be found in the "2D Volume (Final)." Note: These variables only account for volumes inside the 2D grid, which means it they can only be considered individually when all elements outflowing from the 1D system are contained in the 2D grid.

2D results are also available in 1D element properties and flextables. It is also possible to graph and view data tables for 1D and 2D elements.

Export to LumenRT or Raster

You can export the 2D model to a raster format or to LumenRT to view in 3D. To do this, go to File > Export and you will see a number of options, including Raster and LumenRT.

LumenRT is a Bentley software product that can show a 3D view of an area and animate dynamic results. With Bentley SewerGEMS 2Dcalculation results exported to a file that can be read by LumenRT, SewerGEMS 2D calculation results can be shown in 3D map view. Animation of flooding results in LumenRT can offer good visual effects. 

When you select this option, you will be able to set the Projection Type (Proj.4 String or EPSG Code). With EPSG Code, you can specify the EPSG code of your hydraulic model (to allow model coordinates to be transformed for use in LumenRT). Valid EPSG codes can be found on EPSG.org. With Proj.4 String, you can specify the Proj.4 coordinate transformation string of your hydraulic model to allow model coordinates to be transformed for use in LumenRT.

In addition, you would set the Minimum Depth to Show Result, where if the water depth is smaller than this value, 2D flooding results will not be exported, Vertical Adjustment, which is the elevation adjustment of ground and water level to make 2D result layer higher than other layers in LumenRT, and the file name.

When export to Raster, you will be prompted for the projection settings. To export without projection, select None for the Projection Type. Otherwise select the choice of Proj4 String or EPSG Code and provide the projection string to establish the spatial reference for the target file. 

2D Modeling Considerations and Limitations

Surface terrain in 1D networks

Gutters - Any gutter intersecting with a 2D computational grid will be ignored during the calculation. Any flow into or out of catch basins are assumed to be based on the shape of the terrain. Any gutter that is outside of the grid will be computed using the typical 1D calculation using the Explicit solver.

Inlets – If the catch basin intersects with the 2D grid, rating curves generated based on the inlet type and location are passed to the 2D engine. The flow into the subsurface network is calculated based on the inflow and depth of the grid cell and these rating curves.

If the catch basin is the outflow node for a catchment, the runoff is injected directly into the system so the flow is not lost. Catch basins outside of the grid will be computed using the typical 1D calculation using the Explicit solver.

Ponds – Ponds that are within the 2D grid are removed and voided out so that the pond area is removed from the 2D calculation. Pond depth is calculated with the 1D calculation engine. However, flow can enter the pond from the 2D surface flow, as well as exit to the terrain depending on the elevations.

Catch Basin considerations in 2D Modeling

If a catch basin overlaps with grid cells, directed surface flow will be modeled with the 2D grid rather than gutter links. Because of this, inlet capture calculations are done with the 2D engine, though It will differ compared to 1D calculations.

In a typical 1D calculation, the bypass flow for gutter flow to an on-grade inlet is evaluated at the inlet opening. With 2D calculations, the influx corresponding to one computational grid cell at the inlet opening is used to estimate the captured flow. You may see underestimated captured flow if the grade or curb length is larger than the dimensions of the grid cell. Bypass flow is not directed flow, since any surface flow that is not captured on the grid can continue to pool at the inlet or continue downstream two dimensionally.

Note: Elevation adjustments at the inlet are important when computing inlet flow capture. Using the 2D Surface Elevation Matching field in the catch basin properties is important to assure the correct adjustments are made for simulating localized ground elevations, depressed structures, or perched structures.

Regarding surface flooding at catch basins, inlet capture is more likely governed by the available storage of the 1D network than the hydraulic capacity of the inlet opening. When the subsurface system overtops, upwelling could occur onto the 2D grid and yield non-applicable capture results. The local maximums can be important in cases like this. Noting the time of the maximum surface flow or the minimum capture efficiency (or the maximum inflow and overflow) can be more informative in identifying bottlenecks in the 1D-2D system.

2D Coupling Limitation

There are some limitations related to the coupling of the 1D and 2D calculations.

Channels and Cross Sections - the 2D engine will burn in void cells along the path of the channel so that there is no overcounting of flow. The channel should be large enough so that a void cell will share a border with another cell directly horizontal or vertical to the cell. Essentially, the channel element should see a series of connecting void cells with no active cells between them. If this does not occur, a user notification about an unsuccessful coupling of the channel will be generate.

Dendritic channels can be burned into the grid, though no more than two channel links can share a downstream cross section node.

If a channel extends outside of the grid, it is recommended that the channel element is perpendicular to the grid boundary to assure that the channel is correctly coupled with the grid

Cross section nodes cannot overlay the last active cell in a grid. If this happens to occur, you will need to adjust the location of the cross section so that it is either further inside the grid or completely outside of the grid.

Ponds – As mentioned above, ponds and pond outlet structures are solved as part of the 1D calculation. A user notification will be generated if the top surface area is not comparable to the area in the 2D grid.

The top elevation of the pond is assigned to the grid cells bounding the pond’s voided area. For the pond overtopping results to be accurate, the elevations of the cells should be relatively close to the terrain model elevation. If one bank of the pond is higher, such as a levee, you can use a breakline to accurately portray the elevation here.

Inlets – As noted above, inlets with large openings can see a smaller captured flow. If there is an inlet with a large opening, modeling the inlet using more than one node can improve this. 

Overall, the 2D simulation will see less captured flow at the inlet compared to a 1D simulation, since the surface flows near the node are more distributed.

The amount of flow that the inlet captures can be not only limited based on the surface, but based on the capacity of the subsurface network. For example, you can see instabilities in the results in cases were the subsurface system is near capacity. The intercepted flow at the inlet will push the system over-capacity and cause upwelling in the next time step. This could result in a graph of captured flow showing an oscillation of the results.

If there is an on-grade inlet where the surface flow is inundated, the inlet will not capture this flow. In the future, this will be modeled as in-sag inlets to better account for the captured flow when simulating the interception of standing water as the surface water recedes and the subsurface network has capacity.

Manholes - Overtopping manholes will discharge water to the 2D grid, but flow will not go back into the subsurface network through the manhole element. The catch basin element type would need to be used if you need flow to go back into the subsurface network.

Duplicate Labels

The 2D solver is based on the Explicit solver, which does not allow duplicate labels. You will want to make sure your 2D model does not include duplicate labels.