Structure Class

Base class for all structures. The class is abstract since an instance of it wouldn't make sense

Definition

Constructors

Structure Protected constructor

Properties

dDischargedDownStreamWaterLevel Calculated Discharge derivative with DownStreamWaterLevel. Downstream is relative to the direction of chainage. The value is calculated by SetWaterLevels. Unit: [m^2/s]
dDischargedUpStreamWaterLevel Calculated Discharge derivative with UpStreamWaterLevel. Upstream is relative to the direction of chainage. The value is calculated by SetWaterLevels. Unit: [m^2/s]
Discharge Calculated Discharge. The value is calculated by SetWaterLevels. Unit: [m^3/s]
DownstreamWaterLevel Downstream water level.Downstream refers to the direction of chainage. The water level is set by use of SetWaterLevels Unit: [m]
EnableCheckFlowDirectionOscillations Flag indicating whether to use special check and damping for structure discharge oscillating around zero.
ExtensionData Property used by (de)serializer, when it can not find proper target for a data field. Support of forward compatible data contracts.
FlowArea Flow area through structure. Used by most (but not all) structures.
FlowFactor The discharge (and discharge derivatives) are scaled by the flow factor.
ID Structure ID
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.
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
InvertLevelDownstream Invert level down stream
InvertLevelUpstream Invert level up stream
Length Length of the structure. Unit: [m] Default value: 0m
Location Location property.
RunTimeDiagnostics The getter is used to get a list of errors.
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).

SideStructureReservoir Reservoir at end of side structure. Null if not side structure, or no reservoir is defined
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
StructureType Type of structure
TopoID String used to identified cross sections
Type Structure type, unique for each type structure.
UpstreamWaterLevel Upstream water level. Upstream refers to the direction of chainage. The water level is set by use of SetWaterLevels Unit: [m]
WaterLevelDifferenceMinimal Water level difference below which it is assumed that structure has no flow.

Methods

Accepts List of data types that is accepted, i.e., that you can get a ValueSetter for.
AddToOffers Add additional offers to structure
ApplyFlowFactor Applies flow factor to discharge and it's derivatives
ControlSetFlowFactor Set flow factor to specified value
Description Return a string that describes this structure. Includes structure type and ID
Dispose Frees the licenses held.
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.
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
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

GetCurrentValue Get the current value of the control for the specified id.

Base implementation for IControllable

GetFlowCoefficient Calculation of fractions of the different flow types
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
Initialize(ICrossSection, ICrossSection, Boolean, IDiagnostics) Set up structure and set runtime diagnostics object
Linearisation Makes linearisation for heads smaller than delH. Note that it is assumed that the flow is positive so this should be called before taking flow direction into account.
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Offers A list of quantities available from this structure
Prepare(HDParameterData, IDiagnostics) Set up structure and set runtime diagnostics object
Prepare(DateTime, HDParameterData, IDiagnostics) Set up structure and set runtime diagnostics object
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

SetControlStrategyId Set control strategy ID manually.

Base implementation for IControllable

SetInputWaterLevels Set the _upstreamWaterLevel, _downstreamWaterLevel and _flowDir
SetWaterLevels Sets up- and down- stream water level and forces the calculation of the discharge and its derivatives.

Override in extending classes to do something useful.

SetZeroFlow Sets the conditions for zero flow
SwitchFlowDirection Switches sign and derivatives. Should be used when flow direction is against increasing chainage
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.
Validate Writes errors, warnings and hints into their respective member classes. The member objects are initially cleared.
ValueGetter Get value setter for the specified data quantity
ValueSetter Get value setter for the specified data type

Fields

_accepts List of quantities that are accepted
_controlStategyId If the structure is being controlled, then _controlStategyId contains the ID of the active control strategy
_downstreamWaterLevel Downstream water level, as set by SetWaterLevels(Double, Double) Unit: [m]
_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]
_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]
_flowArea Flow area through structure. Used by most (but not all) structures.
_flowDir FlowDir is used to determine which parameters to use for the flow calculations. Derived by the SetWaterLevels(Double, Double).
_id Identification name of the structure
_implicit If _implicit == false, then the derivatives are always zero. Default value: true.
_location Location in the network
_offers List of quantities that are offered
_q Flow through the structure. The flow is calculated in the derived classes when the SetWaterLevels method is called. Unit: [m3/sec]
_runTimeDiagnostics Diagnostics are written into this Diagnostics during calculations. Set during Initialize(IDiagnostics)
_topoID Identification used to find referenced cross sections
_upstreamWaterLevel Upstream water level, as set by SetWaterLevels(Double, Double) Unit: [m]

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