Troubleshooting unstable SewerGEMS and CivilStorm model results using the Implicit (SewerGEMS Dynamic Wave) solver

Applies To 
SewerGEMS, CivilStorm
Version(s): CONNECT Edition, V8i
Area:  Modeling


This article provides guidance on troubleshooting unstable or problematic hydraulic results with the Implicit solver in SewerGEMS and CivilStorm.

If your hydraulic model provides unexpected results or high continuity error (mass balance) when using the Implicit numerical solver (set in the Calculation Options), try the following steps.

Note: a Continuity Error (as seen in the Calculation Summary) of less than 5% is typically acceptable for modeling purposes, considering the inherently unstable nature of any dynamic numerical solver, the degree of uncertainty with other modeling parameters (exact roughness, elevations, etc) and the margin of error in the actual built system. However, the modeler should still check time-series results at key locations to determine if further fine-tuning of the model is necessary to achieve a higher degree of accuracy. 

1.  Check the model for data entry problems:

Checking your data is always the best first step, as even one problem with data entry could potentially impact the results in your model and lead to instability or otherwise problematic hydraulic results. It is important that the model data entry is in good shape before attempting to compute.

  • Use the Validate command and look at the warnings and/or errors that are reported. Fix as many as you can while keeping in mind the goal of the model is to make it resemble what you have in the field as closely as possible.
  • Use Network Navigator queries to locate connectivity and topological problems
  • When you Calculate the model, validation routines are performed that are not included during a Validate operation. Review the warnings and/or errors that are returned after calculating the model too. 
  • Examine Graphs and Profiles. Create Flow plots at splits and at pump discharge areas and look for jagged peaks in the plot.
  • Use the Hydraulic Reviewer to pinpoint areas of volume deviation, to pinpoint areas of the model to check first.

Common data problems:

Conduits or Channels

  • Incorrect channel or conduit slopes: Reasonable slopes are generally small and rarely negative. You can view slopes along a reach visually by using the Profiles feature. You can find unusually large or negative slopes through User Notifications and FlexTable reports. You can Color Code link elements by Slope and look for excessive values. If the model has parallel conduits connected by a flat (slope value of 0) conduit, try making that conduit Inactive.
  • Incorrect Channel or Conduit size: Look for unusual size changes along a reach. Color code drawing by Diameter to look for this type of discrepancy and or create numerous profiles for an even better visual of your pipe sizes. This will help you locate bottlenecks in the system that could be causing calculation problems. You will also see user notifications if the diameter decreases as you move downstream.
  • A mix of very long and very small pipes. Eliminate or combine short pipes because their effect on routing is small. Break exceptionally long pipes into mutliple pipes that are each roughly the same length as other pipes in the network.
  • Very low flows: If flows are less than 0.01 cfs (0.001 m3/s), depths may fall below accuracy tolerances. Consider omitting dry pipes from the model (or combine/skeletonize them out)

Pumps and pressure pipes

  • Pumps operating at or near the shutoff point defined on the pump curve

When pumps operate at or near the shutoff head point on their curve review downstream results for accuracy. In the past there have been cases where graphs of the hydraulic grade would show large jumps that were out of the range of the normal pump operating points. To resolve this adjust the pump curve by reducing the flow or head accordingly to produce a curve that operates near the point the pump is running at in the model. The new pump curve can be tested using the SewerCAD (GVF-Convex solver) because the pump calculations are done using the pressure solver, which is more stable for pump calculations than the implicit solver.

  • Pumps using a multiple point pump curves that have large differences between flow or head values on the pump curve.
  • Pumps that cycle on and off very quickly - check the on/off elevations and wetwell size/operating range. Make sure the pump curve is sized appropriately for the wetwell size. Use a small calculation timestep if fast pump cycling is needed.
  • Manifolded pumps (pressure pipes combining together). This may require a small calculation timestep. The Implicit solver tends to be better than the Explicit (SWMM) solver with this.
  • Unnecessary check valves on pressure pipes. Users commonly use the option to have a check valve on pressure pipes that are directly downstream of a pump, but this is unnecessary because pumps already have built in check valves. Keeping them can cause unnecessary difficulty for the solver. 
  • Parallel pumps - the short pipes adjacent to the pump may need to be designated as Virtual. Try toggling the "is virtual?" setting. Also, ensure consistent use of this setting. For example if you have two pumps in parallel, ensure that all four of the adjacent pressure pipes are either treated as virtual, or not treated as virtual. A mix could cause issues with the pump flow not showing up in the transition to gravity flow downstream.

