Pump¶
![]()
Represents a centrifugal (or other type) pump unit operation that increases the pressure of a liquid stream. Supports multiple calculation modes including fixed pressure rise, fixed outlet pressure, energy-stream-driven, power-driven, and performance-curve-based calculations. Adiabatic efficiency and NPSH are computed alongside outlet conditions.
DWSIM.UnitOperations.UnitOperations.Pump
Assembly DWSIM.UnitOperations.dll · Object ← BaseClass ← UnitOpBaseClass ← Pump
At a glance¶

| Port | Index | Connected in the example |
|---|---|---|
| Inlet, material | 0 |
Water-in |
| Inlet, energy | 1 |
P-1 power |
| Outlet, material | 0 |
Water-out |
Example¶
This code runs on every build of this site, and the output below is what it printed.
fs = (Flowsheet.Create("PumpExample")
.WithCompound("Water")
.WithPropertyPackage(PropertyPackages.SteamTables))
feed = (fs.AddMaterialStream("Water-in")
.At(Q.Kelvin(298.15), Q.Bar(1.0))
.WithMassFlow(Q.KgPerSecond(10.0)))
product = fs.AddMaterialStream("Water-out")
power = fs.AddEnergyStream("P-1 power")
pump = (fs.AddPump("P-1")
.WithOutletPressure(Q.Bar(10.0))
.WithEfficiencyPercent(75.0)
.ConnectFeed(feed)
.ConnectProduct(product)
.ConnectEnergyFeed(power, 1)) # energy inlet is port 1
fs.AutoLayout()
fs.Solve()
print(f"Power required = {pump.PowerKW:.2f} kW")
print(f"Outlet T = {product.TemperatureK - 273.15:.3f} C")
print(f"Head = {pump.Object.Head:.1f} m")
print(f"NPSH available = {pump.Object.NPSH:.2f} m")
Output
DWSIM 10.2.11.0, generated 2026-10-08.
Calculation modes¶
Set with CalcMode (CalculationMode). The mode decides which properties are inputs; every other one is a result and is overwritten by the calculation.
| Mode | Value | What it does | Inputs |
|---|---|---|---|
Delta_P |
0 | Calculate results from a specified pressure rise (delta P). | PROP_PU_0, PROP_PU_1 |
OutletPressure |
1 | Calculate results from a specified outlet pressure. | PROP_PU_1, PROP_PU_5 |
EnergyStream |
2 | Calculate results from the power supplied via a connected energy stream. | PROP_PU_1 |
Curves |
3 | Calculate results using head vs. flow performance curves. | PROP_PU_1, PROP_PU_8 |
Power |
4 | Calculate results from a specified shaft power value. | PROP_PU_1, PROP_PU_3 |
PositiveDisplacement |
5 | Positive displacement machine: the flow comes from the displacement and the speed, and the system decides the discharge pressure. | PROP_PU_1, PROP_PU_5, PROP_PU_8, PROP_PU_9, PROP_PU_10, PROP_PU_11 |
How the pump calculates¶
In the Delta_P and OutletPressure modes the pump knows the discharge pressure and works out the power. With the inlet liquid density \(\rho\), mass flow \(W\) and efficiency \(\eta\):
The outlet temperature comes from a PH flash at \((P_2, H_2)\). The part of the shaft work lost to the efficiency stays in the liquid as heat, which is why the outlet is slightly warmer than the inlet. The available NPSH uses the bubble pressure of the feed at the inlet temperature:
In the Power and EnergyStream modes the power is known (typed in, or read from the energy stream) and the pressure rise is the result. The same energy balance holds: the efficient part of the power raises the pressure, and all of it reaches the liquid as enthalpy.
Given the same operating point, all four modes return the same pressure, power and outlet temperature.
PROP_PU_4 and PROP_PU_7 both return the available NPSH. Both IDs stay so that existing
flowsheets, sensitivity analyses and scripts keep working.
Which mode should I use?
| You know | Mode | Inputs |
|---|---|---|
| the pressure rise | Delta_P |
PROP_PU_0, PROP_PU_1 |
| the discharge pressure | OutletPressure |
PROP_PU_5, PROP_PU_1 |
| the motor power | Power or EnergyStream |
PROP_PU_3 or the energy stream, PROP_PU_1 |
| the manufacturer's curves | Curves |
head/efficiency/NPSHr curves, PROP_PU_8 |
| a reciprocating or gear pump | PositiveDisplacement |
displacement, speed, relief pressure |
Properties¶
IDs accepted by GetPropertyValue, SetPropertyValue, the sensitivity analysis, the optimizer, the Adjust block and dynamic events. Units are SI; pass another unit system to GetPropertyValue to get them converted.
| ID | Name | Unit (SI) | Input in |
|---|---|---|---|
PROP_PU_0 |
Pressure Increase | Pa | Delta_P |
PROP_PU_1 |
Efficiency | % | all modes |
PROP_PU_2 |
Temperature Difference | K (difference) | result |
PROP_PU_3 |
Power Required | kW | Power |
PROP_PU_4 |
Available NPSH | m | result |
PROP_PU_5 |
Outlet Pressure | Pa | OutletPressure, PositiveDisplacement |
PROP_PU_6 |
Head | m | result |
PROP_PU_7 |
NPSH Available | m | result |
PROP_PU_8 |
Operating Speed | rpm | Curves, PositiveDisplacement |
PROP_PU_9 |
Displacement per Revolution | m3 | PositiveDisplacement |
PROP_PU_10 |
Volumetric Efficiency | % | PositiveDisplacement |
PROP_PU_11 |
Relief Valve Setting | Pa | PositiveDisplacement |
PROP_PU_12 |
Delivered Volumetric Flow | m3/s | result |
Dynamic mode¶
Extra properties used when the flowsheet runs in dynamic mode.
| Name | Unit |
|---|---|
| Flow Conductance | [kg/s]/[Pa^0.5] |
| Volume | m3 |
| Minimum Pressure | Pa |
| Initialize using Inlet Stream | |
| Reset Content | |
| Rotational Inertia | |
| Current Speed | |
| Target Speed | |
| Motor Torque | |
| Rated Speed | |
| Integrate Casing Holdup |
Learn more¶
-
User guide
-
Tutorials
-
FluentAPI
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
Pump(): Initializes a new default instance of the Pump class.
Initializes a new default instance of the Pump class.
Pump(string, string): Initializes a new instance of the Pump class with a name and description.
Initializes a new instance of the Pump class with a name and description.
| Parameter | Type | Description |
|---|---|---|
name |
String |
The component name for this pump. |
description |
String |
A brief description of this pump instance. |
Properties¶
CalcMode: Gets or sets the active calculation mode for the pump.
Gets or sets the active calculation mode for the pump.
CurveEff: Gets or sets the efficiency at the operating point read from the efficiency curve (%).
Gets or sets the efficiency at the operating point read from the efficiency curve (%).
CurveFlow: Gets or sets the volumetric flow rate at the pump's operating point on the performance curve (m3/s).
Gets or sets the volumetric flow rate at the pump's operating point on the performance curve (m3/s).
CurveHead: Gets or sets the pump head at the operating point read from the head curve (m).
Gets or sets the pump head at the operating point read from the head curve (m).
CurveNPSHr: Gets or sets the NPSHr at the operating point read from the NPSHr curve (m).
Gets or sets the NPSHr at the operating point read from the NPSHr curve (m).
CurvePower: Gets or sets the shaft power at the operating point read from the power curve (kW).
Gets or sets the shaft power at the operating point read from the power curve (kW).
CurveSets: Gets or sets the measured curve sets of a variable-speed pump, keyed by the speed (RPM) each one was measured at.
Gets or sets the measured curve sets of a variable-speed pump, keyed by the speed (RPM) each one was measured at. PumpCurveSet is always one of the measured sets, at its own ImpellerSpeed; this dictionary holds the others. While it is empty the pump behaves exactly as a single-curve pump, covering other speeds with the affinity laws.
CurveSysHead: Gets or sets the system resistance head at the operating point (m).
Gets or sets the system resistance head at the operating point (m).
DeliveredMassFlow: Gets the mass flow the machine displaced on the last run (kg/s).
Gets the mass flow the machine displaced on the last run (kg/s).
DeliveredVolumetricFlow: Gets the volumetric flow the machine displaced on the last run (m3/s).
Gets the volumetric flow the machine displaced on the last run (m3/s).
DeltaP: Gets or sets the pressure rise across the pump (Pa).
Gets or sets the pressure rise across the pump (Pa).
DeltaQ: Gets or sets the power consumed by the pump (kW).
Gets or sets the power consumed by the pump (kW).
DeltaT: Gets or sets the temperature rise across the pump (K).
Gets or sets the temperature rise across the pump (K).
Displacement: Gets or sets the volume the machine displaces per revolution (m3/rev), used by the PositiveDisplacement calculation...
Gets or sets the volume the machine displaces per revolution (m3/rev), used by the PositiveDisplacement calculation mode. The flow it delivers is this volume times the speed times the volumetric efficiency, whatever the discharge pressure.
EffectiveSpeed: Returns the speed the pump is running at (RPM), falling back to the speed the curves were measured at when...
Returns the speed the pump is running at (RPM), falling back to the speed the curves were measured at when OperatingSpeed is left at zero.
Efficiency: Gets or sets the adiabatic pump efficiency as a percentage (0-100).
Gets or sets the adiabatic pump efficiency as a percentage (0-100).
Eficiencia: Gets or sets the adiabatic efficiency of the pump as a percentage (0-100).
Gets or sets the adiabatic efficiency of the pump as a percentage (0-100).
EquipmentTypes: Gets the list of pump equipment sub-types available for this unit operation.
Gets the list of pump equipment sub-types available for this unit operation.
FixOnDeltaP: Gets or sets a value indicating whether the pump should fix the calculation on delta pressure rather than...
Gets or sets a value indicating whether the pump should fix the calculation on delta pressure rather than recalculating it from other specifications.
HasPropertiesForDynamicMode: Gets a value indicating that this unit operation has dedicated dynamic-mode properties.
Gets a value indicating that this unit operation has dedicated dynamic-mode properties.
Head: Gets or sets the pump head (pressure rise expressed as liquid column height, in m).
Gets or sets the pump head (pressure rise expressed as liquid column height, in m).
HeatDuty: Gets or sets the power consumed by the pump (kW).
Gets or sets the power consumed by the pump (kW).
IgnorePhase: Gets or sets a value indicating whether the pump ignores the phase check on the inlet stream, allowing calculation...
Gets or sets a value indicating whether the pump ignores the phase check on the inlet stream, allowing calculation even when vapor is detected.
MobileCompatible: Gets a value indicating that this pump unit operation is compatible with the DWSIM mobile platform.
Gets a value indicating that this pump unit operation is compatible with the DWSIM mobile platform.
NominalFrequency: Gets or sets the supply frequency (Hz) that drives the pump at the speed its reference curves were measured at.
Gets or sets the supply frequency (Hz) that drives the pump at the speed its reference curves were measured at. The editors label each curve set with the frequency an inverter would have to deliver for it, which is how a variable-frequency dataset is published.
NPSH: Gets or sets the available Net Positive Suction Head (NPSH) at the pump inlet (m).
Gets or sets the available Net Positive Suction Head (NPSH) at the pump inlet (m).
ObjectClass: Gets or sets the simulation object class category (PressureChangers).
Gets or sets the simulation object class category (PressureChangers).
OperatingSpeed: Gets or sets the rotational speed the pump is running at (RPM), used to scale the performance curves through the...
Gets or sets the rotational speed the pump is running at (RPM), used to scale the performance curves through the affinity laws when the Curves calculation mode is active. The curves themselves are taken to have been measured at ImpellerSpeed. Zero means the pump runs at the speed the curves were measured at, leaving them unscaled.
OutletTemperature: Gets or sets the calculated outlet temperature of the pump (K).
Gets or sets the calculated outlet temperature of the pump (K).
Pout: Gets or sets the calculated outlet pressure of the pump (Pa).
Gets or sets the calculated outlet pressure of the pump (Pa).
PressureIncrease: Gets or sets the pressure rise across the pump (Pa).
Gets or sets the pressure rise across the pump (Pa).
PumpCurveSet: Gets or sets the performance curve set used when the Curves calculation mode is active.
Gets or sets the performance curve set used when the Curves calculation mode is active.
PumpType: Gets or sets the pump equipment sub-type (e.g.
Gets or sets the pump equipment sub-type (e.g. "Centrifugal", "Gear").
ReliefPressure: Gets or sets the setting of the relief valve of a positive displacement machine (Pa).
Gets or sets the setting of the relief valve of a positive displacement machine (Pa). A displacement pump against a closed discharge has nothing to limit its pressure, so the relief is part of the machine. Zero leaves it unlimited.
SupportsDynamicMode: Gets a value indicating whether this unit operation supports dynamic simulation mode.
Gets a value indicating whether this unit operation supports dynamic simulation mode.
TemperatureChange: Gets or sets the temperature change across the pump (K).
Gets or sets the temperature change across the pump (K).
VolumetricEfficiency: Gets or sets the volumetric efficiency of a positive displacement machine (%), the share of the swept volume that...
Gets or sets the volumetric efficiency of a positive displacement machine (%), the share of the swept volume that leaves through the discharge rather than slipping back past the clearances.
Methods¶
Calculate(object): Performs the pump steady-state calculation.
Performs the pump steady-state calculation. Determines outlet pressure, temperature, enthalpy, power consumption, and NPSH based on the active CalcMode.
| Parameter | Type | Description |
|---|---|---|
args |
Object |
Optional array of simulation objects: (0) inlet material stream, (1) outlet material stream, (2) inlet energy stream. Pass Nothing to resolve streams from the flowsheet connections. |
CloneXML(): Creates a deep copy of this pump object by round-tripping through XML serialization.
Creates a deep copy of this pump object by round-tripping through XML serialization.
CloseEditForm(): Closes the pump property editor form if it is currently open.
Closes the pump property editor form if it is currently open.
CreateDimensionsList(): Initializes the physical dimensions list used for dynamic sizing and scaling of the pump.
Initializes the physical dimensions list used for dynamic sizing and scaling of the pump.
CreateDynamicProperties(): Creates the properties the pump uses in dynamic mode: casing conductance and volume, minimum pressure, holdup...
Creates the properties the pump uses in dynamic mode: casing conductance and volume, minimum pressure, holdup initialization, and the speed model (inertia, current, target and rated speed, motor torque).
DeCalculate(): Resets the outlet material stream and connected energy stream to an uncalculated state.
Resets the outlet material stream and connected energy stream to an uncalculated state.
DisplayEditForm(): Opens the pump property editor form, or activates it if it is already open.
Opens the pump property editor form, or activates it if it is already open.
GetCalculationModes(): Returns the available calculation mode names and their IDs for this unit operation.
Returns the available calculation mode names and their IDs for this unit operation.
GetChartModel(string): Builds an OxyPlot model of one curve kind, one series per measured speed, in the flowsheet's units, with the...
Builds an OxyPlot model of one curve kind, one series per measured speed, in the flowsheet's units, with the operating point marked.
| Parameter | Type | Description |
|---|---|---|
name |
String |
GetChartModelNames(): Chart names the PFD chart object can embed: the performance curves of every measured speed with the operating point.
Chart names the PFD chart object can embed: the performance curves of every measured speed with the operating point.
GetDisplayDescription(): Returns the localized description string for the pump unit operation.
Returns the localized description string for the pump unit operation.
GetDisplayName(): Returns the localized display name for the pump unit operation.
Returns the localized display name for the pump unit operation.
GetIconBitmapBytes(): Returns the raw bytes of the pump icon image for serialization or transfer purposes.
Returns the raw bytes of the pump icon image for serialization or transfer purposes.
GetProperties(PropertyType): Returns all property identifiers supported by this pump for the given property type.
Returns all property identifiers supported by this pump for the given property type.
| Parameter | Type | Description |
|---|---|---|
proptype |
PropertyType |
The category of properties to retrieve. |
GetPropertyDescription(string): Returns a user-friendly description for a named pump property, used in property grids and tooltips.
Returns a user-friendly description for a named pump property, used in property grids and tooltips.
| Parameter | Type | Description |
|---|---|---|
p |
String |
The display name of the property (e.g. "Calculation Mode", "Pressure Increase"). |
GetPropertyUnit(string, IUnitsOfMeasure): Returns the display unit string for the specified property.
Returns the display unit string for the specified property.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
The property identifier string (e.g. "PROP_PU_0"). |
su |
IUnitsOfMeasure |
The unit system to retrieve units from. Defaults to SI if Nothing. |
GetPropertyValue(string, IUnitsOfMeasure): Returns the value of the specified property, converted to the given unit system.
Returns the value of the specified property, converted to the given unit system.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
The property identifier string (e.g. "PROP_PU_0"). |
su |
IUnitsOfMeasure |
The unit system to convert the value into. Defaults to SI if Nothing. |
GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text results report for this pump, including inlet conditions and calculated results.
Generates a plain-text results report for this pump, including inlet conditions and calculated results.
| Parameter | Type | Description |
|---|---|---|
su |
IUnitsOfMeasure |
The unit system used for formatting output values. |
ci |
CultureInfo |
The culture info used for number formatting. |
numberformat |
String |
A .NET numeric format string (e.g. "G6") applied to output values. |
GetStructuredReport(): Generates a structured report for this pump as a list of typed report items, suitable for rendering in tabular or...
Generates a structured report for this pump as a list of typed report items, suitable for rendering in tabular or hierarchical UI components.
LoadData(List<XElement>): Restores the pump's state from a list of XML elements, including legacy curve data.
Restores the pump's state from a list of XML elements, including legacy curve data.
| Parameter | Type | Description |
|---|---|---|
data |
List<XElement> |
The XML element list produced by a previous SaveData call. |
MeasuredCurveSets(): Returns every measured curve set, the reference one included, ordered by the speed it was measured at.
Returns every measured curve set, the reference one included, ordered by the speed it was measured at. A set in CurveSets at the reference speed replaces the reference set, so the same speed is never listed twice.
RunDynamicModel(): Advances the pump one integration step in dynamic mode.
Advances the pump one integration step in dynamic mode. The speed ramps towards the target speed, limited by the motor torque and the rotational inertia. By default the pump then acts as a pressure-flow element (a flow source in PositiveDisplacement mode); with Integrate Casing Holdup set, the casing volume is integrated as a capacity.
SaveData(): Serializes the pump's state to a list of XML elements.
Serializes the pump's state to a list of XML elements.
SetCalculationMode(int): Sets the active calculation mode by numeric ID.
Sets the active calculation mode by numeric ID.
| Parameter | Type | Description |
|---|---|---|
modeID |
Int32 |
Integer identifier corresponding to a CalculationMode value. |
SetPropertyValue(string, object, IUnitsOfMeasure): Sets the value of the specified property, converting from the given unit system to SI.
Sets the value of the specified property, converting from the given unit system to SI.
| Parameter | Type | Description |
|---|---|---|
prop |
String |
The property identifier string (e.g. "PROP_PU_0"). |
propval |
Object |
The new value to assign, expressed in the units of su. |
su |
IUnitsOfMeasure |
The unit system of the supplied value. Defaults to SI if Nothing. |
UpdateDimensionsList(): Updates the physical dimensions list with the current calculated values from the pump.
Updates the physical dimensions list with the current calculated values from the pump.
UpdateEditForm(): Refreshes the pump editor form with the latest calculated values, if it is open.
Refreshes the pump editor form with the latest calculated values, if it is open.
Fields¶