Click or drag to resize

CrossSectionSlotDecorator Class

Adds slot funtionality to an ICrossSection. It handles as well topslot as bottom slot.
Inheritance Hierarchy
SystemObject
  DHI.Mike1D.CrossSectionModuleCrossSectionSlotDecorator

Namespace:  DHI.Mike1D.CrossSectionModule
Assembly:  DHI.Mike1D.CrossSectionModule (in DHI.Mike1D.CrossSectionModule.dll) Version: 19.0.0.0 (11.1.1.1111)
Syntax
public class CrossSectionSlotDecorator : ICrossSection, 
	IComparable, ICloneable

The CrossSectionSlotDecorator type exposes the following members.

Constructors
  NameDescription
Public methodCrossSectionSlotDecorator(ICrossSection)
Construct a new ICrossSection slot decorator with no bottom and top slot defined. Use one ore more of [!:SetBottomSlot(ISlot,double)], SetTopSlot(ITopSlot, Double), SetBottomSlot(BottomSlotType, Double), SetTopSlot(TopSlotType, Double) to add slot functionality.
Public methodCrossSectionSlotDecorator(BottomSlotType, Double, TopSlotType, Double, ICrossSection)
Construct a new ICrossSection slot decorator with predefined bottom and top slot types.
Top
Properties
  NameDescription
Public propertyApplyCoordinates
Flag specifying whether the Coordinates is to be applied or not
Public propertyBaseCrossSection
Base cross section. The base cross section has no location and holds data in depth, not in water level.
Public propertyBottomLevel
The Bottom level of the cross section.

It can differ from the BottomLevel when sediments are present and added in the bottom of the cross section.

Public propertyBottomSlotStartDepth
Start depth of the bottom slot
Public propertyCoordinates
Gets or sets the cross section coordinates, i.e., the geographical coordinates of line that the cross section follows.
Public propertyCrossSection
Get the underlying cross section
Public propertyHeight
Height of the cross section
Public propertyInfo
Generel info on this cross section, user specified, can be empty. In Mike11 XNS editor called cross section ID (though it does not identify the cross section)
Public propertyInterpolated
Returns true if the CrossSection is interpolated from other cross sections
Public propertyIsOpen
Return true if the cross section is open
Public propertyLocation
Defines the location of the current cross section. The Z-coordinate is the bottom level of the cross section (unless defined by the raw data (the open cross sections)).
Public propertyMaximumWidth
Maximum width of the cross section
Public propertyMinWaterDepth
Minimum water depth of the cross section.

If the water depth goes below this depth, it will be corrected to match this depth.

This can be negative, in case the cross section has a slot attached.

Public propertyResistanceFactorProportionality
A proportionality factor that is multiplied with the resistance factor. ResistanceFactorProportionality is used by the resistance factor boundaries to adjust the resistance factor. Default value: 1.0
Public propertyResistanceFormulation
The ResistanceFormulation that is used for this crossSection and stored in the processed data.

This may differ from the ones specified in the Formulation, which is the formulation for the raw data.

Public propertySedimentArea
Xs area of stored sediment.
Public propertySedimentResistanceFactor
Sediment resistance factor
Public propertySedimentWidth
Width of sediment surface layer.

For a pipe/canal, this will vary with time. For a river this is constant.

Public propertyTopoID
The TopoID set that this cross section belongs to. TODO: See where for details?
Public propertyTopSlot
Top slot
Public propertyZMax
The maximum value of Z in the cross section.
Public propertyZMin
The minimum value of Z in the cross section.

It can differ from the BottomLevel when sediments are present and added in the bottom of the cross section.

Top
Methods
  NameDescription