Ponds and pond outlet structures

  • Flow control structures on relatively small storage nodes (ponds, wet-wells). Consider combining ponds, modeling as manhole storage or using a very small calculation timestep.
  • Unusually small ponds compared to their inflow. Consider modeling as a manhole with downstream conduit start control structure, or use a very small calculation timestep.
  • Significant backwater/tailwater effects against an upstream pond outlet structure. If a backup occurs and acts as tailwater for an upstream pond outlet, this can be extremely challenging to solve. A very small calculation timestep may be necessary, the Explicit (SWMM) solver may need to be used (with a very small Routing Step). Or, consider changing the model layout or otherwise resolving the downstream backup to prevent this challenging situation.

Conduit control structures

  • Using a start control structure tends to be more stable than a stop control structure
  • Use a smaller calculation timestep in cases where a large change in flow can occur with a small change in head, such as when using a weir.
  • Significant backwater/tailwater effect against a conduit control structure can be challenging to solve. A very small calculation timestep may be necessary, the Explicit (SWMM) solver may need to be used (with a very small Routing Step).
  • Consider using an approximate pond (representing the ponded area upstream of the control) with pond outlet structure, which might work better in some situations

Storm Data and Inflow

  • Make sure the storm data entered has labels and the data entered is correct.
  • Ensure any other inflows are using the correct units and that the data is entered correctly. For example a mistake with the units could result in a much larger flow entering the system than you intended.

Flooding and Overflow

  • If significant flooding occurs during the simulation, the numerical solver may need to make some allowances in order to maintain stability. For example if you have a high downstream tailwater condition on an outfall, the Implicit solver tends to struggle with such conditions and may need to ignore overflow (when the hydraulic grade rises above node rim elevation) in favor of stability. As mentioned further below you can increase the LPI Coefficient calculation option to force the Implicit solver to calculate more dynamic effects including overflow, but this will likely come at the cost of stability (and you may notice a larger continuity and less stable model results). So, you may need to adjust other advanced calculation options to compensate or consider using the Explicit (SWMM) solver. See more here: Zero overflow at manhole despite HGL above rim

2. Verify data input in the following other challenging situations

  1. Flow splits at weirs and orifices that are dry at certain points during an extended period simulation.
  2. Hydrograph rapidly changes within a short time (minutes).
  3. Very sharp flood waves - check catchment runoff hydrographs to make sure they are correct.
  4. Near-critical slopes.
  5. Significant and abrupt changes in the conduit size, shape and/or slope.
  6. Looped networks. (it is highly recommended that you use the Explicit (SWMM) solver which tends to handle loops much better than the Implicit solver.)
  7. Significant backwater conditions.
  8. System inflows vastly exceeding the system capacity resulting in mass flooding / overflow

3. Simplify where possible

Dynamic solvers tend to be complex, and little changes can sometimes make a big difference. What you should keep in mind when creating a dynamic model is to keep things as simple as possible and only model what you really need to study. In other words, if there are some conduits that can be left out because they won't have a significant effect on what you are studying or don't provide a lot of flow (near-dry) don't put them in the model or take the flow they would produce and add it to another node element as an inflow. Generally speaking with dynamic modeling less is better than more.

If you're working with a very large model, you may have a much easier time splitting it into smaller subsections if possible. Then, work on the sections one by one. Trying to troubleshoot results in a very large model can be cumbersome and overwhelming.


1) Parallel conduits with the exact same physical properties. Instead of putting both conduits in the model you might model this as one conduit with 2 barrels. 

2) A pond with an outlet structure. Let's say the outlet structure was made up of a 24 inch orifice and a weir at the very berm of the pond. After going through the outlet structure the water goes into a 24 inch conduit. Assuming the water never gets up to the level of the weir what you could do to simply this situation is set the Pond Outlet Structure property for "Has control structure?" =  'No'. In this situation, this can be done because the conduit was the same size as the orifice, so the conduit will act as the controlling structure for incoming water.  

3) A wet well with a sanitary load.  Remove the sanitary load that is directly on the wet well and add it to a manhole upstream of the wet well or create a dummy manhole directly upstream and connect it to the wet well.




