Pump Class |
A pump moves water within the network, with the ability to start and stop a specific water levels
A pump by default control itself based on the start/stop levels. These start/stop levels can be fixed, or they can also be controlled. If the start and stop levels are controlled, the MinStopLevel and MaxStartLevel is enforced and must be set. It is possible to explicitly stop the pump (ControlStop(Int32)), which will then disable the self-control based on the start/stop levels, i.e. the pump will not start automatically again.
The actual discharge of the pump can be one of:
Namespace: DHI.Mike1D.StructureModule
The Pump type exposes the following members.
Name | Description | |
---|---|---|
AccelerationTime |
Acceleration time
| |
ConstantFlow |
Set the constant flow rate
| |
CurrentStartLevel |
Current start level of pump. Initially the same as StartLevel, but may be changed during the simulation by various control strategies.
| |
CurrentStopLevel |
Current stop level of pump. Initially the same as StopLevel, but may be changed during the simulation by various control strategies.
| |
dDischargedDownStreamWaterLevel |
Calculated Discharge derivative with DownStreamWaterLevel. Downstream is relative to the direction of chainage.
The value is calculated by SetWaterLevels.
Unit: [m^2/s]
(Inherited from Structure.) | |
dDischargedUpStreamWaterLevel |
Calculated Discharge derivative with UpStreamWaterLevel. Upstream is relative to the direction of chainage.
The value is calculated by SetWaterLevels.
Unit: [m^2/s]
(Inherited from Structure.) | |
DecelerationTime |
Deceleration time
| |
Discharge |
Calculated Discharge. The value is calculated by SetWaterLevels.
Unit: [m^3/s]
(Inherited from Structure.) | |
DischargeControlActive |
Must be set to true to activate (external) control of discharge (through a PID control or similar).
Can not be combined with StartStopLevelControlActive | |
DownstreamWaterLevel |
Downstream water level.Downstream refers to the direction of chainage. The water level is set by use of
SetWaterLevels
Unit: [m]
(Inherited from Structure.) | |
ExtensionData |
Property used by (de)serializer, when it can not find proper target for
a data field. Support of forward compatible data contracts.
(Inherited from Structure.) | |
FlowArea |
Flow area through structure. Used by most (but not all) structures.
(Inherited from Structure.) | |
FlowFactor |
The discharge (and discharge derivatives) are scaled by the flow factor.
(Inherited from Structure.) | |
HQRelation |
QH relation for QdeltaH and QH pumps,
(dH, Q) or (H, Q) pairs. The XYTable ensures that dH (or H) is always increasing.
For QdeltaH, a positive dH is the height that water must be RAISED across the pump. When DischargeControlActive is set (e.g. PID controlled pump) this HQ relation is the maximum pump capacity. Set to null if no maximum capacity. | |
HQRelationMinimumCapacity |
QH relation for QH and QdeltaH pumps
Minimum discharge allowed for a discharge controlled pump (e.g. PID).
Set to null to disable.
| |
ID |
Structure ID
(Inherited from Structure.) | |
IDInUserUnit |
Used to get a consistent description of the structure. The ID comes in user units. Used e.g. when
reporting errors, warnings and hints.
(Inherited from Structure.) | |
Implicit |
Flag to control if the structure is implicit or explicit. If the structure is explicit
(Implicit == false) then the derivatives of the dicharge are always zero.
Default value: true
(Inherited from Structure.) | |
InvertLevelDownstream |
Invert level down stream
(Overrides StructureInvertLevelDownstream.) | |
InvertLevelUpstream |
Invert level up stream
(Overrides StructureInvertLevelUpstream.) | |
IsActive |
Return true if the pump is pumping
| |
IsSideStructure | Obsolete.
A side structure is connected to a reservoir downstream (chainage direction).
| |
IsVariableSpeed |
True if the pump supports variable speed operation (must be true for PID controlled pumps).
Default value: false
| |
Length |
Length of the structure.
Unit: [m]
Default value: 0m
(Inherited from Structure.) | |
Location |
Location property.
(Inherited from Structure.) | |
MaxStartLevel |
Maximum start level used if an external control is active. If an external control is active, then MinStopLevel
and MaxStartLevel must be set.
| |
MinStopLevel |
Minimum stop level used if an external control is active. If an external control is active, then MinStopLevel
and MaxStartLevel must be set.
| |
MinTimeOff |
Minimum time the pump should stay off if it stops pumping.
This is only applicable when StartStopLevelControlActive.
Default value is 0 seconds.
| |
MinTimeOn |
Minimum time the pump should stay on if it starts pumping.
This is only applicable when StartStopLevelControlActive.
Default value is 0 seconds.
| |
NumberOfStarts |
Number of times the pump was started
| |
Offset |
Offset on water level
| |
OffsetMinDischarge |
Offset to use when looking up the minimum discharge for the pump. Only used when a PID control is
attached to the pump.
| |
OutletLevel |
Set the level of the outlet for the pump.
For side structures (StructureType == SideStructure) this is also used as a reservoir level, i.e. a level outside the model. If flow direction is upstream (all negative Q in HQRelation), then the downstream level is equal to this reservoir level. If Q is positive, then OutletLevel is used as the downstream end. Default value is MinValue, effectively disabling the use of the OutletLevel | |
PumpType |
Type of pump
| |
ReservoirLevel |
Same as OutletLevel | |
RunTimeDiagnostics |
The getter is used to get a list of errors.
(Inherited from Structure.) | |
SideStructureBank |
Bank side that side-structure is located on
(Inherited from Structure.)If side structure contains reservoir, and has the Coordinate set, this is not used (and should be set to Undefined). | |
SideStructureReservoir |
Reservoir at end of side structure. Null if not side structure, or no reservoir is defined
(Inherited from Structure.) | |
StartLevel |
The water level at which the pump is activated.
| |
StartStopLevelControlActive |
Must be set to true to activate external control of start and stop levels (through a PID control or similar).
If pump is controlled through ControlModule, this will set this automatically (during Prepare) Can not be combined with DischargeControlActive | |
State |
State of pump
| |
StopLevel |
The water level at which the pump is de-activated
| |
StructureType |
Type of structure
(Inherited from Structure.) | |
TopoID |
String used to identified cross sections
(Inherited from Structure.) | |
TotalTimeActive |
Total time the pump was active
| |
Type |
Structure type, unique for each structure.
(Overrides StructureType.) | |
UpstreamWaterLevel |
Upstream water level. Upstream refers to the direction of chainage. The water level is set by use of
SetWaterLevels
Unit: [m]
(Inherited from Structure.) | |
UseMaximumDischarge |
If true, then the maximum alloved discharge is taken from the
MaxPumpDischargeUpstream/MaxPumpDischargeDownstream and
that value is use to directly set the maximum discharge.
Default false.
| |
UseSuppressionFactor |
If true, then suppresion factors from the PumpSuppressionFactorUpstream and
PumpSuppressionFactorDownstream delegates are used to limit the available discharge of the pump.
Default false.
|
Name | Description | |
---|---|---|
Accepts |
List of data types that is accepted, i.e., that you can get a ValueSetter for.
(Inherited from Structure.) | |
ApplyFlowFactor |
Applies flow factor to discharge and it's derivatives
(Inherited from Structure.) | |
ControlResume |
Resume the pump to normal operation.
| |
ControlSetDischarge |
Set discharge for pump explicitly.
Pump acceleration parameters will be used, so pump may take a while to obtain the desired discharge. If the pump is stopped, this will resume pump operation. | |
ControlSetFlowFactor |
Set flow factor to specified value
(Inherited from Structure.) | |
ControlSetStartLevel |
Set new start level
If the pump is stopped, this will resume pump operation. | |
ControlSetStartStopLevel |
Set new start/stop level
If the pump is stopped, this will resume pump operation. | |
ControlSetStopLevel |
Set new stop level
If the pump is stopped, this will resume pump operation. | |
ControlShutDown |
Stop the pump immediately, no deceleration time.
The pump will be inactive until ControlResume(Int32) or one of the other Control method is called explicitly. | |
ControlStop |
Stop and suspend the pump.
If a deceleration time is specified, the pump will initiate a deceleration and be completely stopped after this time. The pump will be inactive until ControlResume(Int32) or one of the other Control method is called explicitly. | |
Description |
Return a string that describes this structure. Includes structure type and ID
(Inherited from Structure.) | |
Dispose |
Frees the licenses held.
(Inherited from Structure.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
ExplicitStructureSupport |
DEBUG: This method is called from Prepare() if _implitcit == false to check if
the structure supports being Explicit.
Once all structures support explicit operation this method can be deleted.
(Overrides StructureExplicitStructureSupport.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetControlAction |
If an entity implements the IControllable interface it can be controlled by
the ControlModule.
(Overrides StructureGetControlAction(String).) | |
GetCurrentValue |
If an entity implements the IControllable interface it can be controlled by
the ControlModule.
(Overrides StructureGetCurrentValue(String).) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Initialize(IDiagnostics) |
Set up structure and set runtime diagnostics object
(Inherited from Structure.) | |
Initialize(ICrossSection, ICrossSection, Boolean, IDiagnostics) |
Set up structure and set runtime diagnostics object
(Overrides StructureInitialize(ICrossSection, ICrossSection, Boolean, IDiagnostics).) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
Offers |
A list of quantities available from this structure
(Inherited from Structure.) | |
PreferredDt |
The preferred time span for the next time step. Used when adaptive time stepping is active.
| |
Prepare(HDParameterData, IDiagnostics) |
Set up structure and set runtime diagnostics object
(Overrides StructurePrepare(HDParameterData, IDiagnostics).) | |
Prepare(DateTime, HDParameterData, IDiagnostics) |
Set up structure and set runtime diagnostics object
(Inherited from Structure.) | |
PrepareTimeStep |
Prepare structure for time step
| |
ReadState |
Read state and apply to module.
Returns true if state was successfully read.
| |
ResetControlledState |
If an entity implements the IControllable interface it can be controlled by
the ControlModule.
(Overrides StructureResetControlledState.) | |
SetControlStrategyId |
Set control strategy ID manually.
(Inherited from Structure.)Base implementation for IControllable | |
SetInputWaterLevels | (Inherited from Structure.) | |
SetWaterLevels |
Sets up- and down- stream water level and forces the calculation of the discharge and its derivatives.
(Overrides StructureSetWaterLevels(Double, Double).) | |
SetZeroFlow |
Sets the conditions for zero flow
(Inherited from Structure.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
UpdatedWaterLevels |
After a time step (or iteration) has finished, update the discharge to the actual value, based
on the final water levels and the discharge derivatives.
(Inherited from Structure.) | |
Validate |
Writes errors, warnings and hints into their respective member classes. The member objects are initially cleared.
(Overrides StructureValidate.) | |
ValueGetter |
Get value setter for the specified data quantity
(Overrides StructureValueGetter(Int32).) | |
ValueSetter |
Get value setter for the specified data type
(Inherited from Structure.) | |
WriteState |
Write current state of module
|
Name | Description | |
---|---|---|
_accepts |
List of quantities that are accepted
(Inherited from Structure.) | |
_controlStategyId |
If the structure is being controlled, then _controlStategyId contains the ID of the
active control strategy
(Inherited from Structure.) | |
_downstreamWaterLevel |
Downstream water level, as set by SetWaterLevels(Double, Double)
Unit: [m]
(Inherited from Structure.) | |
_dqdhDownstream |
The derivative of flow through the structure with downstream water level. The flow is
calculated in the derived classes when the SetWaterLevels method is called.
Unit: [m2/sec]
(Inherited from Structure.) | |
_dqdhUpstream |
The derivative of flow through the structure with upstream water level. The flow is
calculated in the derived classes when the SetWaterLevels method is called.
Unit: [m2/sec]
(Inherited from Structure.) | |
_flowArea |
Flow area through structure. Used by most (but not all) structures.
(Inherited from Structure.) | |
_flowDir |
FlowDir is used to determine which parameters to use for the flow calculations.
Derived by the SetWaterLevels(Double, Double).
(Inherited from Structure.) | |
_id |
Identification name of the structure
(Inherited from Structure.) | |
_implicit |
If _implicit == false, then the derivatives are always zero.
Default value: true.
(Inherited from Structure.) | |
_location |
Location in the network
(Inherited from Structure.) | |
_offers |
List of quantities that are offered
(Inherited from Structure.) | |
_q |
Flow through the structure. The flow is calculated in the derived classes when the
SetWaterLevels method is called.
Unit: [m3/sec]
(Inherited from Structure.) | |
_runTimeDiagnostics |
Diagnostics are written into this Diagnostics during calculations.
Set during Initialize(IDiagnostics) (Inherited from Structure.) | |
_topoID |
Identification used to find referenced cross sections
(Inherited from Structure.) | |
_upstreamWaterLevel |
Upstream water level, as set by SetWaterLevels(Double, Double)
Unit: [m]
(Inherited from Structure.) | |
MaxPumpDischargeDownstream |
Delegate to access the volume available for pumping downstream. Used when UseSuppressionFactor is false.
For structure reaches, this is calculated in the downstream node, else it's calculated in the downstream, h-point.
| |
MaxPumpDischargeUpstream |
Delegate to access the volume available for pumping upstream. Used when UseSuppressionFactor is false.
For structure reaches, this is calculated in the upstream node, else it's calculated in the upstream, h-point.
| |
PreviousDischarge |
Previous discharge across the pump
If not set, the previous discharge will be not taking the water level derivatives into account. | |
PumpSuppressionFactorDownstream |
Delegate to access a pump suppresion factor for flows coming from downstream.
Used in M11 simulations to reduce discharge through pump at low water levels.
Not used in MIKE URBAN simulations.
| |
PumpSuppressionFactorUpstream |
Delegate to access a pump suppresion factor for flows coming from upstream.
Used in M11 simulations to reduce discharge through pump at low water levels.
Not used in MIKE URBAN simulations.
|
Name | Description | |
---|---|---|
Getter | From the proxy, return an FuncTResult for the specified quantity. It returns the first quantity of that type that is offered, and null if the quantity is not offered. | |
Getters |
Returns a set of FuncTResult for the quantity.
We can return several quantities with the same id (usually they will differ in their description).
If the quantity is not offerent, an empty list is returned.
(Defined by ProxyExtensions.) | |
GettersFraction |
Returns a set of FuncT, TResult for the quantity.
We can return several quantities with the same id (usually they will differ in their description).
If the quantity is not offerent, an empty list is returned.
(Defined by ProxyExtensions.) | |
GetterUnboxed | From the proxy, return an FuncTResult for the specified quantity. It returns the first quantity of that type that is offered, and null if the quantity is not offered. | |
Initialize(CrossSectionData, Boolean, IDiagnostics) | Overloaded.
Helper function for some unit tests. Do not use.
(Defined by StructureExtensions.) | |
Initialize(BoundaryData, CrossSectionData, Boolean, IDiagnostics) | Overloaded.
Helper function for some unit tests. Do not use.
(Defined by StructureExtensions.) | |
IsPumpReversed |
Check if pump is reversed, i.e. the pump is a DeltaHQTable
and the HQRelation has negative values.
(Defined by StructureExtensions.) | |
IsSideStructure |
Returns true if the structure is a side structure
(Defined by StructureExtensions.) | |
Setter | From the proxy, return an IDoubleGetSet for the specified quantity. It returns the first quantity of that type that is accepted, and null if the quantity is not accepted. |