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

Structure for the description of reaches with a triangular cross section. More...

+ Inheritance diagram for TriangularReach:
+ Collaboration diagram for TriangularReach:

Detailed Description

Structure for the description of reaches with a triangular cross section.

Although double triangular cross section reach are rarely met, a triangular reach does scale with its water load, and is therefore preferable in case where nothing about IChannel geometry is known

Public Member Functions

 TriangularReach (double l, double bankSlope=2)
 Creates a new triangular reach type.
 
virtual double A (double V) const
 Returns the area of the surface for a given volume.
 
virtual double get_channel_width (double depth) const
 Returns the width of the stream at a given depth.
 
virtual double get_depth (double area) const
 Returns the depth at a given crossection area.
 
virtual double get_flux_crossection (double depth) const
 Returns the crossection area at a given depth.
 
double get_length () const
 Length of the reach.
 
virtual double get_wetted_perimeter (double depth) const
 Returns the wetted perimeter at a given depth.
 
virtual double h (double V) const
 Returns the depth of a given volume.
 
virtual double qManning (double A, double slope) const
 Calculates the flow rate from a given water volume in the reach.
 

Public Attributes

double BankSlope
 Inverse slope of the bank \( \Delta = 0.5 \frac w d \).
 

Member Function Documentation

◆ get_channel_width()

virtual double get_channel_width ( double depth) const
virtual

Returns the width of the stream at a given depth.

\begin{eqnarray*} w &=& 2 \Delta\ d \end{eqnarray*}

Implements IChannel.

◆ get_depth()

virtual double get_depth ( double area) const
virtual

Returns the depth at a given crossection area.

\begin{eqnarray*} d &=& \sqrt{\frac{A}{\Delta}} \end{eqnarray*}

Implements IChannel.

◆ get_flux_crossection()

virtual double get_flux_crossection ( double depth) const
virtual

Returns the crossection area at a given depth.

\begin{eqnarray*} A &=& d^2 \Delta \end{eqnarray*}

Implements IChannel.

◆ get_wetted_perimeter()

virtual double get_wetted_perimeter ( double depth) const
virtual

Returns the wetted perimeter at a given depth.

\begin{eqnarray*} P &=& 2 d \sqrt{1+\Delta^2} \end{eqnarray*}

Implements IChannel.

◆ qManning()

virtual double qManning ( double A,
double slope ) const
virtualinherited

Calculates the flow rate from a given water volume in the reach.

\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{z_{max} - z_{min}}{l} \mbox{ Slope of the reach} \end{eqnarray*}

Returns
Flow rate [m3/s]
Parameters
AThe area of the cross section [m2]
slopeThe slope of the reach [m/m]