CatchmentSurface Class

Catchment surface class, handling wetting loss, storage loss, infiltration and evaporation

If Infiltration is not defined, the surface is assumed to be impervious, and no infiltration is applied.

Definition

Namespace: DHI.Mike1D.RainfallRunoffModule
Assembly: DHI.Mike1D.RainfallRunoffModule (in DHI.Mike1D.RainfallRunoffModule.dll) Version: 24.0.0.0 (11.1.1.1111)
C#
public class CatchmentSurface : ICatchmentSurfaceData, 
	ICatchmentSurface, ICatchmentSurfaceVariables, ICatchmentSurfaceStateVariables, ICatchmentSurfaceComputationalVariables, IModelStateReadWrite, 
	IDoubleTimeProxy
Inheritance
Object    CatchmentSurface
Derived
More
Implements
IDoubleTimeProxy, IModelStateReadWrite, ICatchmentSurface, ICatchmentSurfaceComputationalVariables, ICatchmentSurfaceData, ICatchmentSurfaceStateVariables, ICatchmentSurfaceVariables

Constructors

CatchmentSurface Default constructor

Properties

ApplyEvaporationOnRain When raining, if true the evaporation is applied at the beginning of the time step, correcting the net rain and limited by the rain. If false, evaporation is applied on non-empty storages in the catchment and can exceed the rain.

In dry periods, this is not used, evaporation is always applied on storages.

ApplyInitialLossRecoveryRateWhenRaining Flag specifying to apply InitialLossRecoveryRate also when it is raining.
AreaFraction Area fraction of the surface Unit: [-].
Depth Depth of water on sub-catchment. State variable. Unit: [m]
DepthOld Depth of water at the previous time step. Computational variable. Unit: [m]
EffectiveAreaFraction Effective area fraction, subtracting area covered by LID's. Default: Same as AreaFraction when no LID's Unit: [-]
EvaporationActual Actual evaporation. Reporting variable. Unit: [m/s]
EvaporationActualOld Evaporation of last time step. Reporting variable. Unit: [m/s]
EvaporationFromTimeSeries True if evaporation is enabled, and an evaporation boundary has been defined.

If set to false the initial recover rate is used during dry periods. Default: False

EvaporationPotential Potential evaporation. Reporting variable. Unit: [m/s]
GlobalDepthDryLimit Dry depth used for switching Horton's mode between dry and wet in Kinematic Wave model when InfiltrationAfterRain == true. In this case the switching to regeneration of infiltration capacity is controlled by a low limit of the water depth on the surface. Unit: [m] Default: 1e-6
Horton Horton, defined only for pervious surfaces.

Returns null if Infiltration is not Horton.


Obsolete
ID The ID of the surface
Infiltration Infiltration calculator. This defines whether the surface is pervious.

If null, the surface is impervious.

InfiltrationActual Actual infiltration. Reporting variable. Unit: [m/s]
InfiltrationActualOld Infiltration of last time step Reporting variable. Unit: [m/s]
InfiltrationAfterRain True if infiltration shall occur also after rain has ended.

Default is true

.
InfiltrationPotential Potential infiltration. Reporting variable. Unit: [m/s]
InfiltrationPotentialOld Potential infiltration of last time step Reporting variable. Unit: [m/s]
InitialLossRecoveryRate Recovery rate for initial loss capacity. The initial loss capacity is regenerated in dry periods by a linear recovery rate.

Used as constant evaporation, when evaporation is not defined explicitly. If evaporation is defined explicitly (see EvaporationFromTimeSeries), this is neglected.

Unit: [m/s] Default: 0.00005 [m/hour] = 1.2 [mm/day]

Loss Loss, other than infiltration which goes into InfiltrationActual.

Additionally, the wetting loss and storage loss is not included in this loss, and these are considered a part of catchment water volume, which cannot be routed.

Unit: [m/s]
LossOld Loss of last time step
RainRate Rain rate, which can be modified by some processes.

For example, rain rate can be modified by snow module.

Unit: [m/s]
RainRateOld Rain rate of last time step. Unit: [m/s]
SkipOffers Skip the creation of offers.
SnowModule Snow module handling snow storage.

If null, the snow module is not applied.

SnowStorage Snow storage at time N+1. Unit: [m]
SnowStorageOld Snow storage at previous time N. Unit: [m]
StorageCapacity Storage capacity. Unit: [m]. Not applicable to ImperviousSteep.
StorageLoss Storage loss depth. State variable. Unit: [m]
StorageLossOld Storage loss depth at the previous time step. Computational variable. Unit: [m]
SurfaceIndex Index of the surface in the list of surfaces.
Temperature Temperature from forcing. Unit: Degrees Celcius
Type Impervious or pervious surface type.
UseReverseDraining Revert to old draining order. Set to true to drain in same order as in MOUSE engine.

Reverse draining drains in order: wetting, storage, depth. Hence, when storages are full, wetting and storage will be drained and not depth, depth will be higher and give more runoff. This is visible in low-flow conditions.


Obsolete
WettingCapacity Wetting capacity. Unit: [m].
WettingLoss Wetting loss depth. State variable. Unit: [m]
WettingLossOld Wetting loss depth at the previous time step. Computational variable. Unit: [m]

Methods

AddToOffers(FuncDouble, IQuantity) Adds to offers of catchment surface
AddToOffers(FuncDouble, PredefinedQuantity) Adds to offers of catchment surface
AddToOffers(FuncDouble, PredefinedQuantityRR) Adds to offers of catchment surface
Clone Creates an instance of catchment surface with the reference to the same data
CreateOffers Create offers for catchment surface.
DrainStorage Drains water for the given storage (eg. infiltration)
EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
EvaporateFromStorages Evaporates from depth, storage loss, and wetting loss.
FillStorage Fills a specific storage with a giving amount of inflow (rain). This procedure will update the amount of inflow not added to the storage, and returns the new depth of the storage.
FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object)
FinalizeTimeStep Finalizes catchment surface time step.
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Initialize Initialize catchment surface.
MemberwiseCloneCreates a shallow copy of the current Object.
(Inherited from Object)
Offers List of data types that is offered and can be used in GetValue
PerformTimeStep Perform catchment surface time step.

The catchment surface has several processes: * Snow module * Filling of storages * Evaporation * Infiltration

Prepare Prepare catchment surface for simulation.
PrepareForTimeStep Prepare for catchment surface time step.
ReadState Read state and apply to module. Returns true if state was successfully read.
ResetComputationalVariables Resets computational variable values to zero
ResetStateVariables Resets state variable values to zero
ResetVariables Resets variable values to zero
StateUpdated When state has been updated, this method can be called to update derived/computational variables
TimeOffers List of data types that is offered and can be used in GetValue
TimeValueGetter Get value getter for the specified data quantity
ToStringReturns a string that represents the current object.
(Inherited from Object)
TransferVariablesToOld Transfers previous time step variable values to Old variables.
ValueGetter Get value setter for the specified data quantity
WriteState Write current state of module

Fields

DefaultSurfaceID Default ID for a surface

Extension Methods

Getter

From the proxy, return an FuncTResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.


(Defined by ProxyExtensions)
TimeValueGetter

From the proxy, return an FuncT, TResult for the specified quantity.

It returns the first quantity of that type that is offered, and null if the quantity is not offered.


(Defined by ProxyExtensions)

See Also