How does the Interconnected Pond Modeling (ICPM) algorithm work

Product(s): PondPack, SewerGEMS, CivilStorm
Version(s): CONNECT Edition, V8i, V10
Area: Modeling


How does the Interconnected Pond Modeling (ICPM) algorithm work in PondPack, SewerGEMS or CivilStorm? (when selecting "interconnected ponds" as the tailwater type in an outlet structure)


Note: the handling of interconnected ponds is automatic in SewerGEMS and CivilStorm and does not require extra configuration and considerations seen in PondPack. See more in the section below "ICPM in SewerGEMS and CivilStorm"

ICPM is a convergence algorithm used by PondPack when the tailwater type of a pond outlet structure is set to "interconnected ponds". It is used in cases where the tailwater downstream of a pond has the potential to impact the outflow of that pond or potentially even cause reverse flow. This is in contrast to "level pool" routing, where a "free outfall" condition is set for the tailwater and the downstream water level has no impact on the upstream pond's outflow hydraulics.

When using ICPM, the pond outlet structure will compute an EQTW (elevation-flow-tailwater) table, so that it knows the forward or reverse flow for a range of both headwater and tailwater elevations. In this way, orifice and weir (and other component) submergence is accounted for. For example water flowing over a weir has a headwater elevation of 100 feet and the downstream side is submerged with a tailwater elevation of 101 feet, the ICPM algorithm will look at the EQTW table (interpolating between points) and see that this warrants a reverse flow condition.

As mentioned, ICPM employs a convergence algorithm that is able to track the change in flow as the change in headwater and tailwater occurs. In some cases this may result in unstable results and you may see a user notification about mass balance error. In this case, a smaller timestep is often necessary but data input and other things should be checked. See more here: Troubleshooting Mass balance and instability with Interconnected Pond Modeling (ICPM)

ICPM Network Algorithm

The interconnected pond modeling (ICPM) algorithms can be applied to a single pond connected to a tidal outfall or to a large and complex series of ponds. The network can contain any combination and number of ponds that receive flow from one or more upstream sources, and discharge to one or more downstream ponds or reaches, but it cannot contain loops. Don't be mislead by the terms upstream and downstream. The flow from one pond to another can occur in either direction (thus reversing the sense of upstream and downstream) during a simulation. To model control devices such as flap gates, the connections between ponds can be configured to limit flow to the downstream or upstream direction only.

The solution of an interconnected pond network involves complex convergent algorithms that take into account the changing water surface elevation in each pond throughout the duration of the simulation. As in standard pond routing, ICPM maintains a mass balance at each time-step. The difference is that in ICPM, the outflow from one pond is a function of the water surface of the downstream pond, which is itself a function of the volume, inflow, and outflow from that pond.

ICPM algorithms are quite complex, and therefore a complete description is beyond the scope of this article. In general, the solution proceeds in a "downstream" direction. For each time-step, the inflow to the pond is known, and the water surface elevation and the discharge from the pond are unknown. The solution uses the computed values from the previous time-step as the initial conditions for the calculations for the current time-step, and then iterates over the rating curves until convergence is achieved between the outflow rate, the change in headwater elevation, and the tailwater elevation for the previous time-step.

ICPM in SewerGEMS and CivilStorm

In SewerGEMS and CivilStorm when using either of the dynamic solvers (Implicit or Explicit), ponds are always "ICPM". Meaning, no configuration is necessary in order for a pond's outlet structure to "see" and account for the downstream water level, as the default tailwater type for pond outlet structures is "interconnected ponds". 

In general you would select "interconnected ponds" as the tailwater type in SewerGEMS/CivilStorm in any situation where the downstream tailwater could potentially influence the hydraulics of the pond outflow (either restrict the outflow partially, or even potentially cause reverse flow). You would use "Free outfall" only if the downstream tailwater would not impact the pond outflow hydraulics (for example if the downstream invert is below the bottom of the pond). If there is a potential for the water surface downstream of your pond to influence the pond outflow, you should keep the tailwater type of the outlet structure set to "interconnected ponds". In general it is typically best to always leave it as "interconnected ponds" so there is very little downside to doing so (since there is no extra configuration required and the performance impact should be minimal unless you use a small tailwater increment). 

Hand Calculation Checks

PondPack's ICPM algorithm enables calculations that would otherwise take a long time to do by hand. However, once the program has found the solution at each time step, it is relatively simple to hand check any desired time step.

At the desired time step, look at the elev. vs. time output table for the upstream and downstream connected pond (or tidal outfall). Read the elevation of the upstream pond at the CURRENT time step, and the elevation of the downstream pond at the PREVIOUS time step. Note: Upstream and downstream is relative to the way the network was laid out... NOT to the direction of flow, since reverse flow is reported as negative.

Look in the E-Q-T outlet table for the upstream pond. Locate the flow rate (interpolate) for the given HW elevation in the upstream pond and the TW elevation (downstream pond surface) from Step 1 above.

From the hydrograph table output, read the hydrograph flow rate for the upstream pond's outflow rate for the selected time step. It should approximately be equal to the flow rate interpolated in step #2 above.

See Also

Troubleshooting Mass balance and instability with Interconnected Pond Modeling (ICPM)

Calculation failure or bad results with a mix of ICPM and Level Pool ponds

Pond constant Infiltration results problems with ICPM