De-icing runoff in a stream - 2D oxygen sag

Glycol runoff from an airport apron consumes oxygen as bacteria break it down; watch the dissolved-oxygen dip travel downstream.

Switch to 3D

Presets

Playback

Stream and runoff

Make the runoff stronger or the water warmer and see whether oxygen falls below the fish-stress level.

Layers

Model checks

The science

Streeter-Phelps model

Water that carries biochemical oxygen demand L (mg/L of oxygen the bacteria will consume) loses it at rate kd, and the dissolved-oxygen deficit D below saturation grows by that consumption and shrinks by re-aeration at rate ka: dL/dt = -kdL, dD/dt = kdL - kaD. For a parcel travelling for time τ = x/u: D(τ) = D0e-kaτ + kdL0/(ka-kd) (e-kdτ - e-kaτ). The oxygen minimum ("sag") occurs at tc = ln[(ka/kd)(1 - D0(ka-kd)/(kdL0))]/(ka-kd) with Dc = (kd/ka) L0 e-kdtc.

Inputs

The runoff mixes with the river at the outfall: L0 = QeLe/(Qr+Qe). The rates are corrected for temperature, kd ∝ 1.047T-20 and ka ∝ 1.024T-20; saturation uses the APHA fit 14.652 - 0.41022T + 0.007991T² - 7.7774×10-5T³. Propylene glycol has a large oxygen demand (roughly 1 g O2 per g), so a few thousand mg/L in the runoff matters. The simulation moves the water with a first-order upwind scheme; sharp edges of a pulse blur slightly (numerical dispersion).

Honest simplifications: one-dimensional plug flow with no real dispersion, a clean upstream river (zero background BOD and no oxygen deficit), no sediment oxygen demand, no photosynthesis, no nitrification, constant discharge and temperature; below 0 mg/L the model is no longer valid. Real runoff is also toxic and cold, which this demonstration does not model.

What to try
  • "Winter storm pulse": the oxygen dip rides along with the slug of runoff and recovers behind it.
  • "Continuous discharge": the simulation settles on the dashed Streeter-Phelps curve.
  • "Heavy runoff": the fish indicators turn dark red where oxygen falls below 2 mg/L.
  • "Well-aerated rapids": a high re-aeration rate makes the sag shallow.
Oxygen along the river (simulation vs closed form)
Ultimate BOD along the river
Lowest oxygen versus runoff strength