Chapter 16.3: Turbulence & Health Metrics
16.3.1 The k-epsilon Turbulence Model
While mixing-length theory (Chapter 16.2) provides a useful first approximation for eddy diffusivity, real street canyon flows require a more sophisticated turbulence model. The standard \(k\text{-}\varepsilon\) model solves two transport equations: one for turbulence kinetic energy \(k = \tfrac{1}{2}\langle u_i' u_i' \rangle\) and one for its dissipation rate \(\varepsilon\).
Turbulence Kinetic Energy Equation
$$\frac{\partial k}{\partial t} + u_j \frac{\partial k}{\partial x_j} = \frac{\partial}{\partial x_j}\!\left(\frac{\nu_t}{\sigma_k}\frac{\partial k}{\partial x_j}\right) + P_k - \varepsilon$$
where the production term is:
$$P_k = \nu_t \left(\frac{\partial u_i}{\partial x_j} + \frac{\partial u_j}{\partial x_i}\right)\frac{\partial u_i}{\partial x_j}$$
Dissipation Rate Equation
$$\frac{\partial \varepsilon}{\partial t} + u_j \frac{\partial \varepsilon}{\partial x_j} = \frac{\partial}{\partial x_j}\!\left(\frac{\nu_t}{\sigma_\varepsilon}\frac{\partial \varepsilon}{\partial x_j}\right) + C_{1\varepsilon}\frac{P_k}{k}\varepsilon - C_{2\varepsilon}\frac{\varepsilon^2}{k}$$
Turbulent Viscosity and Diffusivity
The turbulent viscosity is computed from the local values of \(k\) and \(\varepsilon\):
$$\nu_t = C_\mu \frac{k^2}{\varepsilon}$$
The turbulent diffusivity for pollutant transport is:
$$K = \frac{C_\mu\,k^2}{Sc_t\,\varepsilon}$$
Standard Constants
| Constant | Value | Physical Meaning |
|---|---|---|
| \(C_\mu\) | 0.09 | Links k, epsilon to turbulent viscosity |
| \(C_{1\varepsilon}\) | 1.44 | Production of dissipation |
| \(C_{2\varepsilon}\) | 1.92 | Destruction of dissipation |
| \(\sigma_k\) | 1.0 | Turbulent Prandtl number for k |
| \(\sigma_\varepsilon\) | 1.3 | Turbulent Prandtl number for epsilon |
| \(Sc_t\) | 0.7 | Turbulent Schmidt number |
16.3.2 Health Exposure Metrics
Pedestrian Inhaled Dose
The health-relevant quantity is not concentration alone, but the inhaled dose:
$$D = V_E \cdot T_{\text{canyon}} \cdot C_{\text{street}}$$
where \(V_E\) is the breathing (ventilation) rate and \(T_{\text{canyon}}\) is the time spent in the street canyon. Typical values:
- Resting: \(V_E \approx 7.5\) L/min
- Light exercise (walking): \(V_E \approx 20\) L/min
- Heavy exercise (cycling): \(V_E \approx 40\) L/min
A cyclist inhales 5 times the dose of a sedentary person for the same exposure time and concentration, making active travellers in polluted canyons especially vulnerable.
WHO Air Quality Guidelines (2021)
| Pollutant | Annual Mean | 24-hour Mean |
|---|---|---|
| NO₂ | 10 μg/m³ | 25 μg/m³ |
| PM₂.₅ | 5 μg/m³ | 15 μg/m³ |
| PM₁₀ | 15 μg/m³ | 45 μg/m³ |
Ventilation Time Scale
The characteristic time for the canyon to flush its polluted air is:
$$\tau_{\text{vent}} = \frac{W}{C_D\,u_H}$$
For a 20 m wide canyon with \(C_D = 0.005\) and \(u_H = 5\) m/s: \(\tau_{\text{vent}} = 20/(0.005 \times 5) = 800\) s ≈ 13 minutes. During calm periods (\(u_H < 1\) m/s), ventilation times can exceed an hour.
16.3.3 MFG Extension: Pollution-Aware Routing
In Module 12, the Mean-Field Game (MFG) framework for traffic routing used a congestion cost \(F(x, \rho)\) in the Hamilton-Jacobi-Bellman equation. We can replace or augment this with a pollution-aware cost:
$$-\frac{\partial u}{\partial t} + H(x, \nabla u) = F(x, \rho) + \lambda\,C_{\text{OSPM}}(x, \rho)$$
where \(C_{\text{OSPM}}(x, \rho)\) is the OSPM concentration at street segment \(x\) given traffic density \(\rho\), and \(\lambda\) is a policy parameter controlling the weight of pollution exposure relative to travel time.
The key coupling: traffic density \(\rho\) determines emissions (via HBEFA), which feed into OSPM to compute \(C_{\text{OSPM}}\). This modifies the value function \(u\), which in turn changes the optimal routing policy, which changes \(\rho\). The MFG fixed-point now jointly equilibrates congestion and pollution.
$$\rho \xrightarrow{\text{HBEFA}} S_e \xrightarrow{\text{OSPM}} C_{\text{OSPM}} \xrightarrow{\text{HJB}} u \xrightarrow{\text{FPK}} \rho$$
16.3.4 Python: k-epsilon Solver and Pollution Map
We solve the 1D (vertical) steady-state \(k\text{-}\varepsilon\) equations iteratively for a street canyon, then compute the turbulent diffusivity and visualise the results. We also apply OSPM to a synthetic street network.
k-epsilon Canyon Solver & Pollution Map
PythonClick Run to execute the Python code
Code will be executed with Python 3 on the server
16.3.5 Key Takeaways
- The \(k\text{-}\varepsilon\) model provides spatially varying turbulent diffusivity across the canyon, capturing the physics missed by simple mixing length.
- Standard constants (\(C_\mu = 0.09, C_{1\varepsilon} = 1.44, C_{2\varepsilon} = 1.92\)) are well-validated for urban flow applications.
- Health exposure depends on dose = breathing rate x time x concentration; cyclists are 5x more exposed than sedentary persons.
- Ventilation time \(\tau = W/(C_D u_H)\) can exceed an hour during calm conditions, creating persistent pollution episodes.
- The MFG framework from Module 12 can incorporate OSPM pollution costs, jointly optimising for congestion and exposure.