CIV-470 · Lesson 9 of 12 · 20 min

River engineering and sediment transport

Rivers are not pipes. A natural channel adjusts its width, depth, slope and pattern to the water and sediment it receives, and when engineers change either, by building a culvert, armouring a bank, paving a watershed or removing gravel, the channel responds, sometimes far from the works and years later. Below the Ridgeway Road culvert, Kestrel Creek shows the evidence: a scour pool and a perched outlet at the culvert, an eroding outside bend where CIV-440 placed a rockfill buttress, and gravel bars building where the slope flattens toward the lake. This lesson gives the team the tools to understand those changes and to design works that live with the river.

Channel form and the dominant discharge

Alluvial channels, those formed in sediment the stream itself can move, take a few characteristic patterns. Straight channels are rare and usually short; meandering channels, with sinuous bends, pools on the outside of bends and riffles between them, are the common form on moderate slopes with cohesive banks; braided channels, with many threads around shifting bars, form on steep slopes with abundant coarse sediment and weak banks. The pattern responds to slope, discharge, sediment supply and bank strength.

The channel's size is set mainly by moderately frequent floods, not by the rare large ones. The dominant or channel-forming discharge, often approximated by the bankfull discharge, which just fills the channel before spilling onto the floodplain, recurs on average every 1 to 2 years in many streams. Over many years, these flows move the most sediment, because large floods are rare and small flows move little. Empirical hydraulic geometry relations express the result: width grows roughly with the square root of the dominant discharge, and meander wavelengths are typically 10 to 14 channel widths.

Three plan sketches of channel patterns: a straight channel, a meandering channel with pools on the outside of bends and riffles between, and a braided channel with several threads around bars. Below them, a sketch of Lane's balance: a beam pivoting on sediment size, with water discharge times slope on one side and sediment load times sediment size on the other.
Channel patterns and Lane's balance.

Lane's balance

Lane's qualitative relation, published in 1955, is the river engineer's first check on how a channel will respond to change. It states that the product of water discharge and slope is in balance with the product of sediment load and sediment size:

\[Q_w\,S \;\propto\; Q_s\,D_{50}\]

If the sediment supply is cut, for example below a dam or a culvert that traps gravel, the left side is too heavy and the stream degrades, lowering its bed until the slope falls or the bed coarsens. If the water discharge increases, as after urbanization, the stream erodes its bed and banks and enlarges. If more sediment arrives than the stream can carry, as from an eroding construction site, it aggrades, building bars and losing capacity. The relation is not a design equation, but it predicts the direction of change correctly in most cases.

On Kestrel Creek, the existing culvert's smooth barrel accelerated the flow and the scour pool below it deepened, lowering the bed for about 200 ft downstream, while the reduced slope near the lake caught the gravel coming down. The new embedded crossing of lesson 6, graded to the natural profile, removes the cause of the degradation.

Initiation of motion: Shields

A particle on the bed moves when the shear stress of the flow exceeds a critical value. For uniform flow in a wide channel, the bed shear stress is

\[\tau_0 = \rho g R S\]

Shields expressed the threshold in 1936 as a dimensionless shear stress, now called the Shields parameter, which for coarse sand and gravel in turbulent flow has a critical value of roughly 0.03 to 0.06; 0.047 is a common design value:

\[\tau^* = \frac{\tau_0}{(\rho_s - \rho)\,g\,D} \qquad \tau^*_c \approx 0.047\]

Setting \(\tau^* = \tau^*_c\) gives the largest particle a flow can move, a quick test of whether a bed or a riprap layer is stable. Mixtures complicate the picture: larger stones shelter smaller ones, a coarse surface layer called armor protects finer material beneath, and once the armor is broken by a large flood, much more sediment can move.

Bedload transport

Once the threshold is exceeded, the rate of bedload transport, the sediment rolling, sliding and hopping along the bed, rises steeply with the excess shear. The Meyer-Peter and Müller formula of 1948, derived from flume tests with gravel, remains the most widely used for gravel-bed streams:

\[q^* = 8\big(\tau^* - 0.047\big)^{3/2} \qquad q_b = q^*\sqrt{(S_s - 1)\,g\,D^3}\]

where \(q_b\) is the volumetric bedload rate per unit width. Formulas like this one are uncertain by a factor of two or more in real streams, where the sediment supply, the armor layer and the bed forms differ from the flume, so they are best used for comparisons, such as before and after a change, or calibrated against measured transport or the growth of bars.

Bed shear, Shields parameter and Meyer-Peter and Müller bedload for Kestrel Creek, and Isbash riprap at the culvert outlet.
# Kestrel Creek below the culvert: bed stability (Shields), bedload (Meyer-Peter Mueller) and riprap
from math import sqrt
UNITS = "US"
SI = UNITS == "SI"
g, rho, Ss = 9.81, 1000.0, 2.65
S = 0.004
def normal_depth(Q, b=3.0, z=2.0, n=0.035):
    lo, hi = 0.01, 5.0
    for _ in range(60):
        y = (lo + hi) / 2; A = y * (b + z * y); P = b + 2 * y * sqrt(1 + z * z)
        if A * (A / P) ** (2 / 3) * S ** 0.5 / n > Q: hi = y
        else: lo = y
    return y, A, P
f = (lambda x: f"{x:.2f} m", lambda t: f"{t:5.1f} Pa", lambda q: f"{q:5.1f} m3/s") if SI else \
    (lambda x: f"{x/0.3048:.2f} ft", lambda t: f"{t*0.020885:5.2f} psf", lambda q: f"{q*35.315:5.0f} cfs")
D50 = 0.016                                     # bed gravel, m
print(f"Bed D50 = {D50*1000:.0f} mm" if SI else f"Bed D50 = {D50/0.0254:.2f} in.")
for name, Q in (("bankfull (about 1.5-year)", 3.2), ("10-year", 9.5), ("100-year", 18.0)):
    y, A, P = normal_depth(Q); R = A / P
    tau = rho * g * R * S
    tstar = tau / ((Ss - 1) * rho * g * D50)
    qb = 8 * max(0.0, tstar - 0.047) ** 1.5 * sqrt((Ss - 1) * g * D50 ** 3)   # m2/s per unit width
    Dmove = tau / (0.047 * (Ss - 1) * rho * g)
    rate = qb * 3.0 * 2650 * 3600 / 1000             # t per hour across the 3 m bed
    msg = (f"bedload {rate:.1f} t/h across the 3 m bed" if SI else f"bedload {rate*1.1023:.1f} tons/h across the 10 ft bed") if qb > 0 else "bed is stable"
    dm = f"{Dmove*1000:.0f} mm" if SI else f"{Dmove/0.0254:.1f} in."
    print(f"{name:26s} Q {f[2](Q)}: depth {f[0](y)}, shear {f[1](tau)}, Shields {tstar:.3f}; moves stones up to {dm}; {msg}")
# riprap at the culvert outlet: Isbash, with C = 0.86 for high turbulence
V_out = 2.5                                       # mean exit velocity at the 100-year flow, m/s
Drip = V_out ** 2 / (2 * g * 0.86 ** 2 * (Ss - 1))
Wstone = Ss * 9.81 * 3.1416 / 6 * Drip ** 3       # kN, sphere of that diameter
print(f"\nOutlet riprap by Isbash: D = V^2 / (2g C^2 (Ss - 1)) = {f[0](Drip)}"
      + (f"; stone mass about {Wstone/9.81*1000:.0f} kg" if SI else f"; stone weight about {Wstone*224.8:.0f} lb"))
print(f"Specify a class with D50 of at least {f[0](0.30 if SI else 0.3048)}, thickness {f[0](0.60 if SI else 0.6096)}, on a filter")
Output
Bed D50 = 0.63 in.
bankfull (about 1.5-year)  Q   113 cfs: depth 2.18 ft, shear  0.40 psf, Shields 0.073; moves stones up to 1.0 in.; bedload 8.6 tons/h across the 10 ft bed
10-year                    Q   335 cfs: depth 3.86 ft, shear  0.62 psf, Shields 0.116; moves stones up to 1.5 in.; bedload 36.9 tons/h across the 10 ft bed
100-year                   Q   636 cfs: depth 5.30 ft, shear  0.81 psf, Shields 0.149; moves stones up to 2.0 in.; bedload 67.1 tons/h across the 10 ft bed

Outlet riprap by Isbash: D = V^2 / (2g C^2 (Ss - 1)) = 0.86 ft; stone weight about 54 lb
Specify a class with D50 of at least 1.00 ft, thickness 2.00 ft, on a filter

Reading the results

The creek's 0.6 in. gravel bed is already mobile at the bankfull flow of about 113 cfs: the bed shear of 0.40 psf gives a Shields parameter of 0.073, above the 0.047 threshold, and the flow can move stones up to about 1 in. The Meyer-Peter and Müller formula predicts about 9 tons/h of bedload across the 10 ft bed at bankfull, rising to 37 tons/h at the 10-year flow and 67 tons/h at the 100-year flow. Those numbers are uncertain, but they make the point that the creek moves its bed every year or two and that any structure must pass gravel, not trap it.

Bank protection

Banks erode by fluvial attack, the direct removal of particles by flowing water, which is worst on the outside of bends, and by mass failure, when an undercut or saturated bank slides into the channel, often during the falling limb of a flood or in spring thaw. Protection must address both: armor the toe against scour and keep the bank face stable. Rock riprap is the most common armor. It is sized so that the stones are stable under the design velocity or shear stress, placed in a layer typically twice the median stone size thick, graded so the stones interlock, keyed into the bed below the expected scour depth, and laid on a granular or geotextile filter so that the bank soil cannot wash out through it.

At a culvert outlet the flow is concentrated and turbulent, and Isbash's relation, from closure works for dams, gives a conservative stone size:

\[D = \frac{V^2}{2g\,C^2\,(S_s - 1)} \qquad C = 0.86\ \text{(high turbulence)},\ 1.20\ \text{(low turbulence)}\]

For the 8.2 ft/s exit velocity of the new box at the 100-year flow, the result is about 0.86 ft, a stone of about 50 lb. The team specifies a riprap class with a median size of at least 1.0 ft, 2 ft thick on a filter, extending downstream until the flow has spread to the channel width, with the apron set level with the bed so that no new drop forms.

Bioengineering, the use of living plants alone or with structures, can protect banks where velocities are moderate and gives habitat and shade that rock does not. Live stakes of willow and dogwood driven into the bank, brush layers buried in lifts of soil, and vegetated geogrids or coir logs at the toe root into the bank within one or two seasons. A common hybrid on Kestrel Creek's bends is a rock toe below the bankfull level with planted lifts above it. The CIV-440 buttress at the eroding bend will be topped with planted soil lifts for the same reason.

Worked problem

Is a riprap layer stable?

Riprap with a median size of 0.82 ft lines a channel where the 100-year flow has a hydraulic radius of 4.6 ft on a slope of 0.008. Is it stable by the Shields criterion?

Show solution
  1. \[\tau_0 = 62.4(4.6)(0.008) = 2.30\ \text{psf}\]
  2. \[\tau^* = \frac{2.30}{(165 - 62.4)(0.82)} = 0.027\]
  3. \(\tau^* = 0.027 < 0.047\), so the stones are stable, with a margin of about 1.7 on the critical value.

Answer: The riprap is stable on a straight reach; on the outside of a bend, where shear can be 1.5 to 2 times higher, a larger class would be needed.

Natural channel design and ice

