# Model help:TopoFlow-Channels-Kinematic Wave

## TopoFlow-Channels-Kinematic Wave

The module is used to compute flow routing in a D8-based, spatial hydrologic model with Kinematic Wave process.

## Model introduction

This process component is part of a spatially-distributed hydrologic model called TopoFlow, but it can now be used as a stand-alone model. The kinematic wave method (Lighthill and Whitham, 1955) is the simplest method for modeling flow in open channels. This method combines mass conservation with the simplest possible treatment of momentum conservation, namely that all terms in the general momentum equation (pressure gradient, local acceleration and convective acceleration) are negligible except the friction and gravity terms. A flow in which gravitational acceleration is exactly balanced by friction is referred to as steady, uniform flow. For these flows the water surface slope, energy slope and bed slope are all equal.

## Model parameters

Parameter Description Unit
Component status Enabled / Disabled [-]
Input directory The location of the input files [-]
Output directory The location for the output files [-]
Site prefix [-]
Case prefix [-]
Number of steps Number of simulation steps [-]
Time step [sec]
D8 flow code file grid of D8 flow codes in binary file [-]
D8 slope file grid of D8 flow slopes in binary file [-]
Manning flag Option to use Manning'n for roughness [-]
Law of Wall flag Option to use Law of Wall for roughness [-]
Manning N type grid of D8 flow slopes in binary file (Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence ) [-]
Manning N Manning'n value [m / s^1/3]
Roughness z0 type Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence [m]
Roughness z0 Law of Wall roughness value [m]
Parameter Description Unit
Bed width type Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence [-]
Bank width bed width of trapezoid cross-section [m]
Bank angle type Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence [-]
Bank angle bank angle of trapezoid cross-section [degree]
Init. depth type Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence [-]
Init. depth initiate flow depth (If scalar, use 0.0) [m]
Sinuosity type Allowed input types: Scalar / Grid /Time_Series /Grid_Sequence [-]
Sinuosity absolute channel sinuosity [m / m]
Parameter Description Unit
Save grid timestep time interval between saved grids [sec]
Save Q grids toggle Option to save computed Q grids [-]
Save Q grids file file name for Q grid stack [m^3 / s]
Save u grids toggle Option to save computed u grids [-]
Save u grids file file name for u grid stack [m / s]
Save d grids toggle Option to save computed d grids [-]
Save d grids file file name for d grid stack [m]
Save f grids toggle Option to save computed f grids [-]
Save f grids file file name for f grid stack
Parameter Description Unit
Save pixels timestep time interval between time series vales [sec]
Save Q pixels toggle Option to save computed Q time series [-]
Save Q pixels file file name for Q time series [m^3 / s]
Save u pixels toggle Option to save computed u time series [-]
Save u pixels file file name for u time series [m / s]
Save d pixels toggle Option to save computed d time series [-]
Save d pixels file file name for d time series [m]
Save f pixels toggle Option to save computed f time series [-]
Save f pixels file file name for f time series [-]

## Uses ports

• Meteorology
• Snow (Snowmelt)
• Evap (Evaporation)
• Infil (Infiltration)
• Satzone (Subsurface flow in saturated zone)
• Ice (Icemelt)
• Diversions (sources, sinks, canals)

## Provides ports

• Channels (surface water flow in a network of channels)
• Configure (tabbed dialog GUI to change settings)
• Run (only if used as the Driver)

## Main equations

• Mass conservation equation
 $\displaystyle{ \Delta V \left (i,t \right)=\Delta t \ast \left (R \left (i,t \right) \Delta x \Delta y -Q \left (i,t \right) +\Sigma_{k} Q \left (k,t \right) \right) }$ (1)
