2.0.0b10
catchment modelling framework
Loading...
Searching...
No Matches

Calculates the overflow of a canopy storage using a kinematic wave approach. More...

+ Inheritance diagram for CanopyOverflow:
+ Collaboration diagram for CanopyOverflow:

Detailed Description

Calculates the overflow of a canopy storage using a kinematic wave approach.

This model routes only water that exceeds the canopy capacity to the ground with an ad hoc estimated function:

\[q_{CO} = \left(\frac{V_{act}-V_{max}}{V_{max}}\right) ^2 \cdot 2400 \frac{A_{cell}}{1000}\]

With:

  • \(q_{CO}(t)[\frac{m^3}{day}]\): The flux from canopy to the ground
  • \(V_{act}[mm]=1000 [mm/m] \frac{V_{canopy}[m^3]}{A_{cell} [m^2]}\) The stored water of the canopy in mm
  • \(V_{max}[mm]=c_{LAI}[mm] LAI\) The capacity of the canopy in mm, defined by the factor CanopyCapacityPerLAI [mm/LAI], and the leaf area index LAI. (see: cmf::upslope::Vegetation)

Public Member Functions

real conc (cmf::math::Time t, const cmf::water::solute &_Solute)
 Returns the concentration of the flux.
 
flux_node::ptr get_target (const flux_node &inquirer)
 Returns the other end of a connection than the asking end.
 
flux_node::ptr get_target (int index) const
 With index 0, the left node is returned, with index 1 the right node of the connection.
 
real get_tracer_filter ()
 A value ranging from 0 to 1 to filter tracers out of the water flux.
 
real get_tracer_filter (solute S)
 A value ranging from 0 to 1 to filter tracers out of the water flux.
 
bool kill_me ()
 Deregisters this connection from its nodes. Returns true if only one reference is left.
 
flux_node::ptr left_node () const
 Returns the left node of this connection.
 
real q (const flux_node &inquirer, cmf::math::Time t)
 Returns the current flux through a connection. Negative signs mean out of the inquirer, positive are inflows to the inquirer.
 
void refresh (cmf::math::Time t)
 Performes a new calculation of the flux.
 
flux_node::ptr right_node () const
 returns the right node of this connection
 
void set_tracer_filter (real value)
 A value ranging from 0 to 1 to filter tracers out of the water flux.
 

Static Public Member Functions

static CanopyOverflowuse_for_cell (cmf::upslope::Cell &cell)
 Creates a new connection between canopy and surfacewater and does a bunch of other things.
 

Public Attributes

const std::string type
 A string describing the type of the connection.
 

Member Function Documentation

◆ conc()

real conc ( cmf::math::Time t,
const cmf::water::solute & _Solute )
inherited

Returns the concentration of the flux.


If not overridden, it returns the concentration of the source of the flux (direction depending)

◆ get_tracer_filter()

real get_tracer_filter ( )
inherited

A value ranging from 0 to 1 to filter tracers out of the water flux.

1.0 is no filter and 0.0 means no solute is crossing this connection

◆ set_tracer_filter()

void set_tracer_filter ( real value)
inherited

A value ranging from 0 to 1 to filter tracers out of the water flux.

1.0 is no filter and 0.0 means no solute is crossing this connection

◆ use_for_cell()

static CanopyOverflow * use_for_cell ( cmf::upslope::Cell & cell)
static

Creates a new connection between canopy and surfacewater and does a bunch of other things.

  • If no canopy storage is available, it is created
  • The precipitation is split up between throughfall and intercepted rain
  • CanopyStorageEvaporation connects the canopy with cell.evaporation