2.0.0b10
catchment modelling framework
|
Connects the surfacewater and the most upper layer using a Richards equation like infiltration model. More...
Connects the surfacewater and the most upper layer using a Richards equation like infiltration model.
The potential infiltration is calculated according to the Richards equation. The gradient is from the cell surface to the center of the first layer and the conductivity is the geometric mean of the wetted surface ( \(K_{sat}\)) and the conductivity of the layer center ( \(K(\theta_{layer})\)
\begin{eqnarray*} q_{max} &=& \frac{\Psi_{surface} - \Psi_{soil}}{\Delta z} K A_{cell} \\ K &=& \sqrt{K\left(\theta_{layer}\right)K_{sat}} \\ \Delta z &=& z_{cell} - z_{layer center} \end{eqnarray*}
If the surface water is modeled by a distinct water storage, the actual infiltration is given as the product of the potential infiltration with the coverage of the surface water cmf::upslope::Cell::surface_water_coverage
\[q_{act} = q_{max} \frac{A_{water}}{A_{cell}}\]
If the surface water is no storage on its own, but just a water distribution node, the actual infiltration is the minimum of the potential infiltration and the current inflow (rain, snow melt) to the surface
\[q_{act} = \min\left(q_{max}, \sum{q_{in,surfacewater}}\right)\]
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 void | use_for_cell (cmf::upslope::Cell &c) |
Creates the connection between surfacewater and first soil layer. | |
Public Attributes | |
const std::string | type |
A string describing the type of the connection. | |
|
inherited |
Returns the concentration of the flux.
If not overridden, it returns the concentration of the source of the flux (direction depending)
|
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
|
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