• Mean water depth in channel segment (if θ > 0 )
 $\displaystyle{ d=\left\{\begin{matrix}\{ [ w^2 + 4 \tan \left (\theta\right) V / L] ^{\frac{1}{2}} -w\} / [ 2 \tan \left (\theta\right)] & \theta \gt 0 \\ V / [ w \ast L] & \theta = 0 \end{matrix}\right. }$ (2)
• discharge of water
 $\displaystyle{ Q=v \ast A_{w} }$ (3)
• section-averaged velocity (Manning's formula)
 $\displaystyle{ v=n^{-1} \ast R_{h}^{\frac{2}{3}} \ast S^{\frac{1}{2}} }$ (4)
• section-averaged velocity (Law of the Wall)
 $\displaystyle{ v=\left (g \ast R_{h} \ast S\right)^{\frac{1}{2}} \ast LN\left (a \ast d / z_{0}\right) /\kappa }$ (5)
 $\displaystyle{ R_{h}= A_{w} /P_{w} }$ (6)
• wetted cross-sectional area of a trapezoid
 $\displaystyle{ A_{w}= d \ast [ w + \left (d \ast \tan \left (\theta\right)\right)] }$ (7)
• Wetted perimeter of a trapezoid
 $\displaystyle{ P_{w}= w + [ 2 \ast d / cos\left (\theta\right)] }$ (8)
• wetted volume of a trapezoidal channel
 $\displaystyle{ V_{w}=d^2 \ast [ L \ast \tan \left (\theta\right)] +d \ast [L \ast w] }$ (9)

## Notes

Notes on Input Parameters

The input variables for the kinematic wave method should usually be specified as grids, except in special cases.

Single grids and grid sequences are assumed to be stored as RTG and RTS files, respectively. Time series are assumed to be stored as text files, with one value per line. For a time series or grid sequence, the time between values must coincide with the timestep provided.

Flow directions are determined by a grid of D8 flow codes, and flow codes are assumed to follow the Jenson (1984) convention (i.e. [NE,E,SE,S,SW,W,NW,N] → [1,2,4,8,16,32,64,128]) that is also used for RiverTools D8 flow grids. Flow grids and slope grids can be created by RiverTools or a similar program and the other grids can be created using tools in the TopoFlow Create menu.

Bed slope, S, can be computed from a DEM by using the Create → Profile-smoothed DEM dialog or by using hydrologic GIS software such as RiverTools. In the current version of TopoFlow (1.5 beta), pixels in flat areas where the slope is zero are arbitrarily assigned a positive value equal to the smallest positive slope that occurs in the DEM. If they were not assigned a positive value, then flow would accumulate at these pixels, leading to unrealistic spikes in the grid of flow depths. However, this work-around could lead to unrealistically large velocities at these locations.

The current version assumes that all channels have trapezoidal cross-sections (see Notes below) but allows bottom-width and bank angle to vary spatially as grids. TopoFlow has pre-processing tools in the Create menu for creating grids of bed width, bank angle and bed roughness. The Create → Channel Geometry Grids → With Area Grid tool allows you to parameterize these variables as power-law functions of contributing area. The Create → Channel Geometry Grids → With HS Order Grid tool allows you to assign values based on Horton-Strahler order.

Each pixel is classified as either a hillslope pixel (overland flow) or a channel pixel (channelized flow) and appropriate parameters must be used for each. For overland flow, w >> d, Rh → d, and bank angle drops out. Overland flow can then be modeled with a large value of Manning's n, such as 0.3. For channelized flow, the variation of n with bed grain size can be modeled with Strickler's equation (see Notes below). RiverTools users can use the Grid Calculator as a convenient way to create new grids as functions of existing grids.

If a sinuosity greater than 1 is specified, then bed slopes are reduced by dividing them by this value. As with the other variables, it is most appropriate to specify a grid in this case.

It is physically unrealistic to specify a spatially uniform initial flow depth by entering a scalar value greater than zero for init_depth. This will result in a very large peak in the hydrograph and may cause TopoFlow to crash. The Create → RTG File for Initial Depth tool can be used to create a grid of initial flow depths that varies spatially and is in steady-state equilibrium with a specified baseflow recharge rate.

Notes on the Equations

All variables and their units can be seen by expanding the Nomenclature section above.

Conservation of mass, in integral form, is represented by the equations above. The quantity, R, that appears in the first equation is known as the effective rainrate or excess rainrate and represents the sum of all vertical contributions to a grid cell's mass balance. R is computed as R = (P + M + G) - (I + E), where P = precipitation, M = snowmelt, G = seepage from subsurface, I = infiltration and E = evapotranspiration. (Note that R is technically not the same as the runoff, since runoff includes horizontal fluxes.) The summation sign in the first equation adds up all horizontal inflows to a grid cell from its neighbor grid cells. Mean channel flow depth, d, is then computed from channel geometry and the water volume that is computed for the corresponding grid cell. Note that channel length depends on distance between grid cell centers and sinuosity, while cross-sections are trapezoidal. When the bank angle, θ is greater than zero, the flow depth required to accommodate the water volume is computed by solving the last equation (a quadratic) for d to get the second equation.

The kinematic wave method (Lighthill and Whitham, 1955) is the simplest method for modeling flow in open channels. This method combines mass conservation with the simplest possible treatment of momentum conservation, namely that all terms in the general momentum equation (pressure gradient, local acceleration and convective acceleration) are negligible except the friction and gravity terms. A flow in which gravitational acceleration is exactly balanced by friction is referred to as steady, uniform flow. For these flows the water surface slope, energy slope and bed slope are all equal. For a thin channel section of length Δs in the downstream direction, the total weight of water (resolved parallel to the channel bed) is given by:

Fgrav = ρ * g * S * Aw * Δs,

where ρ is the density of water, g is the gravitational constant, Aw is the wetted cross-sectional area of the channel and S is the bed slope (rise over run). According to our best theoretical understanding of turbulent boundary layers (Schlicting, 1960), the shear stress near the channel bed can be computed as:

τb = f * ρ * v2

where v is an appropriate flow velocity (e.g. depth-averaged for a wide, trapezoidal channel) and f is a dimensionless friction factor given by

f = [ κ / LN ( a * d / z0) ]2.

Here, d is an appropriate flow depth (i.e. distance along a ray to the surface), z0 is the roughness height (units of length), a is an integration constant (given by 0.368 or 0.476, depending on the formulation), and κ = 0.408 is von Karman's constant. It follows that for a thin channel section of length Δs in the downstream direction, the total frictional force can be written as:

Ffric = Τb * Pw * Δs

where Pw is the wetted perimeter of the channel cross section and Τb is the average of τb over the wetted perimeter. As a first approximation (based on our expression for τb), we can take

Τb = f * ρ * v2,

where v is the section-averaged velocity. Combining the above equations, setting Fgrav equal to Ffric and solving for v we find that:

v = ( g * Rh * S / f )1/2

where Rh = (Aw / Pw) is known as the hydraulic radius. When we substitute the friction factor, f, from above (but perhaps with d replaced by Rh), the resulting expression is known as the law of the wall.

Note that the law of the wall is a general result for turbulent flows and is also used by the snowmelt energy-balance models for modeling air flow in the atmospheric boundary layer. However, in the setting of open-channel flow, an alternative known as Manning's formula is more often used. Manning's formula, which was determined by fitting a power-law to data gives the section-averaged velocity as:

v = Rh 2/3 * S1/2 / n.

Here n is an empirical roughness parameter with the units of [s/m1/3] required to make the equation dimensionally consistent. Due to the empirical nature of this equation, the gravitational constant does not appear explicitly and the balance between friction and gravity is not readily apparent. The variation of n with channel bed grain size is often modeled with Strickler's equation:

n = D501/6 / 21.2

where D50 is the median grain size in meters. This approximation can actually be deduced by requiring Manning's formula to agree with the law of the wall and by assuming that z0 is proportional to D50. It turns out that Manning's formula agrees very well with the law of the wall as long as the relative roughness, (z0 / d) is between about 10-2 and 10-4. This is the range that is encountered in most open-channel flow problems. Smaller relative roughnesses are typically encountered in the case where wind blows over terrain and vegetation.

For a channel with a trapezoidal cross-section that has bottom-width, w and bank-angle, θ, we have: Aw = d * [w + (d * tan(θ))] Pw = w + [2 * d / cos(θ)]

These last two equations can be used to show that Rh = (Aw / Pw) is closely approximated by the flow depth, d, when (w / d) has a value greater than about 10. Notice that when θ=0, the channel has a rectangular cross-section, and when w=0, it has a triangular cross-section.

## Examples

An example run with input parameters, BLD files, as well as a figure / movie of the output

Follow the next steps to include images / movies of simulations: