Click or drag to resize

Catchments Class

A collection of Rainfall Runoff catchments
Inheritance Hierarchy
SystemObject
  DHI.Mike1D.RainfallRunoffModuleCatchments

Namespace:  DHI.Mike1D.RainfallRunoffModule
Assembly:  DHI.Mike1D.RainfallRunoffModule (in DHI.Mike1D.RainfallRunoffModule.dll) Version: 19.0.0.0 (11.1.1.1111)
Syntax
public class Catchments : ICatchments, IList<ICatchment>, 
	ICollection<ICatchment>, IEnumerable<ICatchment>, IEnumerable, 
	IReadOnlyList<ICatchment>, IReadOnlyCollection<ICatchment>

The Catchments type exposes the following members.

Constructors
  NameDescription
Public methodCatchments
Initializes a new instance of the Catchments class
Top
Properties
  NameDescription
Public propertyCalibrationPlotOutputFolder
Folder for calibration plots.
Public propertyCount
Number of grid points
Public propertyCurrentTime
Time of which all catchments has been updated to.
Public propertyIsReadOnly
Public propertyItem
Get a catchment via its index
Public propertyLastTimeStepPerformedEvent
Gets Last Time Step Performed Event
Public propertyMaxTimeStep
Maximum time step step used in RunUntil
Public propertyMinTime
Minimum time specifies how far back in time the catchment caches values. Set to MinValue to not cache values.
Public propertyMinTimeStep
Minimum time step step used in RunUntil
Public propertyPauseSimulation
If this is true, then the simulation will pause before the next timestep
Public propertyRuntimeDiagnostics
Diagnostics instance for the Catchments. Used during runtime.
Public propertyStopwatchPostTimeStepEvent
Stop watch, timing post time step event
Public propertyTsBuffer
The TsBuffer used by this collection of catchments
Top
Methods
  NameDescription
Public methodAdd
Add a catchment to the collection
Public methodClear
Public methodContains
Public methodCopyTo
Public methodEnableTimeBuffer
Enable time buffering for all catchments.

Required when running adaptive time stepping HD simulations

Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
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 methodFind
Get a catchment via its model id
Public methodFindAll
Get a catchment via its name. Returns null if no catchment has this name.
Public methodFinish
Finish simulation. Calls finish on catchments requiring finalization.
Public methodGetEnumerator
Returns an enumerator that iterates through the collection.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIndexOf
Searches for the specified catchment and returns the zero-based index of the item, or -1 if not found
Public methodInitialize(IBoundaryData, IDiagnostics)
Initialize Rainfall Runoff models. Sets up static data.
Public methodInitialize(IBoundaryData, ADComponentData, STData, RainfallRunoffData, IDiagnostics)
Initialize Rainfall Runoff models. Sets up static data.
Public methodInsert
Insert catchment into list at specified index
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodPerformTimestep
Perform time step, progressing all catchments with the CurrentTime as their CurrentTime one time step.

Since catchments may have different time steps, it is unknown how many catchments are performing a time step every time this method is called.

Public methodPrepare(DateTime, RRParameters, Diagnostics) Obsolete.
Prepare Rainfall Runoff models. Sets up dynamic data so that the model is ready for first time step.
Public methodPrepare(DateTime, DateTime, RRParameters, Diagnostics, IConnection)
Prepare Rainfall Runoff models. Sets up dynamic data so that the model is ready for first time step.
Public methodRemove
Remove catchment.
Public methodRemoveAt
Remove catchment at specified index.
Public methodResetSearchMaps
This will clear the search maps used for finding catchment based on model id or catchment names

If doing intensive operations on the index setter, ItemInt32, it is a good idea to reset the search maps (from a performance point of view). Also, if the search maps some some reason gets out-of-sync, this is a backdoor for resetting the search map.

The search maps will be rebuild whenever one of the methods requiring them is called.

Public methodRunUntil
Performs time steps until the time is reached
Public methodSetupCalibrationPlots
Public methodSort(IComparerICatchment)
Sort the catchments using the specified comparer.