When a reach must be rebuilt, as below the new crossing, practice now favors natural channel design: a channel sized for the bankfull discharge, with a sinuous plan, pools and riffles, a floodplain the stream can reach in moderate floods, and bed material matched to what the stream can move. Designs are based on a reference reach, a stable stretch of the same stream or a similar one nearby whose dimensions are measured and scaled. The goal is a channel that is stable in the sense that it neither aggrades nor degrades over time, not one that never moves; minor adjustments are expected and accepted.

Northern rivers add ice. Freeze-up forms border ice and frazil that can accumulate as hanging dams; break-up in spring can produce ice jams that raise water levels well above open-water floods at the same discharge, especially at bends, bridges and where the slope flattens near a lake. Lake Superior's own ice and storm surges also affect the creek mouth. Flood levels near the mouth of Kestrel Creek are checked for ice jams as well as for open-water floods.

Practical points

  • Use Lane's balance to predict the direction of a channel's response before designing works.
  • Size channels for the dominant, roughly bankfull, discharge and let the floodplain carry larger floods.
  • Check bed and riprap stability with the Shields parameter; allow for higher shear on bends.
  • Treat bedload formulas as uncertain and use them for comparison or with calibration.
  • Put riprap on a filter, key it below scour depth and set outlet aprons level with the bed.

Common mistakes

  • MistakeDesigning a channel for the 100-year flood only.

    InsteadThe channel's form is set by frequent flows; design for the dominant discharge and check floods separately.

  • MistakeArmouring one bank without considering the other.

    InsteadProtecting one bank can deflect the attack to the opposite bank or downstream.

  • MistakePlacing riprap directly on fine soil.

    InsteadUse a filter, or the soil washes out and the riprap slumps.

  • MistakeRemoving gravel bars to increase capacity.

    InsteadBars form where the stream deposits its load; removing them starves downstream reaches and they return.

Summary and key terms

  • Alluvial channels adjust their form to the water and sediment they receive; patterns are straight, meandering or braided.
  • The dominant, roughly bankfull, discharge recurs every 1 to 2 years and sets the channel size.
  • Lane's balance predicts degradation, aggradation or enlargement after a change.
  • The Shields parameter defines the threshold of motion; Meyer-Peter and Müller give bedload in gravel streams.
  • Kestrel Creek's gravel moves at bankfull (Shields 0.073); the culvert outlet needs riprap of at least 1.0 ft.
  • Bank protection combines rock armor on a filter with bioengineering, and natural channel design copies a stable reference reach.
Alluvial channel
A channel formed in sediment that the stream itself can transport.
Bankfull discharge
The flow that just fills the channel before spilling onto the floodplain.
Degradation
Lowering of a stream bed over time by erosion.
Aggradation
Raising of a stream bed over time by deposition.
Shields parameter
The dimensionless bed shear stress used to define the threshold of particle motion.
Bedload
Sediment moving along the bed by rolling, sliding and saltation.
Armor layer
A coarse surface layer of bed material that protects finer material beneath.
Bioengineering
The use of living plants, alone or with structures, to stabilize banks.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. Find the bed shear stress for a hydraulic radius of 2.6 ft on a slope of 0.006.

    Show answer

    \(\tau_0 = 62.4(2.6)(0.006) = 0.97\) psf.

  2. What is the largest particle that flow can move, with \(\tau^*_c = 0.047\)?

    Show answer

    \(D = 0.97/(0.047 \times 102.6) = 0.20\) ft.

  3. A watershed is urbanized and peak flows double while sediment supply falls. Predict the response with Lane's balance.

    Show answer

    The left side increases and the right decreases, so the stream degrades and enlarges, eroding its bed and banks.

  4. Size outlet riprap by Isbash for a velocity of 8.2 ft/s with high turbulence.

    Show answer

    \(D = 9.8^2/(2 \times 32.2 \times 0.86^2 \times 1.65) = 1.22\) ft.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz