1D flow over structures

Structures control the behaviour of water systems, therefore it is crucial to take these into account. 3Di recognizes various types of structures, pumps, weirs, orifices and culverts. To guarantee the structures are implemented in your 3Di model, structures are defined as connections between two computational nodes, similar to channels and pipes. The sections below give an overview of the structures available in 3Di. Moreover, structures can be controlled. This means that characteristics can be adjusted based on simulation results. This can be done using the, in 3Di implemented, control functions (Control Structures) or by controls designed by the user via the 3Di API.


Pumps in 3Di drain water from one location to another location, within or outside the model domain. The behaviour of a pump is specified by defining the start and stop levels of the pump and the pump capacity. Naturally, water cannot be drained by a pump when it is not there. In real life, pump capacities are often larger than its supply. This behaviour will be seen in your model results. However, this behaviour causes alternating water levels and discharges. This happens in real life and also in your simulations on short time scales, but will effectively not affect the behaviour of your system. In the computational core, we can adjust the pump capacity to ensure a more balanced of the pump. This functionality is called the pump_implicit_ratio and can be switched off or on. In default it is switched on. More about this functionality can be found in this section in the documentation: Settings for Matrix solvers –> pump_implicit_ratio.


Fig. 62 Schematic display of a pump function

In 3Di, users can add pumps to a schematisation via a connection node. Characteristics for pumps can be set by configuring the attributes:

  • Capacity: Maximum discharge for which the pump is able to displace water from the suction node to the delivery node.

  • Start level: in case of water levels higher than the start level, the pump is switched on.

  • Lower stop level: in case of water level below the stop level, the pump is switched off. This level should be below the start level.

  • Upper stop level: in case of water levels above this level the pump is switched off as well. This is an optional value, but if it is used, it is always higher that the start level.

  • Type: Parameter to set whether the start and stop levels are defined at suction side or delivery side of the pump. [See Figure]

There are two methods to define a pump in a 3Di schematisation:

  1. Pump between two nodes: A pump between two nodes drains water from the node at suction side to the node at delivery side with the specified pump capacity. Depending on the type of pump the suction side or delivery side water levels determine the activity of the pump.

  2. End pump: For an end pump only the suction side node needs to be specified. With no node defined for the delivery side, all water being drained by this pump. All water pumped from the model is specified in the flow_summary.log as contribution to the global water balance. The pump characteristics to be specified are the same as for a pump type with start/stop levels at suction side. Since no delivery side node is present, it is not possible to specify a pump type with start stop level at delivery side.

Pumps in combination with structure controls

Pumps can be used in combination with controls. You can design a control that allows the water level at different or multiple locations determine the pumps behaviour, instead of purely local water levels. However, the local availability of water will always affect the pump capacity as well. As water that is not locally at the pump cannot be drained away. This is ensured by stopping the pump when the local water level is below the stop level. Your control affects the pumps’ behaviour, within the range of conditions for which the pump is designed.


Given a controlled pump at location X with a stop and start level of 0.0 mNAP and 2 mNAP, respectively. The trigger for the control is the water level from location A. For higher waterlevels the pump capacity is increased. However, in case the water level at X is below 0.0 mNAP, but at A in a active range, the pump will stop. The pump can only become active again for waterlevels at X above 2.0 mNAP.

Weirs and Orifices

Weirs are generally used to maintain and control the water level. Orifices connect two parts of channel networks. Both structures force the flow to converge strongly at the entrance and to diverge behind the structure. At the converging part of the flow, the assumption of conservation of momentum in 1D is invalid. Locally at the structure, conservation of energy is much more suited. The formulations for the flow over the weir and through the orifice are therefore based on Bernoulli’s principle. The computations of the flow of both structures follow the same reasoning. In the explanation below, the focus is on an open water rectangular weir, but similar steps are taken for structures with different open/closed cross-sections.

For a weir in open water the energy head balance reads:


where \(h\) is the local water depth, \(u\) the local cross-sectionally averaged velocity, \(g\) the gravitational acceleration and \(a\) the height of the crest. The sub-scripts refer to the flow domains, indicated in the figure below.


Fig. 63 Illustration of short crested weir and orifice under sub- and (super-)critical conditions; a simplified view of the 1D network and a sketch of the available discretized information.

In case of structures with closed profiles, in the equation of the energy balance \(h\) is not the water depth, but the energy height. For structures having closed profiles, the transition of water depth to energy height is automatically taken care of in case the area fills with water.