Remember to sort combined catchments as the last ones

Sort is implemented explicitly to avoid overhead in updating the search maps when sorting methods uses the ItemInt32 directly.

Public methodSort(ComparisonICatchment)
Sort the catchments using the specified comparison.

Remember to sort combined catchments as the last ones

Sort is implemented explicitly to avoid overhead in updating the search maps when sorting methods uses the ItemInt32 directly.

Public methodSortCombinedLast
Sort such that combined catchment occur last in the list
Public methodStopRainfallRunoffSimulation
Set a flag that will force the simulation to stop after the current time step
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUpdate
Public methodValidate
Validates the object
Public methodValidate(IDiagnostics, IBoundaryData)
Validates the object
Top
Events
  NameDescription
Public eventPostTimeStepEvent
An event that is called everytime a timestep was successfully performed.
Public eventPreTimeStepEvent
An event that is called everytime a timestep is to be performed.
Top
Extension Methods
  NameDescription
Public Extension MethodBinarySearchICatchment(ICatchment)Overloaded.
Searches the entire sorted IListT for an element and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

(Defined by GenericExtensions.)
Public Extension MethodCode exampleBinarySearchICatchment(FuncICatchment, Int32)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

This differs from the "ordinary" binary search in allowing a comparer delegate that defines whether an item is found (returning 0), whether the item in the list is before (<0) or after (>0) that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

Examples
If having a list of doubles, to find 4.5 in the list, use:
int index = list.BinarySearch(d => d.CompareTo(4.5))
(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICatchment(ICatchment, IComparerICatchment)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICatchment, TKey(FuncICatchment, TKey, TKey)Overloaded.
Searches the entire sorted IListT for an element and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

(Defined by GenericExtensions.)
Public Extension MethodBinarySearchICatchment, TKey(FuncICatchment, TKey, TKey, IComparerTKey)Overloaded.
Searches the entire sorted IListT for an element using the provided comparer and returns the zero-based index of the element.

If the key is not found, a negative number is returned, which can be intepreted as the bitwise complement of the interval of indices that the key is in between, i.e.

list[interval-1] < key < list[interval]

This differs from the "ordinary" binary search in allowing a keySelectorcomparer that knows how to compare a class with its key. Example, if the list contains classes of type T having an id number and the class is sorted on that id, then the keySelector returns the id number for that class.

(Defined by GenericExtensions.)
Public Extension MethodFindAll
Find all catchments with the specified name, and providing the specified quantity
(Defined by RRExtensions.)
Public Extension MethodFindIndexICatchment(PredicateICatchment)Overloaded.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the list.
(Defined by GenericExtensions.)
Public Extension MethodFindIndexICatchment(Int32, PredicateICatchment)Overloaded.
Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the ListT that extends from the specified index to the last element.
(Defined by GenericExtensions.)
Public Extension MethodSortICatchmentOverloaded.
Sorts the elements in the entire List{T} using the default comparer.

A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved.

If the provided IList is either an array or a list, the build in sorting method is used (also quick sort).

(Defined by GenericExtensions.)
Public Extension MethodSortICatchment(IComparerICatchment)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A quick sort algorithm is used. Quick sort is a un-stable sort algorithm i.e. if two elements are equal their order may not be preserved.

If the provided IList is either an array or a list, the build in sorting method is used (also quick sort).

(Defined by GenericExtensions.)
Public Extension MethodSortStableICatchmentOverloaded. (Defined by GenericExtensions.)
Public Extension MethodSortStableICatchment(IComparerICatchment)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved.

(Defined by GenericExtensions.)
Public Extension MethodSortStableICatchment(ComparisonICatchment)Overloaded.
Sorts the elements in the entire List{T} using the provided comparer.

A merge sort algorithm is used. merge sort is a stable sort algorithm i.e. if two elements are equal their order are preserved.

(Defined by GenericExtensions.)
Top
See Also