When biodegradable organic waste (measured as biochemical oxygen demand, BOD) enters a river, bacteria consume it and use up dissolved oxygen (DO) faster than the river's surface can replace it. DO first falls, then recovers as reaeration outpaces the (now-diluted) demand — the classic Streeter–Phelps oxygen sag curve (1925), still the basis of real river-permitting models:
Oxygen deficit D(t) = Csat − DO(t)
D(t) = kd·L0 /(kr−kd) · (e^(−kd t) − e^(−kr t)) + D0·e^(−kr t)
L0 = initial BOD (mg/L) kd = deoxygenation rate (1/day)
kr = reaeration rate (1/day) D0 = deficit at the outfall (mg/L)
t = x / v (travel time to distance x at stream velocity v)
Reaeration depends on how turbulent and shallow the river is, via the O'Connor–Dobbins correlation used here:
kr = 3.9 · √v / H^1.5 (v in m/s, H in m, kr in 1/day)
The sag reaches its lowest DO (the critical point) where deoxygenation and reaeration exactly balance, dD/dt = 0:
tc = 1/(kr−kd) · ln[ (kr/kd) · (1 − D0(kr−kd)/(kd·L0)) ]
Dc = (kd/kr)·L0·e^(−kd·tc)
- L0 / kd — how much oxygen-demanding waste enters and how fast bacteria break it down; both deepen the sag.
- v / H — a fast, shallow stream reaerates quickly (high kr) and barely sags; a slow, deep one recovers poorly.
- The teal ribbon traces DO(x) downstream; it dips toward the riverbed at the critical point and climbs back as reaeration wins. The white buoy drifts downstream in real time at the chosen velocity, and its readout tracks the DO it is experiencing right now.
Csat (oxygen saturation) is held at 9.2 mg/L, typical for a 20°C freshwater stream; the outfall mixes to an initial deficit D0 = 1.5 mg/L.