Modeling a Pump Start-Up Transient Event in HAMMER (V8i and CONNECT Edition)

Applies To 
Product(s): HAMMER
Version(s): CONNECT Edition, V8i
Area:  Modeling
Original Author: Jesse Dringoli, Bentley Technical Support Group



This TechNote describes the process by which you can model a pump start-up transient event in HAMMER CONNECT Edition and HAMMER V8i. It also provides an example model file for demonstration. This model can also be found in the Samples folder in the HAMMER installation folder: C:\Program Files (x86)\Bentley\HAMMER\Samples.



In older version of HAMMER (V8 XM), a lengthy procedure was required to model a pump startup: (See Modeling a Pump start-up transient event in Bentley HAMMER V8 XM) The user needed to first obtain the rated operating point of the pump by turning it on, then turn the pump off, copy the initial conditions to the user defined fields and enter the rated head/flow, along with valve initial status. This can be cumbersome in some situations. For this reason, HAMMER V8i introduced a new transient pump type called "Pump Start - variable speed/torque." This allows you to specify the rated head and flow of the pump without having to specify initial conditions. This can greatly simplify the steps need to model a pump start-up event.

Setting up the Model for a Pump Start-up

Before performing these steps, ensure that the demands, physical properties, and other settings in the model describe the condition that you would like to represent. If you would like to see the transient effects of the pump turning on during high demands and low tank levels, ensure that the demands and tank settings are adjusted as such. Ensure that the efficiency and transient rotational speed in your pump definition represent the "nominal" conditions. The speed should be set to the speed at which the pump produces the flow and head seen when the pump is on (usually full speed), and the efficiency should be the efficiency at that nominal flow and head.

This walk-through also assumes a steady-state analysis for the initial conditions and that you have storage downstream of the pump in question, or other pumps, either of which could supply the demands you have entered when the pump in question is off. If there is no other source of flow and your pump is off, you may receive a "Disconnected demand nodes" user notification, which could keep you from getting accurate transient results.


1. First, turn the pump on by selecting "On" as the "Status (Initial)" under the Initial settings section of its properties.

2. Go to Analysis > Compute Initial conditions. This computes pressure engine to allow you to see the pump flow and head when the pump is on. to see the point where it would operate on its characteristic curve, when it turns on.

3. Double-click the pump in question to view the properties. Under the "Results" section, you will see the pump operating point. Note the values for "Flow (Total)" and "Pump Head," as you will need them in the next step.

If you have any active valves in the model (TCV, GPV, PRV, PSV, FCV, PBV), in places where the flow is zero or near zero in the initial conditions, you will need to find the correct discharge coefficient during this step. To do so, either check for the computed discharge coefficient in the results section of the properties, or temporarily select "true" for "specify initial conditions?" in the transient calculation options, click the valve, then go to Tools > Copy Initial Conditions, choose "selection", then OK - you will now see the discharge coefficient in the "transient (initial)" section of the properties. Record this value and set the "specify initial conditions?" calculation option back to "false". For any valves that you need to do this, morph them into a TCV, choosing "discharge coefficient" as the type, "Active" as the initial status, then enter the discharge coefficient that you recorded. If you do not do this, then HAMMER may use a discharge coefficient that will be inaccurate for higher flow rates once the pump turns back on. (since it will be based on zero or near-zero flow).

4. Under the "Transient (Operational)" section of the pump properties, select "Pump Start - Variable Speed/Torque" as the "Pump Type (Transient)" and enter the appropriate diameter. If the pump has a built-in check valve, enter "0" for the "Time (For Valve to Operate)". Alternatively, you can enter the time that it takes for the built-in valve to open (5 sec, 10 sec, 30 sec, etc...). To simulate a pump with no check valve enter a very small number like 0.1 seconds, so the valve opens immediately. Most likely you will enter zero for this. This is an important consideration - please read this article for more.

5. Enter the pump flow and pump head found in step 3, in the "Flow (nominal)" and "Head (nominal)" fields.

6. Change the pump's Status (Initial) under the initial settings to "Off" and re-compute initial conditions.

