When wind blows over a street canyon of width W between two buildings of height H, the roof-level shear drives a single mechanically-forced recirculating vortex inside the canyon (Oke, 1988; DePaul & Sheih, 1986). This sim solves that vortex from a 2D streamfunction cell:
ψ(x,y) = -A·sin(πx/W)·sin(πy/H)
u = ∂ψ/∂y = -S·U_ref·sin(πx/W)·cos(πy/H)
v = -∂ψ/∂x = S·U_ref·(H/W)·cos(πx/W)·sin(πy/H)
where x runs across the canyon (x=0 leeward wall, x=W windward wall), y is height, and S(H/W) is a vortex-strength factor set by the flow regime (Oke's H/W classification):
- Isolated roughness flow (H/W < 0.3) — buildings are too short/far apart for their wakes to merge; wind mostly blows through, only a weak vortex forms.
- Wake interference flow (0.3 ≤ H/W < 0.65) — wakes begin to interact; a partial, unsteady vortex develops.
- Skimming flow (H/W ≥ 0.65) — wind skims over the roofline entirely and a strong, stable single vortex fills the canyon.
At roof height the vortex top moves with the ambient wind; it then descends the windward wall (fresh air), crosses the street near the ground moving against the wind, and rises up the leeward wall. Traffic exhaust released at street level gets swept by that ground-level branch toward the leeward wall and lifted there — so pedestrian-level pollution is consistently higher on the leeward side, exactly as measured in real street canyons. Particles that reach roof height are entrained into the free-stream wind and ventilated away; each particle also carries a small random-walk term standing in for turbulent diffusion, and is retired after ~45 s (dry deposition / dilution below the sensor threshold).
This is a simplified single-cell analytical model, not a turbulence-resolving CFD run — it reproduces the regime transition and the leeward/windward asymmetry that real measurements and wind-tunnel studies consistently show, without resolving corner eddies or 3D along-street venting.