SluiceGate Class

Calculation of the flow at operational sluice gates using formulas for four different flow regimes and for overtopping as well.

Definition

Namespace: DHI.Mike1D.StructureModule
Assembly: DHI.Mike1D.StructureModule (in DHI.Mike1D.StructureModule.dll) Version: 24.0.0.0 (11.1.1.1111)
C#
public class SluiceGate : Gate, ISluiceGate, 
	IGate, IStructure, IDoubleProxy, IQuantityProxy, IPlotableStructure, 
	ILinearZeroVariation
Inheritance
Object    Structure    Gate    SluiceGate
Implements
IDoubleProxy, IQuantityProxy, IGate, ILinearZeroVariation, IPlotableStructure, ISluiceGate, IStructure

Constructors

SluiceGate Constructor method for the sluice gate

Properties

ActualGateLevel Actual gate level. Type: River Structure Geometry Unit: [m] Default: 0

this is not a setup parameter, but a run parameter, which will change during the run (if the gate is controlled). If the gate is not controlled, this can be used to change the gate (manual/user defined control).


(Inherited from Gate)
CfA Factor used when calculating Yc for controlled free flow Type: Dimensional factor Unit: [] Default: 0.89
CfB Exponent used when calculating Yc for controlled free flow Type: Dimensional factor Unit: [] Default: 0.17
CsA Factor used when calculating Yc for controlled submerged flow Type: Dimensional factor Unit: [] Default: 1.12
CsB Exponent used when calculating Yc for controlled submerged flow Type: Dimensional factor Unit: [] Default: 0.21
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)
Delhs Linear flow variation. For water level differences less than delhs use a linear Q variation between h1-h2=delhs and h1-h2=0. This is to avoid stability problems for small water level differences where dQdh goes to infinity. Unit: [m] Default: 0.01
Discharge Calculated Discharge. The value is calculated by SetWaterLevels. Unit: [m^3/s]
(Inherited from Structure)
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)
DynamicMaxGateLevel Controllable maximum gate level
(Inherited from Gate)
DynamicMinGateLevel Controllable minimum gate level
(Inherited from Gate)
EnableCheckFlowDirectionOscillations Flag indicating whether to use special check and damping for structure discharge oscillating around zero.
(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)
Height The height of the gate. This is used to evaluate if over topping can occur. Type: River Structure Geometry Unit: [m] Default: 0
HorizontalOffSetFromMarker2 Value used when plotting the structue Unit: [m] Defualt: 0
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)
InitialGateLevel Initial value of the gate level. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
InvertLevelDownstream Invert level down stream
(Overrides StructureInvertLevelDownstream)
InvertLevelUpstream Invert level up stream
(Overrides StructureInvertLevelUpstream)
Length Length of the structure. Unit: [m] Default value: 0m
(Inherited from Structure)
Location Location property.
(Inherited from Structure)
LowerLimit1 Lower limit between controlled submerged flow and controlled free flow Type: Dimensional factor Unit: [] Default: 0.95
LowerLimit2 Lower limit between controlled free flow and uncontrolled submerged flow Type: Dimensional factor Unit: [] Default: 1.45
LowerLimit3 Lower limit between uncontrolled submerged flow and uncontrolled free flow Type: Dimensional factor Unit: [] Default: 0.6
MaxSpeed The maximum allowed rate of change of the gate level. Type: River Structure Geometry / Time Unit: [m] Default: 0.001
(Inherited from Gate)
MaxValue Maximum gate level. The gate can not be raised above this level. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
Multiplicator Multiplicator or "number of structures" of this type. Used for modelling more structures at the same location with the same geometry in one go. Unit: [] Default: 1
(Inherited from Gate)
RunTimeDiagnostics The getter is used to get a list of errors.
(Inherited from Structure)
SideStructureBank Bank side that side-structure is located on

If side structure contains reservoir, and has the Coordinate set, this is not used (and should be set to Undefined).


(Inherited from Structure)
SideStructureReservoir Reservoir at end of side structure. Null if not side structure, or no reservoir is defined
(Inherited from Structure)
SillLevel Level of the sill of the gate. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
SmoothingFactor Exponential smoothing factor for structure discharge. The smoothing factor is the weight of the previous discharge on the new discharge: q = (1 - SmoothingFactor) * qStructure + SmoothingFactor * qPrevious
(Inherited from Structure)
StructureType Type of structure
(Inherited from Structure)
TopoID String used to identified cross sections
(Inherited from Structure)
Type Structure type, unique for each structure.
(Overrides StructureType)
UfA Factor used when calculating Yc for uncontrolled free flow and overtopping flow Type: Dimensional factor Unit: [] Default: 0.77
UpperLimit1 Upper limit between controlled submerged flow and controlled free flow Type: Dimensional factor Unit: [] Default: 1.05
UpperLimit2 Upper limit between controlled free flow and uncontrolled submerged flow Type: Dimensional factor Unit: [] Default: 1.55
UpperLimit3 Upper limit between uncontrolled submerged flow and uncontrolled free flow Type: Dimensional factor Unit: [] Default: 0.7
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)
UsA Factor used when calculating Yc for uncontrolled submerged flow Type: Dimensional factor Unit: [] Default: 0.86
UsB Exponent used when calculating Yc for uncontrolled submerged flow Type: Dimensional factor Unit: [] Default: 0.38
UseControlledMaxGateLevel Use the controllable maximum gate level
(Inherited from Gate)
UseControlledMinGateLevel Use the controllable minimum gate level
(Inherited from Gate)
UseMaxValue Flag telling if the maximum gate level specified in _maxValue should be used Type: boolean Unit: [m] Default: false
(Inherited from Gate)
UseMomentumEquation Flag to de-activate structure completely. If this flag is set, then the momentum equation will be used to set the coefficents in HDStructureGridPoint instead of the structure. The flag is cleared the next time Control() is called.