Public methodClone
Creates a new object that is a copy of the current instance.
Public methodCompareTo
Compares the current instance with another object of the same type.
Public methodStatic memberCreateSlotDecorator
Create a slot decorator for the cross section.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodExtrapolate
Returns an extrapolated CrossSection, i.e., a copy of this cross section at the new location.
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 methodGetAdditionalSurfaceArea
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.
Public methodGetArea
Return the cross sectional geometric area, at the given water level.
Public methodGetConveyance
Get the conveyance at the specified water level
Public methodGetCriticalDepth(Double)
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.
Public methodGetCriticalDepth(Double, Double, Double) Obsolete.
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. MU version for Closed Irregular cross sections.
Public methodGetCriticalDepthOld
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.
Public methodGetFlowArea
Return the cross sectional flow area, at the given water level.
Public methodGetFlowAreaDerivative
Get storagewidth as dA/dh from neighboring values in processed XS areas at waterLevel This is how M11 does it - ONLY USED IN M11 SCHEME WHEN COMPARING DIRECTLY WITH M11 RESULTS Only implemented in XSOpen for now
Public methodGetFlowAreaWithoutBottomSlot
Return the cross sectional area, also called the flow area, at the given water level.
Public methodGetFrictionValuesNoBottomSlot(Double)
Values required to calculate friction factor for higher order friction term
Public methodGetFrictionValuesNoBottomSlot(Double, Double, Double, Double, Double)
Values required to calculate friction factor for higher order friction term
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetHydraulicRadius
Returns the hydraulic radius for the given water level. The radius are calculated as one of : todo: check: Resistance Radius. Effective area, hydraulic radius Total area, hydraulic radius.
Public methodGetHydraulicRadiusDerivative
Get the derivate of the hydraulic radius at the given water level.
Public methodGetNaturalDepth(Double, Double, HDParameterData)
Gets the Natural depth for a given discharge [m3/s] and slope [dimensionless] The natural depth is the depth where the flow resistance and velocity balances, i.e., the Manning formula is fullfilled: Q = M*A*R^(2/3)*sqrt(I)
Public methodGetNaturalDepth(Double, Double, Double, HDParameterData)
Gets the Natural depth for a given discharge [m3/s] and slope [dimensionless] The natural depth is the depth where the flow resistance and velocity balances, i.e., the Manning formula is fullfilled: Q = M*A*R^(2/3)*sqrt(I)

The natural depth will only be used when above the "outlet" water level. The minDNat can be set to the "outlet" water level, to save computations when natural depth is smaller than this "outlet" water level.

Public methodGetNaturalDepthOld
Gets the Natural depth for a given discharge [m3/s] and slope [dimensionless] The natural depth is the depth where the flow resistance and velocity balances, i.e., the Manning formula is fullfilled: Q = M*A*R^(2/3)*sqrt(I)
Public methodGetResistanceFactor
Resistance factor for the given water level. This will always return absolute resistance values.
Public methodGetResistanceFactorDerivative
Get the derivative of the resistance factor at the given water level
Public methodGetStorageWidth
Returns the width from left bank to right bank at the given water level.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetVolumeFromAdditionalSurfaceArea
Return the integrated additional surface area from the bottom of the top slot to waterLevel
Public methodHasBottomSlot
Returns true if the decorator has a bottom slot
Public methodInBottomSlot
Check if we are in bottom slot. Returns false when no bottom slot is active.
Public methodInitialize
Initialize cross section. Calculates processed data if needed.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPrepare
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.
Public methodSetBottomSlot(BottomSlotType, Double)
Set bottom slot type and start depth (where bottom slot is to start).
Public methodSetBottomSlot(IBottomSlot, Double)
Set bottom slot and start depth (where bottom slot is to start). if bottomSlot is null, bottom slot functionality is disabled.
Public methodSetTopSlot(ITopSlot, Double)
Set top slot type and depth (where top slot is to start).
Public methodSetTopSlot(TopSlotType, Double)
Set top slot type and depth (where top slot is to start).
Public methodSetTopSlotWidth
Set top slot width. Only valid if top slot is of type TopSlotConstantARW. Throws an exception otherwise. Used to override the default width which is the width of the cross section where the top slot begins.
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUpdateDatum
Update datum for cross section
Public methodUpdateSedimentArea
Update area of sediment and reset buffers

The sediments are placed in the bottom of the cross section/pipe, creating a new flat bottom of sediments.

The cross section is not changed, but outputs, as GetArea(Double), are modified to take into account the area taken by the sediments.

This is used by the "sewer" morphology updater.

Public methodValidate
Validates that this cross sections is set up correctly.
Public methodZMinFromCenter
The minimum value of Z in the cross section (bottom level) at a distance dx from the center of the cross section.
Top
Extension Methods
  NameDescription
Public Extension MethodCalculateNaturalDepth
Gets the Natural depth for a given discharge [m3/s] and slope [dimensionless] The natural depth is the depth where the flow resistance and velocity balances, i.e., for Manning resistance formulation when Manning formula is fullfilled:
Q = M*A*R^(2/3)*sqrt(I)
(Defined by CrossSectionExtensions.)
Public Extension MethodGetCapacity
Get the capacity=conveyance*sqrt(slope) at the specified water level and slope.
(Defined by CrossSectionExtensions.)
Public Extension MethodGetConveyance
Get the conveyance at the specified water level and slope.

The slope must be postive

(Defined by CrossSectionExtensions.)
Public Extension MethodGetDelh
Return delh for the cross section.
(Defined by CrossSectionExtensions.)
Top
Remarks
Using a decorator design pattern type (itself implementing ICrossSection)
See Also