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

A simplification of macro pore flux for swelling soils. More...

+ Inheritance diagram for LayerBypass:
+ Collaboration diagram for LayerBypass:

Detailed Description

A simplification of macro pore flux for swelling soils.

Connects the surfacewater of the cell with deeper layers, assuming the presence of cracks. At saturation level of the target layer, the cracks are closed

\[q_{crack} = K_{max,crack} \left(1-\left(\frac{w-w_0}{1-w_0}\right)^\beta\right) A\]

where:

  • \(q_{crack}\) is the flux from the surface water to the target layer in m3/day
  • \(K_{max,crack}\) is the maximum conductivity of the cracks in m/day
  • \(w\) is the actual wetness of the target layer
  • \(w_0\) is saturation, where the shrinkage of the cracks starts
  • \(\beta\) is an empirical shape parameter of the crack size/wetness relation
  • \(A\) is the area of the cell

Public Member Functions

 LayerBypass (cmf::water::flux_node::ptr left, cmf::upslope::SoilLayer::ptr right, real Kmax=100., real w0=0.0, real beta=1.0)
 Creates a layer bypass connection.
 
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.
 
real K (real w)
 
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

real beta
 is an empirical shape parameter of the crack size/wetness relation
 
real Kmax
 maximum conductivity of the cracks in m/day
 
const std::string type
 A string describing the type of the connection.
 
real w0
 is the actual wetness of the target layer
 

Constructor & Destructor Documentation

◆ LayerBypass()

LayerBypass ( cmf::water::flux_node::ptr left,
cmf::upslope::SoilLayer::ptr right,
real Kmax = 100.,
real w0 = 0.0,
real beta = 1.0 )

Creates a layer bypass connection.

Parameters
leftThe source of the flux, usually the surfacewater of the cell
rightThe target soil layer
Kmaxmaximum conductivity of the cracks in m/day
w0is the actual wetness of the target layer
betais an empirical shape parameter of the crack size/wetness relation

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

◆ K()

real K ( real w)
Returns
the actual crack conductivity
Parameters
wthe wetness of the target layer

◆ 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