Click or drag to resize

Structure Class

Base class for all structures. The class is abstract since an instance of it wouldn't make sense
Inheritance Hierarchy
SystemObject
  DHI.Mike1D.StructureModuleStructure
    More...

Namespace:  DHI.Mike1D.StructureModule
Assembly:  DHI.Mike1D.StructureModule (in DHI.Mike1D.StructureModule.dll) Version: 19.0.0.0 (11.1.1.1111)
Syntax
public abstract class Structure : IStructure, 
	IDoubleProxy, IQuantityProxy, IDisposable, IExtensibleDataObject

The Structure type exposes the following members.

Constructors
  NameDescription
Protected methodStructure
Protected constructor
Top
Properties
  NameDescription
Public propertydDischargedDownStreamWaterLevel
Calculated Discharge derivative with DownStreamWaterLevel. Downstream is relative to the direction of chainage. The value is calculated by SetWaterLevels. Unit: [m^2/s]
Public propertydDischargedUpStreamWaterLevel
Calculated Discharge derivative with UpStreamWaterLevel. Upstream is relative to the direction of chainage. The value is calculated by SetWaterLevels. Unit: [m^2/s]
Public propertyDischarge
Calculated Discharge. The value is calculated by SetWaterLevels. Unit: [m^3/s]
Public propertyDownstreamWaterLevel
Downstream water level.Downstream refers to the direction of chainage. The water level is set by use of SetWaterLevels Unit: [m]
Public propertyExtensionData
Property used by (de)serializer, when it can not find proper target for a data field. Support of forward compatible data contracts.
Public propertyFlowArea
Flow area through structure. Used by most (but not all) structures.
Public propertyFlowFactor
The discharge (and discharge derivatives) are scaled by the flow factor.
Public propertyID
Structure ID
Public propertyIDInUserUnit
Used to get a consistent description of the structure. The ID comes in user units. Used e.g. when reporting errors, warnings and hints.
Public propertyImplicit
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
Public propertyInvertLevelDownstream
Invert level down stream
Public propertyInvertLevelUpstream
Invert level up stream
Public propertyLength
Length of the structure. Unit: [m] Default value: 0m
Public propertyLocation
Location property.
Public propertyRunTimeDiagnostics
The getter is used to get a list of errors.
Public propertySideStructureBank
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).

Public propertySideStructureReservoir
Reservoir at end of side structure. Null if not side structure, or no reservoir is defined
Public propertyStructureType
Type of structure
Public propertyTopoID
String used to identified cross sections
Public propertyType
Structure type, unique for each type structure.
Public propertyUpstreamWaterLevel
Upstream water level. Upstream refers to the direction of chainage. The water level is set by use of SetWaterLevels Unit: [m]
Top
Methods
  NameDescription
Public methodAccepts
List of data types that is accepted, i.e., that you can get a ValueSetter for.
Protected methodApplyFlowFactor
Applies flow factor to discharge and it's derivatives
Public methodControlSetFlowFactor
Set flow factor to specified value
Public methodDescription
Return a string that describes this structure. Includes structure type and ID
Public methodDispose
Frees the licenses held.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodExplicitStructureSupport
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.
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetControlAction
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

Public methodGetCurrentValue
Get the current value of the control for the specified id.

Base implementation for IControllable

Protected methodStatic memberGetFlowCoefficient
Calculation of fractions of the different flow types
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodInitialize(IDiagnostics)
Set up structure and set runtime diagnostics object
Public methodInitialize(ICrossSection, ICrossSection, Boolean, IDiagnostics)
Set up structure and set runtime diagnostics object
Protected methodStatic memberLinearisation
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.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodOffers
A list of quantities available from this structure
Public methodPrepare(HDParameterData, IDiagnostics)
Set up structure and set runtime diagnostics object
Public methodPrepare(DateTime, HDParameterData, IDiagnostics)
Set up structure and set runtime diagnostics object
Public methodResetControlledState
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

Public methodSetControlStrategyId
Set control strategy ID manually.

Base implementation for IControllable

Protected methodSetInputWaterLevels
Public methodSetWaterLevels
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.

Protected methodSetZeroFlow
Sets the conditions for zero flow
Protected methodStatic memberSwitchFlowDirection
Switches sign and derivatives. Should be used when flow direction is against increasing chainage
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUpdatedWaterLevels
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.
Public methodValidate
Writes errors, warnings and hints into their respective member classes. The member objects are initially cleared.
Public methodValueGetter
Get value setter for the specified data quantity
Public methodValueSetter
Get value setter for the specified data type
Top
Fields
  NameDescription
Protected field_accepts
List of quantities that are accepted
Protected field_controlStategyId
If the structure is being controlled, then _controlStategyId contains the ID of the active control strategy
Protected field_downstreamWaterLevel
Downstream water level, as set by SetWaterLevels(Double, Double) Unit: [m]
Protected field_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]
Protected field_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]
Protected field_flowArea
Flow area through structure. Used by most (but not all) structures.
Protected field_flowDir
FlowDir is used to determine which parameters to use for the flow calculations. Derived by the SetWaterLevels(Double, Double).
Protected field_id
Identification name of the structure
Protected field_implicit
If _implicit == false, then the derivatives are always zero. Default value: true.
Protected field_location
Location in the network
Protected field_offers
List of quantities that are offered
Protected field_q
Flow through the structure. The flow is calculated in the derived classes when the SetWaterLevels method is called. Unit: [m3/sec]
Protected field_runTimeDiagnostics
Diagnostics are written into this Diagnostics during calculations. Set during Initialize(IDiagnostics)
Protected field_topoID
Identification used to find referenced cross sections
Protected field_upstreamWaterLevel
Upstream water level, as set by SetWaterLevels(Double, Double) Unit: [m]
Protected fieldStatic memberZeroWaterLevelDifference
The constant is used to define the lower limit for which we will try to calculate the flow and typically more problematic the flow derivatives.
Top
Extension Methods
  NameDescription
Public Extension MethodGetter

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.)
Public Extension MethodGetters
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.)
Public Extension MethodGettersFraction
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.)
Public Extension MethodGetterUnboxed

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.)
Public Extension MethodInitialize(CrossSectionData, Boolean, IDiagnostics)Overloaded.
Helper function for some unit tests. Do not use.
(Defined by StructureExtensions.)
Public Extension MethodInitialize(BoundaryData, CrossSectionData, Boolean, IDiagnostics)Overloaded.
Helper function for some unit tests. Do not use.
(Defined by StructureExtensions.)
Public Extension MethodIsSideStructure
Returns true if the structure is a side structure
(Defined by StructureExtensions.)
Public Extension MethodSetter

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.)
Top
See Also
Inheritance Hierarchy