XSBase Class |
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).
Namespace: DHI.Mike1D.CrossSectionModule
The XSBase type exposes the following members.
Name | Description | |
---|---|---|
AutoProcess |
Automatically calculate processed data if
1) They are missing
2) They are not up-to-date (ProcessedDataStatus is NotUpdated)
| |
BottomLevel |
Lowest level/depth of the processed data.
Note: ProcessedLevels must be defined
| |
CrossSectionType |
Type of cross section
| |
EquidistantLevels |
Flag to indicate whether equidistant levels are used.
| |
FlowResistance |
Flow resistance. Contains information on flow resistance type
(ManningM or Chezy, Z dependence etc) and flow resistence values.
| |
HasProcessedData | ||
Height |
Height of the cross section.
| |
Interpolated |
Returns true if the CrossSection is interpolated from other cross sections
| |
IsOpen |
Return true if cross section is open
| |
MaximumStorageWidth |
Maximum storage width of the cross section
| |
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. | |
ModifiedResistanceFactors |
Modified resistance factors. These will be different than ProcessedResistanceFactors
if one of the Multiply functions has been executed. This is matching the ModifiedFormulation | |
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 | |
MorphologicalDivisionType |
Specifies the type of morphological division
that is applied.
For ST modeling only. | |
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.
| |
ProcessedAdditionalSurfaceAreas |
Processed additional storage area
| |
ProcessedAreas |
Processed geometric areas
| |
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.
| |
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.
| |
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)
| |
ProcessedFlowAreas |
Processed flow areas
| |
ProcessedLevels |
Processed levels
| |
ProcessedRadii |
Processed radii
| |
ProcessedRadiiDerivatives |
Processed radii
| |
ProcessedResistanceFactors |
Processed resistance factors. Their type corresponds to the
Resistance formulation specified in FlowResistance.
| |
ProcessedStorageWidths |
Processed storage widths
| |
ProcessingLevelsSpecs |
Access to all level-related specifications for pre-processing of cross section
data
| |
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. | |
TopLevel |
Highest level/depth of the processed data.
| |
TopoID |
The TopoID set that this cross section belongs to. TODO: See where for details?
|
Name | Description | |
---|---|---|
AdjustProcessedLevels(Double) |
Adjust the processed levels. Used to ensure that _processedLevels[0] has a certain value
| |
AdjustProcessedLevels(Double, Double) |
Adjust the processed levels, subtract delta.
Used to ensure that _processedLevels[0] has a certain value
| |
AdjustProcessedLevelSpecs |
Adjust the processed level specification.
| |
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.
| |
CalculateProcessedData |
Calculate processed data
| |
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.
| |
CheckProcessedData |
Validates that this cross sections is set up correctly.
| |
ClearOriginalProcessedData |
Clear any stored processed data arrays
| |
Clone |
Creates a new object that is a copy of the current instance.
| |
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;
| |
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.
| |
CreateAllProcessedArrays |
Creates all processed data arrays with the given number of levels.
| |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows 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.
| |
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.
| |
GetArea |
Return the cross sectional geometric area,
for index and fraction into the processed data.
| |
GetAreaByIntegratingWidths |
Return the cross sectional geometric area,
integrating the storage widths
| |
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.
| |
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.
| |
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)
| |
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)
| |
GetFlowAreaDerivative |
Get storagewidth as dA/dh from neighboring values in processed XS areas at waterLevel.
| |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetHydraulicRadius(Int32) |
Returns the hydraulic radius for index and fraction into the processed data
| |
GetHydraulicRadius(Int32, Double) |
Returns the hydraulic radius for index and fraction into the processed data
| |
GetHydraulicRadiusDerivative |
Get the derivate of the hydraulic radius for index and fraction into the processed data.
| |
GetLevelFromArea |
For a given area, find the level.
| |
GetMaximumValues |
Set maximum area, maximum hydraulic radius and maximum storage width.
| |
GetNaturalDepthOld | Obsolete.
Get the natural depth at a given discharge and slope
| |
GetResistanceFactor |
Returns the resistance factor.
| |
GetResistanceFactorsDerivative |
Get the derivative of the resistance factor at the given water level
| |
GetStorageWidth(Int32) |
Returns the width from left bank to right bank for index and fraction into the processed data
| |
GetStorageWidth(Int32, Double) |
Returns the width from left bank to right bank for index and fraction into the processed data
| |
GetType | Gets 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
| |
InheritProcessedDataFrom |
Makes all processed data arrays point to the same arrays as in the other.
(reference copy, not value copy)
| |
Initialize |
Calculate processed data if needed
| |
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
| |
MemberwiseClone | Creates 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.
| |
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
| |
RestoreModifiedResistanceFactors |
if Multiply... or Convert... or similar was called earlier,
reset the modified resistance factors
to the original processed resistance factors
| |
RestoreOriginalProcessedData |
Restores any stored processed data arrays previously
stored.
| |
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) | |
SetAllProcessedValues |
set all the processed data (references to the member array).
All values are in SI.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Validate |
Validates that this cross sections is set up correctly.
|
Name | Description | |
---|---|---|
_bAutoProcess |
Allow CalculateProcessedDataIfNeeded. Set to false to disable
| |
_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.
| |
_crossSectionType |
Type of cross section.
| |
_distanceBetweenLevels |
The distance between levels if equidistant levels are ued.
If equidistant levels are used, then getIndex and getFraction are faster.
| |
_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.
| |
_flowResistance |
Flow resistance
| |
_height | ||
_isInitialized |
Flag defining whether Initialize has been called.
| |
_isPrepared |
Flag defining whether Prepare(Diagnostics, HDParameterData, ILocation) has been called.
| |
_modifiedFormulation |
Flow resistance formulation
| |
_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.
| |
_modifiedResistanceFactorsDerivatives |
Processed resistance factor derivatives for the modified resistance factors.
| |
_numberOfProcessedLevels |
The number of processed levels
| |
_originalProcessedData |
A copy of original processed data, in case they have
been modified by the engine during the simulation.
| |
_processedAdditionalSurfaceAreas |
Processed additional storage areas
| |
_processedAreas |
Processed geometric areas
| |
_processedCriticalDischarges |
Table with processed critical discharges, created automatically when required.
| |
_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.
| |
_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)
| |
_processedFlowAreas |
Processed flow ares
| |
_processedLevels |
Processed depths
| |
_processedRadii |
Processed radii
| |
_processedRadiiDerivatives |
Processed radius derivatives
| |
_processedResistanceFactors |
Processed resistance factors
| |
_processedStorageWidths |
Processed storage widths
| |
_resistenceDistri |
Resistance distribution
|
Name | Description | |
---|---|---|
GetConveyance |
Get the conveyance at the specified processed level
(Defined by CrossSectionExtensions.) |