4.  Adjust the calculation options to reduce the continuity error

Default values for calculation options will work for the majority of cases, but some systems need small adjustments to converge. When the calculation is moving very slowly (you can observe that the model is stuck at certain times) or the results show apparent instabilities, it is an indication that the model is experiencing difficulties in converging to a stable and robust result. Try adjusting calc options in the order below. This is an iterative process and only one option should be adjusted at a time to see whether it gives better results or worse results. If the choice provides better results see if you can adjust it again more in the same direction to provide even better results than the first choice. For example, if changing the computational distance at 50 ft provides a continuity error of 25% and adjusting to 10 feet provides a continuity error or 15% then try to adjust it further to 5 feet to see if you can reduce the continuity even more. The goal with this is to get the continuity for the model under 5% and the lower the error the more accurate your results. 

Initial conditions: Options include warm start or transitional start. Try both and see if one gives better results for your system.

Calculation Option

Suggested Range of Values

Computational Distance

5 ft - 75 ft

Calculation Time Step

0.005 hr - 0.025 hr

NR Weighting Coefficient

0.7 - 0.990

Relaxation Weighting Coefficient

0.6 - 0.990

NR Iterations

5 - 20

LPI Coefficient

1 - 15

Most of the time you can get the continuity error under 5% using the 4 options above. If you still need to adjust things after that continue in the order below. 

  • Try an NR Weighting Coefficient value of between 0.9 and 0.99 with the default Computational Distance and Calculation Time Step.
  • Set NR back to default and try reducing the Computational Distance value.
  • Set Computational Distance back to default and try reducing the Calculation Time Step value.
  • Keep the Calculation Time Step the same and repeat the above steps.
  • Try increasing the the NR Iterations to 20.
  • Try increasing the LPI Coefficient to a value over 5.0. You do not need to go higher than 15. Note that the solver uses whole numbers only so for example an input value of 10.99 causes it to use a value of 10 and an input value of 11.00 causes it to use 11.

Note:  There is no absolute rule on whether the time step, LPI Coefficient, or the NR weighting coefficient should be changed or to what specific value; normally you should reduce the time step and increase the NR weighting coefficient but sometimes the opposite can also help.

  • Relaxation Weighting coefficient: this is typically sensitive in cases where problems occur at confluences (flow from multiple pipes combining together at a node)
  • LPI coefficient: this is typically sensitive in cases where additional dynamic effects are needed, such as accounting for overflow caused by backwater/tailwater effects or when modeling loops. Note that the numerical solver only looks at the whole number value (see above). Note that if you are modeling loops and seeing problematic results, it is highly recommended that you use the Explicit (SWMM) solver which tends to handle these much better than the Implicit solver.

5.  Isolate problems areas: Isolate the problem area by incrementally deleting small sections of your model and re-computing. This may help you narrow down the source data that the engine has trouble with. It may expose data entry issues or areas that are exhibiting common modeling difficulties.

6.  Locate and focus on the time step during which the problem occurs. Look for what is happening at that time. Is a weir beginning to overflow? Is it the first time a large pump comes on? Sometimes it's easiest to look at your user notifications for that time or locate the problem on a profile and slide the time browser bar to that time before examining the model. 

7.  Check for upgrades. As newer versions of SewerGEMS and CivilStorm are released, improvements are made to the numerical solver. With a SELECT subscription, upgrades are included. Here on this here.

8.  Consider trying the Explicit (SWMM) numerical solver (Analysis > Calculation Options > Click on the active option to open the properties). Each solver has its own strengths and there are some situations where the SWMM solver may handle a hydraulic situation better (see this article for more). If there are problems when using the SWMM solver, try changing the Routing Method from Dynamic Wave (default) to Kinematic Wave or Uniform Flow. These methods do not handle backups as accurately as dynamic wave, but they tend to be more stable. If the results are still not stable with the SWMM solver (as seen in the summary output text report), try reducing the Routing Time Step calculation option. Suggested value range: 1.0 sec - 30 sec. Smaller values tend to yield more stable results.

Note:  Headlosses at nodes are currently ignored during periods of supercritical flow.

Troubleshooting unstable SewerGEMS and CivilStorm model results using the Explicit SWMM Solver

See Also

Using the Hydraulic Reviewer

  • Created by
  • When:
  • Last revision by Bentley Colleague
  • When:
  • Revisions: 41
  • Comments: 0