This is Daganzo's Cell Transmission Model (CTM) — the discretized numerical algorithm that traffic engineers actually run to solve the Lighthill-Whitham-Richards conservation law. The road is split into cells of length Δx; each cell holds a density k (veh/km). Every tick, a sending function and receiving function cap how many vehicles can cross each cell boundary:
S(k) = min(v_f·k, Q_max) (can this cell SEND?)
R(k) = min(Q_max, w·(k_jam−k)) (can the next cell RECEIVE?)
flow across boundary = min(S_upstream, R_downstream)
k_i(t+Δt) = k_i(t) + (Δt/Δx)·(flow_in − flow_out)
v_f is free-flow speed, w is the backward "congestion wave" speed, and k_jam is bumper-to-bumper density. The triangular fundamental diagram this implies has a free branch (q=v_f·k) and a congested branch (q=w·(k_jam−k)) meeting at capacity Q_max.
Reducing capacity at one cell (a lane closure) means its Q_max drops. Once demand exceeds that reduced Q_max, density piles up just upstream of the bottleneck — a moving interface between free flow and the queue. Its speed is exactly the Rankine-Hugoniot shock condition for this conservation law:
u_shock = (q₂ − q₁) / (k₂ − k₁)
where (k₁,q₁) is the free-flow state upstream and (k₂,q₂) is the congested state at the queue. A negative u_shock means the jam's back edge crawls upstream against traffic — the real mechanism behind a "phantom" backup that starts miles before any visible obstruction.
- Inflow demand — vehicles per hour trying to enter upstream. Push it past the bottleneck's reduced capacity to trigger a shock.
- Free-flow speed — v_f in the fundamental diagram; raises capacity and cruising speed together.
- Bottleneck capacity — the lane-closure severity, as a percent of full-road capacity, applied at one cell.