Why can’t I specify both head and flow at a pump?

Product(s): WaterGEMS, WaterCAD
Version(s): All
Area: Modeling
Original Author: Tom Walski, Bentley Systems


On some occasions, a user may want to specify both the head and flow at a pump. To understand why this can’t be done, you need to understand how the hydraulic solver works.


The model has one unknown for every hydraulic element. For pipes, it is flow and for nodes, it is either head (junctions, hydrants) or flow (reservoir, tank). This enables the model to set up a matrix with n-rows and n-columns corresponding to n-nonlinear equations and n-unknowns.

If the user specifies both head and flow at a pump, then the matrix is over-specified, and it is very likely, that the problem can’t be solved. Therefore, flow and head can’t be simultaneously specified at a pump.

There are three ways to represent a pump in the model, the “correct way” using the pump curve and two shortcuts—known inflow or known head.

  1. By specifying a pump head curve, there are now two unknowns but there is another equation, so the matrix is well behaved.

  2. By specifying the flow (negative demand), the model can match the pump flow, but the head may not be realistic, and the user must check if it falls near the pump curve.

  3. By specifying the head (HGL), the model can match the pump discharge head, but the flow may not be realistic, and the user must check if it falls near the pump curve.

It is generally best not to force a flow or head from a pump and instead, let the model find the correct operating point (flow and head) on the curve. This is the only approach that will yield correct energy costs.

However, there may be cases where using one of the shortcuts may work.  For example, in the distant future in a planning study, the actual pump will not be known but the user can reasonably assume that the hydraulic grade from the pump station will be near a certain value. In that case a fixed head may be acceptable. In another case during model calibration, the user may know pump station outflow exactly from SCADA data and is not interested in calibrating the pump curve and only wants to calibrate head in the system over time. The pump station discharge flow can be represented as an inflow (negative demand) with a pattern.

See Also

How are pumps handled in each OpenFlows product?

Using pump flow test data to create a pump curve

General Pump Selection Process

Understanding System Head Curves

Can I set the value of flow and pump head to a specific number like the value from SCADA? (Forum discussion)