7. Now we must define when and how fast the pump starts up. Go to Components > Patterns to open the Pattern manager. Right click on "Operational (Transient, pump)" select "New" and enter a name. On the right side of this window, enter zero for the starting multiplier, since the starting speed multiplier should be zero (meaning the pump is off). In the bottom-right table, define the pattern by entering time values and the corresponding speed multiplier.

IMPORTANT NOTE: The multipliers you enter here multiply against either the speed or the electrical torque, depending on the selection you make for the pump's "Control Variable." If you choose Speed (the default), the multipliers will multiply against the full speed entered in the pump definition, so 1.0 means full speed. This means that you cannot simply "flip the switch" in the pattern and have it go instantly from zero to 1.0 (or within a very small time frame) as it would normally take some time for the pump to ramp up to full speed. In the example below, the speed jumps from zero to 1.00 (full speed) between 5 and 10 seconds, and then stays on for the duration of the simulation. If the pump takes short or longer to ramp up, then the pattern needs to be adjusted accordingly

8. Close the pattern manager and select the pattern that you just created, from the "Operating Rule" drop down in the pump properties. At this point, the pump properties should look similar to this:

9. The model is now correctly set up and you can compute the transient simulation (Analysis > Compute).

Note: If your pump is a variable speed pump ("Is variable speed pump?" = "True"), then you may encounter a notification stating that the rotational speed must be greater than zero. If you encounter this problem, you will need to re-run the initial conditions with the VSP turned on, note the computed relative speed factor, enter this as the "Relative Speed Factor (Initial)" and set the initial status back to "Off". Then, set "Is variable speed pump?" to "False", re-compute initial conditions, and then compute the transient simulation.

Viewing the Results 

The results of this model can be viewed just like any other transient simulation. Go to Analysis > Transient Results Viewer. To view a graph of head and flow for the pump, go to the Time History for the pipe end adjacent to the pump:

You can also view a profile through the pump to some downstream point to see how the system reacts to the pump starting up.

You can also select a transient profile and click the Animate button at the top of the profile. This will show you the impact of the pump starting up along the profile over time. This can be especially useful in cases where a transient event may occur because of the pump starting up. In doing this, you can see that the maximum pressure occurs at around 12 seconds. As the animation moves forward in time, it settles on a lower value.

As you can see, there are some problems with vapor pockets forming upstream of the pump when it starts up. A surge tank may be required in this case.

Note that you can also view extended data specific to the pump by entering a number for the "Report Period" attribute of the pump properties. For example, entering a value of 10 would mean that extended data will be reported every 10 time steps. To view this, open the Transient Results Viewer and go to the Extended Node Data tab. Certain element types have available extended data, including pumps. Select the pump and the available attribute (in this case Speed), and you can see how the pump speed will change with time.

You can view this report by going to Report > Transient Analysis Reports > Transient Analysis Detailed Report. At the very bottom of this text report, you will see the table of flow, speed, upstream and downstream head:


Modeling a pump startup followed by shutdown, or shutdown followed by startup

To model a pump start up followed by a shut down, follow the same steps above, but configure your transient operating rule to drop the multiplier back down to zero at the time when the pump shuts down (after some delay). Details on the steps for this can be found here:

Modeling a pump startup and shutdown transient event in the same simulation

Why is the Transient Simulation not Settling Exactly on the Nominal Head/Flow I entered?

