# Pump

Pump water from a source node to a destination node. The set flow rate will be pumped unless the intake storage is less than \(10~m^3\), in which case the flow rate will be linearly reduced to \(0~m^3/s\). The intake must be either a Basin or LevelBoundary. When PID controlled, the pump must point away from the controlled basin in terms of edges.

# 1 Tables

## 1.1 Static

column | type | unit | restriction |
---|---|---|---|

node_id | Int32 | - | sorted |

control_state | String | - | (optional) sorted per node_id |

active | Bool | - | (optional, default true) |

flow_rate | Float64 | \(\text{m}^3/\text{s}\) | non-negative |

min_flow_rate | Float64 | \(\text{m}^3/\text{s}\) | (optional, default 0.0) |

max_flow_rate | Float64 | \(\text{m}^3/\text{s}\) | (optional) |

min_upstream_level | Float64 | \(\text{m}\) | (optional) |

max_downstream_level | Float64 | \(\text{m}\) | (optional) |

# 2 Equations

The behavior of a Pump is simple if these nodes are not PID controlled. Their flow is given by a fixed flow rate \(q\), multiplied by reduction factors:

\[ Q = \mathrm{clamp}(\phi Q_\text{set}, Q_{\min}, Q_{\max}) \]

- \(Q\) is the realized Pump flow rate.
- \(Q_\text{set}\) is the Pump’s target
`flow_rate`

. - \(Q_{\min}\) and \(Q_{\max}\) are the Pump
`min_flow_rate`

and`max_flow_rate`

. - \(\phi\) is the reduction factor, which smoothly reduces flow based on all of these criteria:
- The upstream volume is below \(10 m^3\).
- The upstream level is below
`min_upstream_level`

+ \(0.02 m\) - The downstream level is above
`max_downstream_level`

- \(0.02 m\)