This is used in HDStructureGridPoint to determine if the structure should be active or or if the coefficients should be set using a HDQGridPoint.


(Inherited from Gate)
WaterLevelDifferenceMinimal Water level difference below which it is assumed that structure has no flow.
(Inherited from Structure)
Width Width of the weir opening. Width is perpendicular to the flow direction, i.e. "across the river"
(Inherited from Gate)

Methods

Accepts List of data types that is accepted, i.e., that you can get a ValueSetter for.
(Inherited from Structure)
AddToOffers Add additional offers to structure
(Inherited from Structure)
ApplyFlowFactor Applies flow factor to discharge and it's derivatives
(Inherited from Structure)
ControlClose Control the gate, close it
(Inherited from Gate)
ControlOpen Control the gate, Open it
(Inherited from Gate)
ControlSetFlowFactor Set flow factor to specified value
(Inherited from Structure)
ControlSetGateLevel Control the gate, set gate level to specified value
(Inherited from Gate)
ControlSetMaxLevel Control the gate, set max gate level to specified value
(Inherited from Gate)
ControlSetMinLevel Control the gate, set min gate level to specified value
(Inherited from Gate)
Description Return a string that describes this structure. Includes structure type and ID
(Inherited from Structure)
Dispose Frees the licenses held.
(Inherited from Structure)
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
ExplicitStructureSupport DEBUG: This method is called from Validate() if _implitcit == false to check if the structure supports being Explicit. Once all structures support explicit operation this method can be deleted.
(Inherited from Structure)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetActionInfos List of control action infos
(Inherited from Gate)
GetControlAction Get control action for the specified id. It always returns one of the ActionControl delegates. It will return null if controlActionId is not valid.

Base implementation for IControllable


(Inherited from Gate)
GetCurrentValue Get the current value of the control for the specified id.

Base implementation for IControllable


(Inherited from Gate)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets 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 initial gate level and runtime diagnostics.
(Overrides GateInitialize(ICrossSection, ICrossSection, Boolean, IDiagnostics))
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Offers A list of quantities available from this structure
(Inherited from Structure)
Prepare(HDParameterData, IDiagnostics) Set up structure and set runtime diagnostics object
(Inherited from Structure)
Prepare(DateTime, HDParameterData, IDiagnostics) Set up structure and set runtime diagnostics object
(Inherited from Structure)
PrepareTimeStep Prepare structure for time step
(Inherited from Gate)
ReadState Read state and apply to module. Returns true if state was successfully read.
(Inherited from Gate)
ResetControlledState Reset internal state (if any) used by controlling class. Called after a controlling class has performed a control sequence, and simulation is restarted.

Base implementation for IControllable


(Inherited from Gate)
SetControlStrategyId Set control strategy ID manually.

Base implementation for IControllable


(Inherited from Structure)
SetInputWaterLevels Set the _upstreamWaterLevel, _downstreamWaterLevel and _flowDir
(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)
ToStringReturns 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 Validation of data for a sluice gate.
(Overrides StructureValidate)
ValueGetter Get value setter for the specified data quantity
(Inherited from Gate)
ValueSetter Get value setter for the specified data type
(Inherited from Structure)
WriteState Write current state of module
(Inherited from Gate)

Fields

_accepts List of quantities that are accepted
(Inherited from Structure)
_actualGateLevel Gate level. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
_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)
_dynamicMaxGateLevel Controllable minimum gate level
(Inherited from Gate)
_dynamicMinGateLevel Controllable maximum gate level
(Inherited from Gate)
_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)
_initialGateLevel Initial value of the gate level. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
_location Location in the network
(Inherited from Structure)
_maxSpeed The maximum allowed rate of change of the gate level. Type: River Structure Geometry / Time Unit: [m] Default: 0.001
(Inherited from Gate)
_maxValue Maximum gate level. The gate can not be raised above this level. Type: River Structure Geometry Unit: [m] Default: 0
(Inherited from Gate)
_multiplicator Multiplicator or "number of structures" of this type. Used for modelling more structures at the same location with the same geometry in one go. Unit: [] Default: 1
(Inherited from Gate)
_offers List of quantities that are offered
(Inherited from Structure)
_previousGateLevel Previous gate level. Used when control is active, to assure the correct speed of the gate.
(Inherited from Gate)
_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)
_sillLevel Level of the sill of the gate.
(Inherited from Gate)
_timeOfPreviousGateLevelChange Time of previous gate level change
(Inherited from Gate)
_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)
_useDynamicMaxGateLevel Use the controllable maximum gate level
(Inherited from Gate)
_useDynamicMinGateLevel Use the controllable minimum gate level
(Inherited from Gate)
_useMaxValue Flag telling if the maximum gate level specified in _maxValue should be used Type: boolean Unit: [m] Default: false
(Inherited from Gate)
_width Width of the weir opening. Width is perpendicular to the flow direction, i.e. "across the river"
(Inherited from Gate)

Extension Methods

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.


(Defined by ProxyExtensions)
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.


(Defined by ProxyExtensions)
Initialize Helper function for some unit tests. Do not use.
(Defined by StructureExtensions)
Initialize Helper function for some unit tests. Do not use.
(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.


(Defined by ProxyExtensions)

See Also