2.0.0b10
catchment modelling framework
Loading...
Searching...
No Matches
ConstantFlux Class Reference

Produces a constant but changeable flux from a source to a target, if enough water is present in the source. More...

+ Inheritance diagram for ConstantFlux:
+ Collaboration diagram for ConstantFlux:

Detailed Description

Produces a constant but changeable flux from a source to a target, if enough water is present in the source.

\[ q=\begin{cases}0 & V_{source}\le V_{min}\\ q_0 \frac{V_{source} - V_{min}}{t_{decr} q_{0} - V_{min}} & V_{source} \le t_{decr} q_{0}\\ q_{0} & \end{cases}\]

This is similar to a neumann boundary, however this is not a boundary condition, but water is taken from the source (left) water storage and limited by that water storage.

Public Member Functions

 ConstantFlux (cmf::water::WaterStorage::ptr source, cmf::water::flux_node::ptr target, real maximum_flux, real minimal_state=0, cmf::math::Time flux_decrease_time=cmf::math::h)
 Produces a constant but changeable flux from a source to a target, if enough water is present in the source.
 
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.
 

Public Attributes

cmf::math::Time FluxDecreaseTime
 The flux is linearly decreased, if it takes less than FluxDecreaseTime \(t_{decr}\) to reach MinState with MaxFlux.
 
real MaxFlux
 The requested flux \(q_{0}\left[frac{m^3}{day}\right]\).
 
real MinState
 The minimal volume of the state \(V_{min}\left[m^3\right]\).
 
const std::string type
 A string describing the type of the connection.
 

Constructor & Destructor Documentation

◆ ConstantFlux()

ConstantFlux ( cmf::water::WaterStorage::ptr source,
cmf::water::flux_node::ptr target,
real maximum_flux,
real minimal_state = 0,
cmf::math::Time flux_decrease_time = cmf::math::h )

Produces a constant but changeable flux from a source to a target, if enough water is present in the source.

Parameters
sourceThe source of the water
targetThe target of the water
maximum_fluxThe requested flux \(q_{0} [\frac{m^3}{day}]\)
minimal_stateMinimal volume of stored water in source in \([m^3]\)
flux_decrease_time(cmf::math::Time)

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