In some cases, once the pumps turn on in the transient simulation, they may not settle exactly on the nominal head/flow that you saw when you ran a steady state with the pumps on. This can be due to many reasons. Here are some of the more common reasons:

  1. The model may not have had a chance to fully settle on its final steady state. Depending on the pipeline length and other factors, you may need to run the model for a longer duration in order for the transient waves to fully settle down on a final steady state period.
  2. If you are not ramping the pumps up to full speed but instead a relative speed factor other than 1.00, make sure the initial relative speed factor you entered is correct. The nominal head and flow are the pump head and flow corresponding to the relative speed value you put for "Relative Speed (Initial)," even if the initial status is off. Their values should be equal to the values seen if that pump were to be turned on (at the same initial relative speed factor). For example, say you want a pump to start in the off position, then ramp up to 50% of full speed. First, set the initial relative speed factor to 0.5, initial status of the pump to off, and transient pump type to pump startup. The nominal head/flow are set to the values seen in a steady state run at 0.5 relative speed. The transient pump pattern then goes from 0.0 to 1.0 multiplier. With that configuration, HAMMER understands that the nominal head/flow values correspond to a relative speed of 0.5. From the transient pump type, it knows that the pump will be initially off (zero flow/head) and that multipliers in the pattern multiply against the initial relative speed factor. This way, 0.0 represents the pump still being off and 1.0 represents the pump being at the initial relative speed factor, which corresponds to the nominal head/flow values.
  3. If you have any valves (GPV, TCV, PBV, FCV, PRV, PSV) that are active in the initial conditions, but in a location where there is zero flow due to the pumps being off, the calculated discharge coefficient (which the transient calculation engine uses) may not be an accurate reflection of that valve, when higher flow occurs. As seen earlier in this TechNote, you may need to compensate for any occurrences of this by finding the discharge coefficient in a steady state run with the pump(s) on, then replacing the valve with a TCV using that same discharge coefficient. Otherwise, the headloss across the valve in the transient simulation when the pump turns on will likely not match the steady state run that you based the nominal head/flow on. 
  4. The biggest cause of this difference is with HAMMER's handling of friction coefficients. The transient calculation engine uses the Darcy Weisbach friction factors (f), so a conversion is sometimes done. Because of that, differences can occur if you use another method such as Hazen-Williams. This conversion is always done, even if you are using the Darcy-Weisbach method for the initial conditions, since the coefficient you enter for each pipe is the roughness height (e), not the friction factor (f). In pipes with non-zero initial flow, the Darcy-Weisbach coefficient is calculated based on the headloss across the pipe. In pipes that have zero flow in the initial conditions (which may be the case for many of them, since the pump is off), the Darcy-Weisbach coefficient will be computed based on the entered Hazen-Williams or Darcy-Weisbach coefficient. However, calculation 'noise' can sometimes occur in the initial conditions, causing the flow in a pipe to be near-zero instead of exactly zero. In your transient calculation options, you will see the tolerance that HAMMER uses to determine pipes that have zero flow, to account for this situation. In some cases, you may need to either make the "accuracy" value smaller in your steady state calculation options, or increase the flow tolerance value in the transient calculation options. Similar to the valve discharge coefficient item, if the flows are near zero but above the flow tolerance, the coefficient that HAMMER computes to use for that pipe may be unreasonable (since it's based on a tiny headloss), especially when higher flows occur when the pumps are on. This situation can happen even if your pipe has a 'real,' non-zero flow that is relatively small. To check HAMMER's computed friction coefficients, open the "Output log" under Report > Transient Analysis Reports, and scroll down to the section titled "Pipe Information". Note that even if the zero flow pipes are correctly identified, the Darcy-Weisbach friction factor that is computed based on the user entered friction coefficient may still differ from that of the ones based off a positive flow pipe's start and stop head. To check for this difference, run the transient simulation with the pump on and check the aforementioned Output log. If they differ by a lot, you may consider the "Unsteady - Vitkovsky" Transient friction method in the transient calculation options. Another approach to handle this would be to run the initial conditions with the pump on, record the friction factors from the output log, set the "Specify Initial Conditions?" calculation option to "True", run the initial conditions with the pump off, use the "Copy Initial Conditions" tool from the Tools menu (Tools > Tools > More > Copy Initial Conditions), then modify the transient initial flows so they are zero (when they should be) and initial friction factor (f) to the values seen in the output log with the pump on. This will force the pipes to use the correct friction factors. Note that version (and below) of HAMMER have a known issue with the way that the friction factors are computed for zero flow pipes. A patch set is available for this version, which will be incorporated into future versions.
  5. Similar to the last item, if you have significant minor loss coefficients on pipes that have zero flow in the initial conditions, you may need to account for them with a different method. The reason is because those pipes will have their friction factor computed based on the entered friction factor only and will not account for the minor loss coefficient. Headloss across the pipe during the transient simulation will be based on the friction factor only. So, the pump may operate at a higher flow and lower head than you would expect, since it doesn't have as much losses to overcome once the pump is on. In this case, you may need to insert a TCV node and enter the headloss coefficient or insert an Orifice Between Pipes element and enter the flow and headloss seen during the initial conditions when the pump was on.
  6. If you have any tanks in your model, make sure their hydraulic grade is correct in the steady state run that you retrieved the pump nominal head/flow from. For example, you may want to choose "True" for the hydropneumatic tank property. That way, the HGL at that tank when your pump is on during the initial conditions will be set to the hydraulic grade value that it should settle on. Then, when the pump is set to Off for the initial conditions calculation, either keep the tank treated as a junction with the correct initial gas volume entered, or choose not to treat it as a junction, and enter the hydraulic grade that it would settle on when the pump is off.
  7. It is important to understand that HAMMER uses a special four-quadrant pump characteristic curve during the transient simulation, not the pump definition you entered for the initial conditions. These four-quadrant curves are based on the specific speed selection in the Transient tab of the your pump definition and allows a pump to operate in all four quadrants (which can sometimes happen in a transient). The values from these curves are relative to your nominal head and flow, so for relative speed factors other than the one used for your nominal head and flow, it can result in slight differences. Since a pump start-up case will be settling on the nominal head and flow, this should not make for a significant difference. However, a small difference could occur if the nominal operating point does not fall exactly on the four-quadrant curve.
  8. In the pump properties, check the value for "Time (For Valve to Operate)". For pumps with zero initial flow, this represents the time to OPEN the valve. So, either enter a small number or enter zero, to represent a check valve. If you accidentally entered a large number here, the pump will not operate at the expected point since it will be working against a closed or partially closed valve.

