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

Structure for the description of structural parameters of a reach. More...

+ Inheritance diagram for SWATReachType:
+ Collaboration diagram for SWATReachType:

Detailed Description

Structure for the description of structural parameters of a reach.

Uses the SWAT IChannel geometry (see SWAT Theoretical Documentation, Version 2005 (ch. 7:1.1), Neitsch et al. 2005), in this class referenced as SWATtheoDoc. Differences to the SWAT geometry: The flood plain is not plain, but has a small slope=0.5%, but has an infinite width

Public Member Functions

 SWATReachType (double l)
 Creates a new reach structure with standard values (small natural river) BottomWidth = 3m, ChannelDepth = 0.5m, BankSlope = 2, nManning = 0.0035, FloodPlainSlope = 200.
 
 SWATReachType (double l, double BankWidth, double Depth)
 Creates a new reach structure from a give width and depth.
 
virtual double A (double V) const
 Returns the area of the surface for a given volume.
 
virtual double get_channel_width (double depth) const
 Calculates the flow width from a given actual depth [m] using the actual IChannel geometry.
 
virtual double get_depth (double area) const
 Calculates the actual depth of the reach using the IChannel geometry.
 
virtual double get_flux_crossection (double depth) const
 Calculates the wetted area from a given depth using the IChannel geometry.
 
double get_length () const
 Length of the reach.
 
virtual double get_wetted_perimeter (double depth) const
 Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry.
 
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 river bank \( \Delta_{bank} \left[\frac m m\right] \).
 
double BottomWidth
 get_channel_width of the IChannel bottom \( w_{bottom} [m] \)
 
double ChannelDepth
 get_depth of the IChannel \( d_{IChannel} [m] \)
 
double FloodPlainSlope
 Inverse slope of the flood plain \( \Delta_{flood\ plain} \left[\frac m m\right] \).
 

Constructor & Destructor Documentation

◆ SWATReachType()

SWATReachType ( double l,
double BankWidth,
double Depth )

Creates a new reach structure from a give width and depth.

Parameters
llength of the channel [m]
BankWidthget_channel_width of the reach from bank to bank [m]
DepthDepth of the reach [m]

Member Function Documentation

◆ get_channel_width()

virtual double get_channel_width ( double depth) const
virtual

Calculates the flow width from a given actual depth [m] using the actual IChannel geometry.

\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ w &=& w_{bottom} + 2 \Delta_{bank} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ w &=& w_{bank} + 2 \Delta_{Floodplain} (d-d_{IChannel} \\ \end{eqnarray*}

See also
SWATtheoDoc eq. 7:1.1.3

Implements IChannel.

◆ get_depth()

virtual double get_depth ( double area) const
virtual

Calculates the actual depth of the reach using the IChannel geometry.

\begin{eqnarray*} d &=& \sqrt{\frac{A}{\Delta_{bank}} + \frac{{w_{bottom}}^2}{4 {\Delta_{bank}}^2}} - \frac{w_{bottom}}{2 \Delta_{bank}} \\ \mbox{If } d>d_{IChannel} &&\\ d&=&d_{IChannel}+\sqrt{\frac{A-A(d_{IChannel})}{\Delta_{flood\ plain}} + \frac{{w(d_{IChannel})}^2}{4 {\Delta_{flood\ plain}}^2}} - \frac{w(d_{IChannel})}{2 \Delta_{flood\ plain}} \\ \end{eqnarray*}

See also
SWATtheoDoc eq. 7:1.2.4
Returns
get_depth of the reach [m]
Parameters
areaWetted area of a river cross section [m2], can be obtained by V/l, where V is the stored volume and l is the reach length

Implements IChannel.

◆ get_flux_crossection()

virtual double get_flux_crossection ( double depth) const
virtual

Calculates the wetted area from a given depth using the IChannel geometry.

In most cases use get_flux_crossection=V/l, where V is the stored volume and l is the reach length

\begin{eqnarray*} \mbox{If } d>d_{IChannel} &&\\ A &=& \left(w_{bottom} + \Delta_{bank} d\right) d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ A &=& A(d_{IChannel}) + \left(w(d_{IChannel} + \Delta_{flood\ plain} \left(d-d_{IChannel}\right)\right) (d-d_{IChannel}) \\ \end{eqnarray*}

See also
SWATtheoDoc eq. 7:1.1.4
Returns
Wetted area of a river cross section [m2]
Parameters
depthDepth of the reach [m]

Implements IChannel.

◆ get_wetted_perimeter()

virtual double get_wetted_perimeter ( double depth) const
virtual

Calculates the wetted perimeter from a given actual depth [m] using the actual IChannel geometry.

\begin{eqnarray*} \mbox{If } d\le d_{IChannel} && \\ P &=& w_{bottom} + 2 \sqrt{1+ {\Delta_{bank}}^2} d \\ \mbox{else, } && \mbox{if the river floods the flood plain} \\ P &=& P(d_{IChannel} + 2 \sqrt{1+ {\Delta_{flood\ plain}}^2} (d-d_{IChannel}) \\ \end{eqnarray*}

See also
SWATtheoDoc eq. 7:1.1.5
Parameters
depthActual depth of the reach [m]

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]