Click or drag to resize

DHI.Mike1D.CrossSectionModule Namespace

 
Classes
  ClassDescription
Public classAbstractBottomSlot
Base functionality for the BottomSlotClassic and BottomSlotAreaPreserving.
Public classCrossSectionData
A class representing a collection of cross sections, spanning multiple reaches.

The collection orders the cross sections in two ways: If a reach only has one global cross-section, it is indexed by reachID and topoID. Other cross sections which have a location including a chainage, are ordered by locationID (reachID), topoID and chainage.

If a cross section gets its location updated after insertion into the collection, it needs to be removed and reinserted into the collection in order to be indexed correctly.

Events are not supported for COM interop, even though they appear in the type lib.

All physical quantities are in SI units.

Public classCrossSectionDataCrossSectionEnumerator
Enumerator class thats enumerates the list of crossSections sorted by branch, topoid and chainage
Public classCrossSectionDataFactory
A factory class for reading and writing CrossSectionCollections.
Public classCrossSectionExtensions
Static class containing extension methods related to cross sections
Public classCrossSectionFactory
A factory builder for creating cross sections.

To create a new cross section, first create a CrossSectionFactory. Then build the base of the cross section by calling one of the BuildXXX functions. Use the SetXXX functions to customize the cross section. Get the finished cross section from GetCrossSection

Public classCrossSectionLocated

A cross section with a location (ZLocation). Has a pointer to an BaseCrossSection. The BaseCrossSection can be reused by many CrossSectionLocated.

Contains ZLocation, Coordinates, Info, MinWaterDepth, DHI_ID. Rest is extracted from the BaseCrossSection.

Buffering of previous water level is handled here.

Also does translation from water level to depth (BaseCrossSection can be depth based.). The levels in the BaseCrossSection uses Location.Z as zero level.

Public classCrossSectionMiddling
A Cross Section middling is a cross sections that is placed between two other cross sections and uses those to calculate its own values using interpolation.
Public classCrossSectionPoint
A class representing a point on the cross section
Public classCrossSectionPointList
The points contained in a cross section. The points need not be sorted by the x value.
Public classCrossSectionSlotDecorator
Adds slot funtionality to an ICrossSection. It handles as well topslot as bottom slot.
Public classFlowResistance
Holds information about cross section resistance.

It contains information on the formulation used, ResistanceFormulation, and also the resistance values unless they are tabulated.

If resistance values are tabulated, DepthDependence == Tabulated, they should be looked up in the processed data of the cross sections.

If the DepthDependence == Exponent the following formula is used:

r(d,h) = r_b + (r_t - r_b) * Math.Pow(d / h, c);
with depth derivative
r'(d,h) = (c/h)(r_t - r_b) * Math.Pow(d / h, c-1);
where r_b is ResistanceValue r_t is ResistanceTopValue and c is ExpDepExponent

During simulation the engine works on Mannings M or Chezy, and converts the other resistance formulations to one of those. The converted/modified values and formulations are stored in the XSBase.

Public classInterpolateXSRaw
Interpolates in the raw data using the M11CrossSectionAlg.dll. It is the same interpolation as in the Cross Section Editor (crossectionedit.dll)
Public classProcessing
Class containing various methods that can be utilized when processing data.
Public classProcessingLevelsSpecs
level-related specifications for pre-processing of cross section data
Public classProcessingSimple
Small class that does the storage width and flow area processing (total area) in the most simple way.
Public classReachCrossSections
Class containing all crossSections for one reach/topo-id combination. It can either contain one global cross section (the MikeUrban way, ID based), or a set of crosssections, sorted on chainage (the Mike11 way, ID+chainage based). In case of a set of cross-sections, each cross section must have a valid Location.
Public classStandardCrossSectionFilter
basic filter for cross sections, e.g., for partial loading or display. allows filtering by branch name(s), TopoId(s), and area. TODO: If use, reimplement using dictionary instead of arrays, for performance.
Public classTopSlotAngle
Top slot that returns value corresponding to adding vertical walls approaching infinity
Public classXSBase
Base class for crossSections. Holds processed data.

The most common case is that BottomLevel is zero, meaning that the ProcessedLevels are depth based. However, this is not a requirement.

Can hold equidistant as well as non-equidistant processed data, _equidistantLevels. In case of equidistant, the processed levels always start at zero, i.e., the BottomLevel is always zero (depth based).

Protected classXSBaseProcessedData
Internal helper class for storing a complete set of processed data
Public classXSBaseRaw
A class representing a cross section with raw data attached. TODO: Should deserializer call
Public classXSCircular
Closed circular cross section. Circular cross sections are defined by their diameter. Processed data is calculated by CalculateProcessedData(XSBase)
Public classXSCircularPreprocessed
Closed Circular Cross Section with preprocessed data. There are several different types of circular cross sections: - Circular. - Egg-shaped circular. - O-shaped circular. For the O-shaped cross section the Height is 9/8*diameter The preprocessed data contains a slot up to a height of 1.5 times the diameter. Hence, the TopLevel does not equal BottomLevel plus the diameter/height.
Public classXSOpen
Open cross section. Open cross sections are defined by a list of points. Remember to call CalculateProcessedData() before use.
Public classXSPolygon
Closed polygon cross section. Polygon cross sections are defined by a list of points. Remember to call CalculateProcessedData() before use.
Public classXSProcessedInterp
A class representing a cross section that is interpolated from the processed data of two other cross sections.
Public classXSRectangular
An open rectangular cross section. Processed data is calculated by the Mike11 processing code CalculateProcessedData(XSBase)
Public classXSRectangularPreprocessed
An open rectangular cross section with preprocessed data. The preprocessed data contains a slot up to a height of 1.5 times the diameter. Hence, the TopLevel does not equal BottomLevel plus the Height.
Interfaces
  InterfaceDescription
Public interfaceICrossSection
This is the interface that all cross sections should implement. The methods are mainly defined by what is needed by the engine.
Public interfaceICrossSectionBridge
interface definition for a bridge for loading and, optionally, saving a cross section collection.
Public interfaceICrossSectionFilter
simple interface definition for a filter for cross section, used, e.g., in partial loading of a cross section collection. A particular implementation will have additional members. Note: there is a CrossSectionFilter class that implements this interface.
Public interfaceICrossSectionPoint
Point on a cross section.
Public interfaceISlot
Interface to slots. A slot is not responsible for checking whether the water level argument is valid for the slot. Such a check should be done before using the slot.
Public interfaceITopSlot
Interface to a top slot. A slot is not responsible for checking whether the water level argument is valid for the slot. Such a check should be done before using the slot.
Delegates
  DelegateDescription
Public delegateCrossSectionEventHandler
event handler delegate
Enumerations
  EnumerationDescription
Public enumerationXSInterpolationTypes
Defines how an interpolated cross section are interpolated