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

Connecting surface water bodies using a diffusive wave. More...

+ Inheritance diagram for Manning_Diffusive:
+ Collaboration diagram for Manning_Diffusive:

Detailed Description

Connecting surface water bodies using a diffusive wave.

This approach might not be numerical stable for deep water with small gradient cmf for experimental reasons

\begin{eqnarray*} q_{Manning}&=& A R^{\frac 2 3} \sqrt{\frac {\Delta_z} n} \\ A &=& \frac V l \mbox{, (Crosssectional area of the wetted crossection, Volume per length)} \\ R &=& \frac A {P(d)} \\ P(d) &=& \mbox{ the perimeter of the wetted crosssection, a function of reach depth} \\ d(V) &=& \mbox{ the depth of the reach a function of the volume} \\ \Delta_z = \|\frac{h_1 - h_2}{l} \mbox{ Slope of the reach waterlevels} \\ n&=&\mbox{Manning friction number} \end{eqnarray*}

Public Member Functions

 Manning_Diffusive (cmf::river::OpenWaterStorage::ptr left, cmf::water::flux_node::ptr right, const cmf::river::IChannel &reachtype)
 Creates a diffusive wave connection between to open water storages.
 
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

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

Constructor & Destructor Documentation

◆ Manning_Diffusive()

Manning_Diffusive ( cmf::river::OpenWaterStorage::ptr left,
cmf::water::flux_node::ptr right,
const cmf::river::IChannel & reachtype )

Creates a diffusive wave connection between to open water storages.

Parameters
left,rightThe nodes to be connected by the diffusive wave. Left needs to be an open water storage
reachtypeThe channel geometry

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