XSOpen Class

Note: This API is now obsolete.
Open cross section. Open cross sections are defined by a list of points. Remember to call CalculateProcessedData() before use.

Definition

Namespace: DHI.Mike1D.CrossSectionModule
Assembly: DHI.Mike1D.CrossSectionModule (in DHI.Mike1D.CrossSectionModule.dll) Version: 24.0.0.0 (11.1.1.1111)
C#
[ObsoleteAttribute("Use XSBaseRaw, it handles now both XSOpen and XSPolygon")]
public class XSOpen : XSBaseRaw
Inheritance
Object    XSBase    XSBaseRaw    XSOpen

Constructors

XSOpen Default constructor
XSOpen(XSBaseRaw) Constructor creating a new open cross section from an existing raw cross section

Properties

Angle Angle of correction between perpendicular (to river) and cross section orientation [radian].
(Inherited from XSBaseRaw)
ApplyAngle Flag specifying whether to apply Angle of correction.
(Inherited from XSBaseRaw)
AutoProcess Automatically calculate processed data if 1) They are missing 2) They are not up-to-date (ProcessedDataStatus is NotUpdated)
(Inherited from XSBase)
BottomLevel Lowest level/depth of the processed data. Note: ProcessedLevels must be defined
(Inherited from XSBase)
CrossSectionType Type of cross section
(Inherited from XSBase)
EquidistantLevels Flag to indicate whether equidistant levels are used.
(Inherited from XSBase)
FlowDir Flow direction
(Inherited from XSBaseRaw)
FlowResistance Flow resistance. Contains information on flow resistance type (ManningM or Chezy, Z dependence etc) and flow resistence values.
(Inherited from XSBase)
HasProcessedData
(Inherited from XSBase)
Height Height of the cross section.
(Inherited from XSBase)
Interpolated Returns true if the CrossSection is interpolated from other cross sections
(Inherited from XSBase)
Obsolete
IsOpen Return true if cross section is open
(Inherited from XSBaseRaw)
LeftCoordinateMarker Point at left side of the cross section where the coordinate marker is located.
(Inherited from XSBaseRaw)
LeftLeveeBank Point at left side of the cross section where the left levee is located.
(Inherited from XSBaseRaw)
LeftLowFlowBank Point at left side of the cross section where the lowest flow bank is located.
(Inherited from XSBaseRaw)
LowestPoint Point at lowest part of the cross section.
(Inherited from XSBaseRaw)
MaximumStorageWidth Maximum storage width of the cross section
(Inherited from XSBaseRaw)
ModifiedFormulation Gets the Resistance Formulation that matches the GetResistanceFactor(Int32, Double) value.

This is not necessarily the same as in FlowResistance. but can be different for several reasons: a) The raw and processed data differ, as for DarcyWeisbach. b) The resistance factors have been modified, and values used are those in ModifiedResistanceFactors.


(Inherited from XSBase)
ModifiedResistanceFactors Modified resistance factors. These will be different than ProcessedResistanceFactors if one of the Multiply functions has been executed. This is matching the ModifiedFormulation
(Inherited from XSBase)
MorphologicalDivision When MorphologicalDivisionType is Level, specifies the level of morphological division

For ST modeling only.

Level is relative to raw data, and must not include any datum offset


(Inherited from XSBase)
MorphologicalDivisionType Specifies the type of morphological division that is applied.

For ST modeling only.


(Inherited from XSBase)
NumberOfProcessedLevels returns the number of processed levels (same as dimension of all processed data arrays). Returns 0 if processed data have not been calculated, yet.
(Inherited from XSBase)
Points List of points defining polygon cross section.
(Inherited from XSBaseRaw)
ProcessedAdditionalSurfaceAreas Processed additional storage area
(Inherited from XSBase)
ProcessedAreas Processed geometric areas
(Inherited from XSBase)
ProcessedDataProtected false: data are not protected and will be recomputed. true: processed data are protected, data has been manually updated and will not be recomputed.
(Inherited from XSBase)
ProcessedDataStatus ProcessingStatus defines the status of the processed data of this cross section. Whenever the user updates raw data of the cross section, its state must be changed to NotUpdated.
(Inherited from XSBase)
ProcessedDerivatives Flag specifying whether processed derivatives are stored as processed data arrays, or calculated directly. If true, processed data arrays for the derivatives are created (most accurate, smooth interpolation)
(Inherited from XSBase)
ProcessedFlowAreas Processed flow areas
(Inherited from XSBase)
ProcessedLevels Processed levels
(Inherited from XSBase)
ProcessedRadii Processed radii
(Inherited from XSBase)
ProcessedRadiiDerivatives Processed radii
(Inherited from XSBase)
ProcessedResistanceFactors Processed resistance factors. Their type corresponds to the Resistance formulation specified in FlowResistance.
(Inherited from XSBase)
ProcessedStorageWidths Processed storage widths
(Inherited from XSBase)
ProcessingLevelsSpecs Access to all level-related specifications for pre-processing of cross section data
(Inherited from XSBase)
RadiusType some kind of hydraulic or resistance radius
(Inherited from XSBaseRaw)
RelativeConveyanceCutoff If processed data has been modified to assure that conveyance never decrease with increasing water levels, this value indicates at which level (relative to height) that the change started.

Only relevant for closed cross sections. Default value is 1.


(Inherited from XSBase)
RightCoordinateMarker Point at right side of the cross section where the coordinate marker is located.
(Inherited from XSBaseRaw)
RightLeveeBank Point at right side of the cross section where the right levee is located.
(Inherited from XSBaseRaw)
RightLowFlowBank Point at right side of the cross section where the lowest flow bank is located.
(Inherited from XSBaseRaw)
Selected whether this cross section is selected for some operation, e.g. saving.
(Inherited from XSBaseRaw)
Symmetric Determines if the points in this cross sections makes up one side of a symmetric cross section Note: Not implemented yet Note: Not always possible.
(Inherited from XSBaseRaw)
TopLevel Highest level/depth of the processed data.
(Inherited from XSBase)
TopoID The TopoID set that this cross section belongs to. TODO: See where for details?
(Inherited from XSBase)

Methods

AdjustProcessedLevels(Double) Adjust the processed levels. Used to ensure that _processedLevels[0] has a certain value
(Inherited from XSBase)
AdjustProcessedLevelSpecs Adjust the processed level specification.
(Inherited from XSBase)
BottomLevelFromCenter Return the bottom level of the cross section at a distance dx from the center of the cross section. Throws an exception if dx is larger than half the cross section width.
(Inherited from XSBaseRaw)
CalculateProcessedData Calculate processed data
(Inherited from XSBaseRaw)
CalculateProcessedDataIfNeeded Calculate the processed levels, storage areas, radii, etc, ie, fill in all ProcessedXXX properties if they are not up to date. Also called by getters for these properties if needed, so usually, this method doesn't have to be called explicitly.
(Inherited from XSBase)
CheckProcessedData Validates that this cross sections is set up correctly.
(Inherited from XSBase)
ClearOriginalProcessedData Clear any stored processed data arrays
(Inherited from XSBase)
ClearZones clear section from vegetation and dead water, setting all zone info to Normal
(Inherited from XSBaseRaw)
Clone ICloneable implementation. deep clone, including owner
(Overrides XSBaseRawClone)
ConvertModifiedResistanceFactorsIfNecessary Converts the modified resistance data to another formulation. Returns false if the conversion could be performed. Note: so far only few conversions are supported: - from Manningsn to ManningsM;
(Inherited from XSBase)
ConvertRelativeResistanceMultiZones Converts the ProcessedResistanceFactors according to a multizone set of absolute resistance values. Each input factor is applied between each level seperator, the first factor from -infinity to the first level, the second factor from the first level to the second level, and the last factor from the last level to infinity, i.e., the levelSeperators defines where one factor takes over from the previous. The factors array must be one longer than the levelSeperators array. The relative resistance factor is taken into account also. Results are stored in the ModifiedResistanceFactors and those are used in the calculation.
(Inherited from XSBase)
CopyValuesToOther Copy the values of this cross section to another cross section
(Inherited from XSBaseRaw)
CreateAllProcessedArrays Creates all processed data arrays with the given number of levels.
(Inherited from XSBase)
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)
GetActualMorphologicalDivision Get actual morphological division or top of cross section if not defined.
(Inherited from XSBase)
GetAdditionalSurfaceArea Additional storage area is a volume that the mass equation takes into account, but it does not influence the momentum equation. It could be a small pond next to the river that is filled/emptied as the water level in the river raises/falss.
(Inherited from XSBase)
GetArea Return the cross sectional geometric area, for index and fraction into the processed data.
(Inherited from XSBase)
GetAreaByIntegratingWidths Return the cross sectional geometric area, integrating the storage widths
(Inherited from XSBase)
GetCriticalDepth Gets the Critical depth for a given discharge - [m3/s] The critical depth is the depth where the flow changes from supercritical to subcritical flow.
(Inherited from XSBase)
GetCriticalDischarge Gets the Critical discharge for a given water level The critical discharge is the discharge where the flow changes from supercritical to subcritical flow.
(Inherited from XSBase)
GetFlowArea(Int32) Return the cross sectional flow area, for index and fraction into the processed data. This can be the total areas or the effective flow area hence the area does not necessarily correspond to the amount of water in the system (volume)
(Inherited from XSBase)
GetFlowArea(Int32, Double) Return the cross sectional flow area, for index and fraction into the processed data. This can be the total areas or the effective flow area hence the area does not necessarily correspond to the amount of water in the system (volume)
(Inherited from XSBase)
GetFlowAreaDerivative Get storagewidth as dA/dh from neighboring values in processed XS areas at waterLevel.
(Inherited from XSBase)
GetFlowDistributionConveyance Calculates the conveyance K for local flow distribution calculations, working together with the GetLocalFlowDistributionDepthFactor(Double). This is using the _processedFlowDistributionConveyance

The approach is separated in two methods, since this method can be an expensive method (integrating over the entire cross section), to be called once, and the result used many times by the GetLocalFlowDistributionDepthFactor(Double) method.


(Inherited from XSBaseRaw)
GetFlowDistributionConveyanceFromIntegral Calculates the conveyance K for the local flow distribution calculations, working together with the GetLocalFlowDistributionDepthFactor(Double), by integrating over the cross section.

The approach is separated in two methods, since this method can be an expensive method (integrating over the entire cross section), to be called once, and the result used many times by the GetLocalFlowDistributionDepthFactor(Double) method.


(Inherited from XSBaseRaw)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetHydraulicRadius(Int32) Returns the hydraulic radius for index and fraction into the processed data
(Inherited from XSBase)
GetHydraulicRadius(Int32, Double) Returns the hydraulic radius for index and fraction into the processed data
(Inherited from XSBase)
GetHydraulicRadiusDerivative Get the derivate of the hydraulic radius for index and fraction into the processed data.
(Inherited from XSBase)
GetLevelFromArea For a given area, find the level.
(Inherited from XSBase)
GetLocalFlowDistributionDepthFactor Calculates a local flow distribution factor for a given x along the cross sectional profile. The result must be divided by GetFlowDistributionConveyance(Double).

The calculation is based on a parallel canal analysis, and if integrated up, matches the total discharge through the cross section.


(Inherited from XSBase)
GetLocalVelocity(Double, Double, Double) Calculates local velocity
(Inherited from XSBaseRaw)
Obsolete
GetLocalVelocity(Double, Double, Double, Location) Obsolete. Use instead GetLocalFlowDistributionDepthFactor(Double)
(Inherited from XSBaseRaw)
Obsolete
GetLocalVelocityFactor Obsolete, use insead
(Inherited from XSBaseRaw)
Obsolete
GetLocalVelocityFactorFromIntegral Obsolete, use instead GetFlowDistributionConveyanceFromIntegral(Double)
(Inherited from XSBaseRaw)
Obsolete
GetMarkerIndex Return index of a marker
(Inherited from XSBaseRaw)
GetMarkerSequence Returns a sequence of markers and their indices.
(Inherited from XSBaseRaw)
GetMarkersOfPoint For a given cross section point (at some index), return all markers on that point.
(Inherited from XSBaseRaw)
GetMaximumValues Set maximum area, maximum hydraulic radius and maximum storage width.
(Inherited from XSBase)
GetNaturalDepthOld Get the natural depth at a given discharge and slope
(Inherited from XSBase)
Obsolete
GetResistanceFactor Returns the resistance factor.
(Inherited from XSBase)
GetResistanceFactorsDerivative Get the derivative of the resistance factor at the given water level
(Inherited from XSBase)
GetStorageWidth(Int32) Returns the width from left bank to right bank for index and fraction into the processed data
(Inherited from XSBase)
GetStorageWidth(Int32, Double) Returns the width from left bank to right bank for index and fraction into the processed data
(Inherited from XSBase)
GetTypeGets the Type of the current instance.
(Inherited from Object)
GetVolumeFromAdditionalSurfaceArea Return the integrated additional surface area from the bottom of the top slot to waterLevel
(Inherited from XSBase)
InheritProcessedDataFrom Makes all processed data arrays point to the same arrays as in the other. (reference copy, not value copy)
(Inherited from XSBase)
Initialize Calculate processed data if needed
(Inherited from XSBaseRaw)
Level Get the actual processed level at the given index. Works regardless of the _equidistantLevels flag, i.e., also when ProcessedLevels are not present. Index must be between 0 and NumberOfProcessedLevels-1 otherwise it will fail or give incorrect results
(Inherited from XSBase)
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Prepare Ensures that the resistance fomulation is not relative. If the resistance fomulation is Mannings n it is changed to Mannings M and the data are changed accordingly if the resistance formulation is Darcy Weisbach formulation and data are changed to Chezy.
(Inherited from XSBase)
ProcessedLevel Get the raw processed level at the given index. Works regardless of the _equidistantLevels flag, i.e., also when ProcessedLevels are not present. Index must be between 0 and NumberOfProcessedLevels-1 otherwise it will fail or give incorrect results
(Inherited from XSBase)
RemoveAllProcessedData Removes all processed data arrays.
(Inherited from XSBase)
RestoreModifiedResistanceFactors if Multiply... or Convert... or similar was called earlier, reset the modified resistance factors to the original processed resistance factors
(Inherited from XSBase)
RestoreOriginalProcessedData Restores any stored processed data arrays previously stored.
(Inherited from XSBase)
SaveOriginalProcessedData Store the current processed data arrays (shallow copy). If a set of original processed data already exists, the original set is kept and not overwritten.

Updating the ProcessedLevels will still update the original processed data, unless new processed data has been provided, i.e. by using CreateAllProcessedArrays(Int32) or SetAllProcessedValues(Double, Double, Double, Double, Double, Double), due to the shallow copy.

The original processed data arrays are kept when setting new processed data, using e.g. SetAllProcessedValues(Double, Double, Double, Double, Double, Double)


(Inherited from XSBase)
SetAllProcessedValues set all the processed data (references to the member array). All values are in SI.
(Inherited from XSBase)
SetMarkerAt Set a particular marker to a given 0-BASED index (within the list of points), or remove it (call with -1). If any other point had this marker before, it gets removed from that point. Throws IndexOutOfRangeException if list of points is empty or index is invalid.
(Inherited from XSBaseRaw)
ToStringReturns a string that represents the current object.
(Inherited from Object)
UpdateMarkersToDefaults clears the indicated existing markers and sets them to their default x location. (LeftLeveeBank: smallest x, RightLeveeBank: largest x, LowestPoint: x with the smallest z). Doesn't do anything for Circular, Rectangular.
(Inherited from XSBaseRaw)
UpdatePointMarkerString Update the MarkerString for all cross section points with a marker. Used by the GUI.
(Inherited from XSBaseRaw)
UpdatePointResistance Update the resistance values in the Points in case the ResistanceDistribution is Uniform or Zones
(Inherited from XSBaseRaw)
Validate Validates the data. The constraints are that the levels and the areas after sorting must be monotonically increasing.
(Inherited from XSBaseRaw)

Fields

_bAutoProcess Allow CalculateProcessedDataIfNeeded. Set to false to disable
(Inherited from XSBase)
_bProcessedDataProtected false: data are not protected and will be recomputed. true: processed data are protected, data has been manually updated and will not be recomputed.
(Inherited from XSBase)
_crossSectionType Type of cross section.
(Inherited from XSBase)
_distanceBetweenLevels The distance between levels if equidistant levels are ued. If equidistant levels are used, then getIndex and getFraction are faster.
(Inherited from XSBase)
_equidistantLevels Flag to indicate whether equidistant levels are used. If equidistant levels are used, then getIndex and getFraction are faster. Each derived cross section must set this flag to true (during construction), if it does not store levels in the _processedLevels array.
(Inherited from XSBase)
_flowResistance Flow resistance
(Inherited from XSBase)
_height
(Inherited from XSBase)
_isInitialized Flag defining whether Initialize has been called.
(Inherited from XSBase)
_isPrepared Flag defining whether Prepare(Diagnostics, HDParameterData, ILocation) has been called.
(Inherited from XSBase)
_modifiedFormulation Flow resistance formulation
(Inherited from XSBase)
_modifiedResistanceFactors Modified resistance factors. As default points to _processedResistanceFactors, but during simulation contains resistance factors that are supported by the engine, which may differ from the original values.
(Inherited from XSBase)
_modifiedResistanceFactorsDerivatives Processed resistance factor derivatives for the modified resistance factors.
(Inherited from XSBase)
_numberOfProcessedLevels The number of processed levels
(Inherited from XSBase)
_originalProcessedData A copy of original processed data, in case they have been modified by the engine during the simulation.
(Inherited from XSBase)
_processedAdditionalSurfaceAreas Processed additional storage areas
(Inherited from XSBase)
_processedAreas Processed geometric areas
(Inherited from XSBase)
_processedCriticalDischarges Table with processed critical discharges, created automatically when required.
(Inherited from XSBase)
_processedDataStatus ProcessingStatus defines the status of the processed data of this cross section. Whenever the user updates raw data of the cross section, its state must be changed to NotUpdated.
(Inherited from XSBase)
_processedDerivatives Flag specifying whether processed derivatives are stored as processed data arrays, or calculated directly. If true, processed data arrays for the derivatives are created (most accurate, smooth interpolation)
(Inherited from XSBase)
_processedFlowAreas Processed flow ares
(Inherited from XSBase)
_processedLevels Processed depths
(Inherited from XSBase)
_processedRadii Processed radii
(Inherited from XSBase)
_processedRadiiDerivatives Processed radius derivatives
(Inherited from XSBase)
_processedResistanceFactors Processed resistance factors
(Inherited from XSBase)
_processedStorageWidths Processed storage widths
(Inherited from XSBase)
_resistenceDistri Resistance distribution
(Inherited from XSBase)

Extension Methods

GetConveyance Get the conveyance at the specified processed level
(Defined by CrossSectionExtensions)
GetLowestPointIndex Get lowest point index for XSBaseRaw cross section.
(Defined by CrossSectionExtensions)

See Also