If all else fails, you could consider starting your transient simulation with the pumps on, then use the variable speed transient pump type to have them turn off then turn back on again. You can use the "Report History After" transient calculation option to have the transient reports begin after the pumps have settled in their off position.


My pump operating rule is not be followed as expected

This may be due to the "Time (For Valve to Operate)". See this link for details:

Operating Rule not being followed after computing pump shutdown or start up

The pump is turning on during the initial conditions calculation

If the pumps is initially off, but turning on when you compute the initial conditions calculations, you likely have a control applied to the pump. By default, the initial conditions calculation will take into account simple controls in the Controls manager. To help with this, you can set the Steady State/EPS calculation option setting "Use simple controls during steady state run?" to False. The controls will then be ignored if you are computing a steady state run.

Flow from pump is delayed after pump startup

It typically takes some time for the pump to overcome the discharge hydraulic grade before is can pass flow. See this link for details:

Flow from pump is delayed after pump startup

Startup appears to occur too quickly / Initial surge too high

If the pump appears to start up too quickly and the initial positive pressure spike appears to be higher than expected, it could be related to the Control Variable and the Operating Rule. See this link for details:

Pump Startup occurs too quickly / initial upsurge too severe

Error about pressure less than vapor pressure at high points

If there are high points in the system, the initial conditions may not reflect the true system conditions with the pump off. See this link for details:

"Initial pressure less than vapor pressure. At the pipe end(s), the elevation(s) or head(s) are incorrect"

Example Model

The below model is an example of a pump startup in HAMMER. Note:

  • This example is included in recent versions of HAMMER, in the "Samples" folder within the installation folder
  • The link below is to a version that can be opened in any HAMMER V8i or CONNECT Edition build and above. 
  • Additional information can be found in the Project Properties
  • You must be signed in to download the file. The link will not work if you are not signed in.
  • This model is for illustrative purposes only

Click to Download

See Also

Modeling a pump shut down event in Bentley HAMMER

Operating Rule not being followed after computing pump shutdown or start up

Pump Startup occurs too quickly / initial upsurge too severe

Modeling a pump startup and shutdown transient event in the same simulation

Modeling a Pump start-up transient event in Bentley HAMMER V8 XM