EngineReach Class

A reach is the common representation used for branch and links. A reach may hence be either a part of a river or a pipe.

Digipoints are found in the LocationSpan

Definition

Namespace: DHI.Mike1D.Engine
Assembly: DHI.Mike1D.Engine (in DHI.Mike1D.Engine.dll) Version: 24.0.0.0 (11.1.1.1111)
C#
public class EngineReach : INetworkReach
Inheritance
Object    EngineReach
Derived
Implements
INetworkReach

Constructors

EngineReachInitializes a new instance of the EngineReach class

Properties

DigiPoints 
EndNode End node
GridPoints List of gridpoints within reach, in order from start to end of reach.
HasStructures True if reach contains structures.
IndexListH Indices of H grid points in reach
IndexListQ Indices of Q grid points in reach
IsPressureReach A pressure reach is a reach that is always under pressure. Pressure reaches have zero slope. Sections of the network can consist of pressure reaches. Downstream of these sections there are pumps, and upstream there are special tail nodes that function as a weir at the boundary to the normal reaches.
IsRegulatedReach Regulate reach with a discharge structure on first q-grid point. This is used for MU setups to limit Q to a QMax(H) and QMax(dH). QMax is set by a control in the control module
IsStructureReach A structure reach is an h-q-h reach where the q point is a structure point.

A structure reach does not contain any volume, and the h points have no cross sections.

LocationSpan Location span that covers this reach.
MaximumDx The maximal allowed distance between two points of the same type?
NonReturn Restrict flow in the first q-grid point to be positive only. Default is false
ReverseDirection Reverse the positive flow direction of the reach. Default is false
StartNode Start node
TopoID Id for the cross section topologi that is to be used for the reach If no TopoID is used, set to empty string (null will be handled as the empty string).

Methods

CreateNewReach Create a new empty EngineReach of the correct type. Used by the DivideAt(ILocation, EngineNode, IDiagnostics) method.

Override to return a specialized version of the EngineReach

DivideAt Divide reach at location, cut away the piece of the reach that is after location and returns the cut away piece as a new reach. node is used for connecting the two.
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
GetClosestDownstreamGridPoint(Double, PredicateGridPoint, Boolean) Find the specified type of gridpoint which is closest to the given location upstream.

It is assumed that the EngineReach max and min chainages are containing the given chainage, otherwise null is returned.

GetClosestDownstreamGridPointT(ILocation) Find the specified type of gridpoint which is closest to the given location downstream. It is assumed that the EngineReach max and mean chainages are containing the given location (same location ID and overlapping chainage).
Obsolete
GetClosestGridPointT Find the specified type of gridpoint which is closest to the given location. It is assumed that the EngineReach max and mean chainages are containing the given location (same location ID and overlapping chainage).
GetClosestUpstreamGridPoint(Double, PredicateGridPoint, Boolean) Find the specified type of gridpoint which is closest to the given location upstream.

It is assumed that the EngineReach max and min chainages are containing the given chainage, otherwise null is returned.

GetClosestUpstreamGridPointT(ILocation) Find the specified type of gridpoint which is closest to the given location upstream. It is assumed that the EngineReach max and mean chainages are containing the given location (same location ID and overlapping chainage).
Obsolete
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetHPointToHPointLocationSpans Returns the location span from HGridPoint[0] to HGridPoint[1], HGridPoint[1] to HGridPoint[2] and so on. They are returned as ZLocationSpan to provide linear interpolation in Z between the two h-points.

For routing reaches, z values are not available and will be zero.

GetTypeGets the Type of the current instance.
(Inherited from Object)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Prepare Called as a part of the prepare step. Calls on to each gridpoint in the reach.
ToString Returns a String that represents the current Object.
(Overrides ObjectToString)

Fields

ReachListIndex Index of this reach in the list of reaches. Optimization for fast lookup in the lists (instead of using find).

Extension Methods

AverageSlope Calculate the average slope over the reach. Returns MinValue if not possible to calculate slope.
(Defined by EngineExtensions)
Digipoints Get the digipoints of the reach
(Defined by EngineExtensions)
Digipoints Get the ith digipoint of the reach
(Defined by EngineExtensions)
DirectionUnitVector Calculates the direction vector of the reach at the given gridpoint, as the average from the last to the next gridpoint.
(Defined by EngineExtensions)
GridPointSpanChainageEnd End-chainage of the span of the grid point in the index.
(Defined by EngineFindExtensions)
GridPointSpanChainageStart Start-chainage of the span of the grid point in the index.
(Defined by EngineFindExtensions)
HasClosedCrossSection Check if the reach has at least one closed cross sections
(Defined by EngineExtensions)
HasOpenCrossSection Check if the reach has at least one open cross sections
(Defined by EngineExtensions)
IsHdReach Returns true if the engine reach is a HD reach
(Defined by EngineExtensions)
IsRoutingReach Returns true if the engine reach is a routing reach
(Defined by EngineExtensions)

See Also