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 links.
1 Tables
1.1 Static
| column | type | unit | restriction |
|---|---|---|---|
| node_id | Int32 | - | |
| 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) |
| control_state | String | - | (optional) |
1.2 Time
This table is the transient form of the Pump table. With this all parameters can be updated over time. In between the given times the values are block interpolated (forward fill), and outside the values are constant given by the nearest time value. Note that a node_id can be either in this table or in the static one, but not both.
| column | type | unit | restriction |
|---|---|---|---|
| node_id | Int32 | - | |
| time | DateTime | - | |
| 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_rateandmax_flow_rate. - \(\phi\) is the reduction factor, which smoothly reduces flow based on all of these criteria:
- The upstream volume is below the equivalent of a water depth of \(10 \;\text{cm}\) (change with solver setting
depth_threshold, the others below withlevel_difference_threshold). - The upstream level is below
min_upstream_level+ \(0.02 \;\text{m}\) - The downstream level is above
max_downstream_level- \(0.02 \;\text{m}\)
- The upstream volume is below the equivalent of a water depth of \(10 \;\text{cm}\) (change with solver setting