For robustness, 3Di schematizes structures as connections between two nodes, as can be seen in the third panel of the figure. This assumption implies that the water level on the location of the structure is unknown. To compute accurately the discharge over the structure, a difference is made between long crested and short crested structures. Both resulting formulations are based on Bernoulli’s principle, but for long crested structures, frictional losses are computed separately.

Short crested

The discharge over the structure is computed based on the effective cross-sectional area \(A_{eff}\) and the velocity over the structure \(u_{II}\). Two states of the flow can occur over the structure: sub- and (super)-critical flow. For both states, different assumptions are valid. However, for both states it is assumed that \(u_I\) is negligible compared to \(u_{II}\).

In case of (super-)critical flow, the downstream waterlevel does not affect the flow over the structure, as is the case under sub-critical conditions. The fourth panel of the figure shows the information known in a discretized world. In case the flow is critical, the water depth at the crest can be determined using the upstream waterlevel and the definition for critical flow:

\[h_{cr}= \frac{2}{3}(h_I-a) = h_{II}\]

The critical velocity over the structure is given by:

\[u_{II}= C_1 \sqrt{\frac{2}{3} g (h_I-a)}\]

\(C_1\) is a loss coefficient, which can be set depending on the type and the shape of the structure itself and the entrance. The effective cross-sectional area is in this case based on the critical water depth. For a simple rectangular cross-section:

\[A_{eff}= C_2 W \frac{2}{3}(h_I-a)\]

In which \(C_2\) is a loss coefficient due to contraction of the flow. For the total discharge in 3Di, the discharge under free flowing conditions is computed as:

\[Q_{cr} = C_1 \sqrt{\frac{2}{3} g (h_I-a)} C_2 W \frac{2}{3}(h_I-a) = C W g^{\frac{1}{2}} \left(\frac{2}{3}(h_I-a)\right)^{\frac{3}{2}}\]

Note, that the coefficients \(C_1\) and \(C_2\) are combined is the general discharge coefficient \(C\), which can be set by the user.

In case of sub-critical flows, the waterlevel downstream of the structure is important. Under these conditions the flow velocity over the structure is:

\[u_{II}= C_1 \sqrt{2 g (h_{I}-h_{II}-a)}\]

To determine the depth at the crest, it is assumed that the waterlevel at the crest is equal to the waterlevel downstream. Based on that assumption, the effective cross-section becomes:

\[A_{sub}= C_2 W h_{II}\]

Combining these equations, results in the discharge formulation.

\[Q_{sub} = C_1 \sqrt{2 g (h_I-h_{II})} C_2 W h_{II}= C W \sqrt{2 g (h_I-h_{II})} h_{II}\]

Long crested

For longer structures, frictional effects can become important. For the so-called broad-crested weirs and orifices an extra loss-term is added to Bernoulli’s equation. The frictional losses \(\Delta h_F\) are computed as:

\[\Delta h_F= \frac{c_f L u_{II}^2}{2 g R}\]

where \(c_f\) is the dimensionless friction coefficient, \(L\) the length of the structure and \(R\) is the hydraulic radius. The dimensionless friction coefficient can be based on either Manning or the Chézy formulation. It is also of importance that the structure length is correctly set. The computational core expects that this is the geometrical distance between the two connection nodes. The friction coefficient can be defined either by a Manning or a Chézy value.

An advantage of these formulations is that these do not limit the timestep during the simulation.

The attributes that define these structures are:

  • Crest level: The crest level of the weir. In case of an orifice this could be equal to the bottom level.

  • Crest type: Selects a short or broad crested weir/orifice formulation.

  • Discharge coefficient positive/negative: The coefficient used in the discharge formulation. Depending on the flow direction the coefficients could be different.

  • Cross-section definition: This defines the cross-section of the structure.


Culverts can connect parts of 1D networks and allow flow under roads or other obstacles. In contrast to orifices, the flow behaviour in a culvert is assumed to be determined by shape and much less dominated by entrance losses. The flow in culverts is assumed to be a pipe flow with possible changes in cross-section. Culverts can be used for longer sections of pipe-like structures and do not have to be straight. Shorter, straight culverts are best modelled as an orifice.

For culverts and orifices, the energy loss caused by the change in flow velocity at the entrance and exit are accounted for by 3Di. The discharge coefficients for culverts can be used to account for any additional energy loss.

The input parameters for culverts are similar to those for orifices, specified in the section above. Culverts use invert levels at the start and end instead of the crest level in weirs and orifices. The input parameters are all described in the spatialite database here.