Introduction
Should engineers and urban planners care about CFD in cities?
Heatwaves are no longer rare events. With three major heatwaves in may, june and july 2026 in Europe, they are becoming the defining climate challenge of our era, turning dense urban environments into heat traps where temperatures can exceed surrounding rural areas by 5 to 10°C. This phenomenon, the Urban Heat Island (UHI) effect, kills thousands of people every summer and strains energy grids to their breaking points.
The question is: can we simulate it accurately enough to design cities with a better resilience to heatwaves ?
A 2022 study published in Sustainability by Y. Qu, M. Milliez, L. Musson-Genon, and B. Carissimo answers with a resounding yes using code_saturne, the open-source CFD solver developed by EDF R&D. Their work simulates the full diurnal thermal cycle of a real neighborhood in the city center of Toulouse, France, validates it against an exceptional experimental dataset, and then uses it to reveal how urban heat fundamentally reshapes pollutant dispersion.
In this article, we will walk you through their methodology, their model and most importantly, their experimental campaigns and code_saturne results.
The core problem: why neutral atmosphere assumptions are dangerous
Most micro-meteorological studies of urban flow and pollution dispersion assume a neutral atmosphere. This means the temperature variations are ignored and buoyancy forces are set to zero. This is computationally convenient but physically wrong, especially during summer days when sun-baked rooftops reach temperatures far above ambient air. Qu et al. demonstrate that this assumption is not just an approximation; it is an error that:
- Misrepresents surface temperatures by tens of degrees
- Underestimates turbulent kinetic energy near rooftop level
- Completely alters predicted pollutant plume shapes
The solution they propose is a fully coupled thermo-radiative-convective model, implemented in code_saturne's atmospheric module, applied to a real district of Toulouse during the CAPITOUL (Canopy and Aerosol Particles Interactions in TOulouse Urban Layer) field campaign.
Presentation of the resolved physics by the model
The physics of urban heat
In cities, heat transfer mainly involves three phenomena that cannot be treated independently:
- Radiative heat transfer: solar radiation heating surfaces, surfaces re-emitting thermal infrared radiation, buildings exchanging radiation with each other and the sky.
- Convective heat transfer: wind carrying heat through street canyons and around buildings, with the critical heat transfer coefficient varying spatially at every wall patch.
- Conductive heat transfer: heat diffusing through walls, rooftops, and the ground subsurface.
The study central contribution is encoding all three into a single, consistent simulation framework.
The surface energy balance
For every surface in the urban domain, every wall patch, every roof tile, every road segment, the model solves a Surface Energy Balance (SEB):
where:
- is the conductive heat flux linking the surface temperature to the internal building temperature or deep soil temperature.
- is the sensible heat flux exchanged with the local airflow.
- is the net radiative flux (shortwaves from the sun + longwave from the buildings thermal radiations).
The net radiative flux is itself decomposed into its shortwave and longwave components:
where:
- is the net shortwave radiative flux: the solar energy actually absorbed by the surface after reflection, with the surface albedo and , , the direct, atmosphere-diffuse, and environment-reflected solar components respectively.
- is the net longwave radiative flux: the balance between the longwave radiation received from the sky () and surrounding buildings (), and the longwave radiation emitted by the surface itself as a gray body ().
Note that anthropogenic heat flux (heat emitted by human activity) and latent heat flux are neglected in this study. This simplification would eventually need to be lifted for a fully general model of a living city, but is appropriate for the dry summer conditions of the CAPITOUL campaign.

The sun emits short-wave radiations, absorbed and re-emitted as long waves radiations by building: these are encoded in . The sensible heat is the heat exchanged with local airflow, that will then advect (transport) it locally. Finally, the buildings and soil have their own temperature that interacts with air by conductive processes . Picture taken from [1]. Anthropogenic heat and latent heat (heat released or absorbed due to phase transitions) are neglected here.
This equation is not solved once for an average surface. It is solved at every surface cell in the mesh, at every timestep, with computed from the local 3D wind field and computed from the 3D radiative transfer solver. This is what makes the model genuinely three-dimensional.
From heat balance to surface temperature
One of the most elegant aspects of this paper is the hybrid thermal scheme: ground temperature and building surface temperature are treated with different models, each chosen to best match the underlying physics.
Ground Temperature: The Force-Restore Method
For the soil, the authors use the classical force-restore method (Deardorff 1978), widely used in meteorological models:
where:
- is the surface temperature on the ground.
- ().
- is the net long-wave radiative flux introduced above.
- is the net short-wave radiative flux introduced above.
- is the sensible heat flux.
- is the thermal admittance of the soil.
- is the deep soil (or internal building) temperature acting as a restoring temperature.
The "force" term (the first term on the right) drives the surface temperature in response to the net energy forcing. The "restore" term (the second) prevents the surface from drifting too far from its deep equilibrium temperature on diurnal timescales. This is an elegant, physically motivated, and computationally cheap way to handle soil thermal inertia.
Building Surface Temperature: The Wall Thermal Model
For building walls and rooftops, a single-layer conduction model is used. The energy balance at a wall surface is:
Let us decode this equation term by term; it is the heart of the thermal model:
Left-hand side:
- : conductive heat flux through the wall, where is the average thermal conductivity and is the wall thickness. This links the surface temperature to the internal building temperature .
- is the convective heat flux to the external air, where is the local heat transfer coefficient and is the external air temperature.
Right-hand side:
-
) : net long-wave radiative flux. is the atmospheric downwelling long-wave radiation, is the long-wave radiation from surrounding building surfaces (the crucial wall-to-wall radiation), and is the surface's own emission as a gray body.
-
: absorbed short-wave radiation, where is the surface albedo and , , are the direct solar, atmosphere-diffuse, and environment-reflected solar components respectively.
This equation is solved implicitly for at each surface patch and each timestep, coupling the radiation solver, the CFD flow solver, and the wall conduction model simultaneously. Now, we need to explain how the radiative transfer terms , , , , and are computed.
Radiative transfer
Solving the full 3D problem with the Discrete Ordinates Method (DOM)
The radiative fluxes are computed using the Discrete Ordinates Method (DOM), which solves the Radiative Transfer Equation (RTE) for gray, non-diffusive, semi-transparent media. The key insight of the DOM implementation in Code_Saturne is that the RTE is solved in the entire fluid domain, not just at solid faces as would be the case with view factor methods. This means:
- The radiation field is computed volumetrically, making the approach naturally extensible to non-transparent media (fog, aerosol layers, pollution). It is however assumed here that the atmosphere is fully transparent to such temperature radiations.
- The spatial discretization uses the same mesh as the CFD solver: no interpolation between different grids.
- The angular discretization uses 32 or 128 discrete directions, depending on the required accuracy.
Both short-wave (solar) and long-wave (thermal infrared) radiation are treated separately, which is physically essential: building surfaces absorb solar radiation with a spectral albedo and emit thermal radiation with emissivity , and these two quantities are independent material properties.
Shortwave radiation: how the sun heats the city
The net shortwave flux absorbed by a surface is then:
A key modeling challenge is the computation of shadows: is zero on a surface that is shaded by a neighboring building. The DOM solver, operating on the full 3D mesh, naturally handles this by propagating the solar beam through the domain and letting the geometry block it. This is one of the reasons why the paper uses the same mesh for both the CFD and radiation calculations: shadow boundaries are resolved at the same spatial resolution as the flow field (down to 0.5 m near the center of the domain).
In Toulouse, the authors further classified building surfaces into four albedo categories based on wall paint color, observed from Google Maps imagery: rose, gray, whitewash, and white. This reflects a physical reality: a white-painted wall in direct sunlight absorbs dramatically less solar energy than a dark brick wall and demonstrates that even a seemingly minor modelling detail (wall color) has a measurable effect on simulated surface temperatures.

Model visualization of , to be compared and calibrated with experimental data.
The upward solar flux leaving a surface, measurable by a pyranometer on the mast, is:
This quantity is directly compared to measurements in the CAPITOUL validation, with very good agreement ( overestimation at noon).
Longwave radiation: buildings radiating to each other
In parallel, every surface emits thermal (longwave, infrared) radiation proportional to the fourth power of its temperature. The net longwave flux at a surface is:
where is the downwelling longwave radiation from the sky (treated as a blackbody at effective sky temperature), is the longwave radiation received from surrounding building surfaces, and is the surface's own gray body emission. The wall-to-wall longwave exchange term is what makes the DOM approach so powerful: it automatically accounts for the fact that a sun-baked south-facing wall at 60°C continuously irradiates the opposite north-facing wall across the street, keeping it warmer than it would be in isolation.
The outgoing longwave flux leaving a surface upward is:
This makes it extremely sensitive to surface temperature: a 3°C error in at 320 K propagates to approximately error in . The simulation shows an underestimation of about during the night and an overestimation of up to at noon, both directly traceable to the corresponding surface temperature biases.
Brightness temperature: what infrared cameras actually measure
A key innovation in the validation strategy is the use of brightness temperature rather than actual surface temperature. Airborne infrared cameras measure radiance (not temperature directly) and it depends on both the true surface temperature and the emissivity. For a gray body surface in an urban canyon, accounting for infinite reflections between canyon walls, the brightness temperature is:
where is the long-wave emissivity, is the Stefan-Boltzmann constant, and is the incident long-wave radiation. The brightness temperature is always lower than the true surface temperature when . The paper uses a commonly accepted approximation that holds well when the reflected longwave term is small compared to i.e. when is large or is small:

The paper shows that on a summer afternoon, this difference reaches approximately 3°C on rooftops: not negligible when validating against airborne infrared images. Comparing raw surface temperatures to IRT measurements without this correction would systematically overestimate temperatures.
The diurnal cycle: getting temperature right through the day
For the full diurnal simulation of 15 July 2004, the model reproduces the observed brightness temperatures at fixed IRT sensor positions around the Alsace-Lorraine and Pomme streets. Key findings:
- Street surfaces: the force-restore method for the ground works well; the main source of error is shadow timing: the model's approximated geometry sometimes misses the exact moment of sun/shade transitions.
- West-facing walls: slight overestimation in the morning (0600–1200 UTC), which the paper attributes to possible sensor underestimation. A similar finding was reported by Hénon et al. (2012) using the SOLENE model.
- Rooftops: excellent agreement before sunrise and from late afternoon onward; a morning advance in warming due to non-modeled small obstacles (chimneys, ventilation stacks) that would shade the sensor's detected surface during sunrise.
This last point is important: small unmodeled architectural details matter. A chimney that casts a shadow on a sensor cannot be ignored when validating at the single-cell level.
Conductive heat transfer : what lies beneath the surface
Why conduction cannot be ignored
In the surface energy balance , the conduction term represents the heat flux that flows into or out of the solid material (through a wall, a rooftop, or the ground) rather than into the air. It plays three physically critical roles:
- Thermal inertia: a massive concrete wall stores the solar energy it absorbs during the day and releases it slowly at night, keeping urban surfaces warm long after sunset. This is a major contributor to the nocturnal urban heat island.
- Coupling between exterior and interior: the exterior surface temperature is not independent of what happens inside the building. A well-insulated building will have a very different exterior surface temperature profile than an uninsulated one, even under identical radiative forcing.
- Stabilizing the energy balance: without a conduction sink, all absorbed radiative energy would be forced into the air by convection, leading to wildly overestimated surface temperatures (as the "radiation only" simulation clearly demonstrates).
Conduction through walls: the single-layer model
For building walls and rooftops, the model uses a single-layer approximation of the Fourier heat conduction equation. In steady-state through a wall of thickness and thermal conductivity , the conductive heat flux is:
This is the linearized form of Fourier's law , applied across the wall thickness. The wall thermal resistance is , and the conductive flux is proportional to the temperature difference between the exterior surface and the interior building temperature .
The thermal parameters used in the Toulouse simulation are derived from [2] and are summarized in the paper: for the brick and stone walls typical of the Toulouse city center, representative values are and , giving a thermal resistance of .
Tracking internal building temperature
The internal building temperature is not a fixed boundary condition: it evolves during the diurnal cycle. The paper uses an incremental-adjustment method:
where is the number of seconds in a day, is the timestep, and is the average outside building surface temperature computed at the current timestep . This equation describes a first-order relaxation: the interior temperature tracks the exterior surface temperature but with a lag of order (one full day). Physically, this represents the slow thermal response of the building mass: the interior warms up gradually through the day as heat conducts inward through the walls, and cools slowly through the night.
For initialization, the internal temperature can be set equal to the measured outside surface temperature at midnight, or at half-hour intervals if observation data are available. This ensures the simulation starts from a physically consistent state rather than an arbitrary value.
Conduction in the ground: handled by the Force-Restore method
For the ground, the full conduction problem is more complex because the soil is a semi-infinite medium without a fixed interior temperature. Rather than solving the full 1D heat diffusion equation through the soil column, the force-restore method encodes the effect of soil conduction analytically. The restoring term acts as the conduction sink, driving back toward the deep soil temperature on a timescale of . The thermal admittance (where , , are the soil thermal conductivity, density, and specific heat) controls how efficiently the soil absorbs and releases energy.
Material properties: where physics meets urban reality
The thermal conductivity and thickness used in the simulation are not free parameters: they are fixed from the literature and from knowledge of the building stock. The paper assigns surface conductivity and thickness values to the four surface types present in the Toulouse center (road, wall, roof, and ground). For example, the brick walls of the Toulouse city center have higher thermal mass than glass curtain walls, which means they absorb more energy during the day and release it more slowly at night; directly contributing to the nocturnal heat island.
The sensitivity of the results to these parameters is significant: an error in translates directly into an error in , which then feeds back into through the energy balance. This is why the paper's careful material classification (including the four-category albedo scheme for wall colors) is not a cosmetic detail but a physically necessary input.
Convection transfer
The convective heat flux at each surface patch is parameterized through:
The central question is: how to compute ? Many previous models (including SOLENE, referenced in the paper) use a constant : a single value is applied uniformly to all surfaces. Qu et al. show this is a critical error. Instead, the model computes locally at every surface patch, based on the local friction velocity computed from the 3D flow solution:
where:
- is the specific heat of air ).
- is the local friction velocity ,computed from the model.
- is the von Kármán constant (0.41).
- is the turbulent Prandtl number.
- is the distance from the cell center to the wall.
- and are the momentum and thermal roughness lengths
- and are stability functions, which reduce to 1 under neutral conditions.
This is implemented using a modified logarithmic law that accounts for atmospheric stratification through the stability functions: an explicit approach that avoids the iterative Monin-Obukhov similarity method, making it computationally tractable in 3D. The physical consequence of this choice is profound: a sun-exposed rooftop in a windy location will lose heat much more efficiently than a sheltered wall in a recirculation zone. Only a 3D flow solver can capture this variability.
The turbulence model: k–ε in the urban canopy
The authors use RANS with a k–ε turbulence closure. The choice is deliberate and honest: the k–ε model cannot resolve the large geometry-dependent eddies that LES would capture, and it overestimates dissipated energy. However, it provides acceptable accuracy at reasonable computational cost for this type of district-scale diurnal simulation. The turbulent viscosity is:
with . The critical feature for urban thermal simulations is the buoyancy production term in the turbulent kinetic energy equation:
This term is what couples the temperature field to the turbulence field. When surfaces are heated, , and turbulence is enhanced by buoyancy. This is particularly true near rooftop level where hot air rises from heated surfaces. This is not a correction term: in low-wind, high-sun conditions, it can be the dominant production mechanism for turbulence in the canopy.
Sensible heat flux: the turbulent engine of the urban atmosphere
The sensible heat flux at the mast level is estimated from the solution as:
where the eddy diffusivity is directly available from the turbulence model. The model-observation agreement is good during the day (differences < 40 ) but shows a night time bias of 45–70 . The explanation: at night, with calm winds and a narrow surface-air temperature difference, the sensible flux is nearly zero in the observations. However, the model's initialized roof temperature is set to a measured value that creates a non-zero temperature gradient, forcing a non-zero (and here spuriously negative) heat flux.
Friction velocity: connecting turbulence to momentum
The friction velocity at the surface is defined by:
and at the mast level is estimated from the kinematic momentum fluxes in the two horizontal directions:
where:
and . The model captures the magnitude of correctly in most conditions, with difficulties appearing at the extremes (very low or very high values; a known limitation of RANS closures in complex urban geometries).
The computational domain: downtown Toulouse, not just a toy geometry
The study simulates a real urban district of 891×963×200 m centered on the intersection of Alsace-Lorraine and Pomme streets in central Toulouse, a dense 19th-century European city center with:
- Buildings 4 to 5 stories high (approximately 20 m)
- Walls primarily of brick and stone
- Roofs of clay tile
- Very sparse vegetation
The 3D urban database was provided by the city of Toulouse in AutoCAD format and preprocessed in ICEM CFD. This preprocessing was non-trivial: the raw database contained internal walls, varying heights, no ground surface, and an excess of fine detail. The preparation steps included:
- Removing internal surfaces.
- Simplifying architectural details.
- Creating the ground plane and projecting buildings onto it.
- Applying a progressive geometric detail strategy: full detail at the Alsace-Lorraine/Pomme center, simplified urban blocks in surrounding areas, and a high roughness value at the domain boundaries.

The resulting mesh is an unstructured tetrahedral grid of approximately 4.5 million cells, with resolution ranging from 0.5m near the center to 10m at the domain edges.
Boundary conditions were prescribed from measurements on the CAPITOUL meteorological mast (positioned at 47.5m above road level on a rooftop):
- Wind velocity profiles updated every 2 hours
- Wind direction updated every 2 hours
- Potential temperature profiles used to initialize the atmospheric stratification
The simulated day is 15 July 2004: a clear summer day with strong solar forcing, ideal for stress-testing the thermal model.
Results
The CAPITOUL experimental setup: what was actually measured
Before presenting the simulation results, it is worth describing what the CAPITOUL campaign actually measured, since the quality of any CFD validation is only as good as the observations it is compared against.
The meteorological mast was installed on a rooftop at 20 m height, with its top at 47.5 m above road level, at the intersection of Alsace-Lorraine and Pomme streets. It recorded continuously from February 2004 to March 2005, at one-second intervals averaged to one minute, providing:
- Short- and long-wave radiative fluxes , , ,
- Sensible and latent heat fluxes (via eddy-covariance)
- Wind speed, wind direction, and air temperature profiles
In addition, ten fixed infrared thermometers (IRT) were affixed to balconies and booms across three street canyons (Alsace-Lorraine, Pomme, and Rémusat), recording surface brightness temperatures of walls, roads, and roofs at fixed positions. Finally, three airborne IRT flights were performed on 15 July 2004 on board a Piper Aztec PA23 aircraft flying at 460 m altitude, producing thermal images of the district at 1.5 to 3 m resolution:
- Flight 430: 0749–0816 UTC (morning)
- Flight 431: 1115–1150 UTC (late morning)
- Flight 432: 1348–1423 UTC (early afternoon)
This dataset is exceptionally rich: it combines spatial (airborne imagery) and temporal (mast time series, fixed IRT sensors) information, which allows validation of both the spatial distribution of temperatures and their diurnal evolution.
IRT comparison: full coupling wins
The most direct test of the model is to compare the simulated brightness temperature field against the airborne IRT images. Three modelling configurations are compared against flight 431 (1138 UTC):
| Model configuration | Roof temperature error | Wall error | Street error |
|---|---|---|---|
| Radiation only (no convection) | > +25°C (off scale) | Large | Large |
| Radiation + constant | Overcooling ~15°C | 4–5°C | 4–7°C |
| Full radiative-convective coupling | < 10°C everywhere | < 5°C | < 3°C average |
The result of the first configuration (radiation with no convective cooling) is catastrophically wrong: without , all absorbed radiative energy accumulates at the surface with no escape route, driving surface temperatures more than 25°C above observations. This alone justifies the coupled approach.
The second configuration (constant ) is a significant improvement, but introduces systematic overcooling at roof level of approximately 15°C. The reason is straightforward: the chosen constant value overestimates the actual spatially-averaged heat transfer coefficient at that time of day, removing too much energy from the surface. On walls (shaded or sunlit) the error is 4–5°C, and on streets 4–7°C.
Only the full radiative-convective coupling, with a spatially variable derived at every surface patch from the local 3D flow solution, reduces errors to below 10°C on roofs, below 5°C on walls, and below 3°C on average for streets. The remaining errors on streets are partially explained by the limited mesh resolution in the narrowest passages (a minimum of three cells per street width), which approximates shadow boundaries rather than resolving them exactly.
A key result, illustrated by the comparison between the constant and variable fields, is that the heat transfer coefficient varies by more than a factor of three across the domain at a given instant, depending on local wind exposure. A single constant value cannot represent this variability, regardless of how carefully it is chosen.
Diurnal evolution of brightness surface temperature
The fixed IRT sensors allow validation of the temporal evolution of brightness temperature at specific positions throughout the full day of 15 July 2004. Overall, the model correctly reproduces the diurnal cycle at all sensor positions, but three instructive discrepancies are worth examining.
Alsace-Lorraine canyon walls (east and west faces): the model shows an overcooling of approximately 5°C during the evening (1800–2400 UTC) on both faces. On the west face, the model predicts a higher than observed from 0600 to 1200 UTC. This overestimation in the morning was also found by Hénon et al. (2012) using the SOLENE model on the same dataset, and is attributed to a possible underestimation by the IRT sensor itself.
Alsace-Lorraine road: the bias on the road brightness temperature can be explained by the approximation of shadow boundaries in the mesh. The value extracted from a single selected cell may differ significantly from its neighbors when the shadow edge falls nearby, making point-to-point comparison sensitive to sub-cell shadow positioning.
Pomme northeast wall: the primary disagreement occurs during the afternoon, where the bias reaches 8°C. From photographs of this wall (Figure 11 of the paper), the face is covered with numerous windows fitted with white blinds. The IRT sensor may have detected a position where blinds were closed and therefore overheated, or conversely where windows were open and interior ventilation lowered the external surface temperature. Neither effect is represented in the model, which treats the wall as a uniform opaque surface. This is a reminder that sub-facade heterogeneities in real buildings introduce irreducible noise in point-to-point validation.
Rooftop: the model shows excellent agreement before sunrise and from late afternoon to midnight. However, it exhibits a systematic advance in morning warming: the simulated roof begins heating earlier than observed. The sensor was mounted on a rooftop that, in reality, is surrounded by small obstacles (chimneys, ventilation stacks, parapets) visible in aerial photographs but absent from the simplified 3D model. These structures shade the sensor during the first hours of sunlit exposure. Once the sun has risen sufficiently to clear them, the bias disappears (consistent with the hypothesis that the error is purely geometric and not a model physics issue).
Outgoing radiative fluxes: and
The meteorological mast measures both the outgoing long-wave flux and the outgoing short-wave (solar) flux , providing a direct check on the radiative model.
Long-wave flux : the outgoing infrared flux is directly tied to surface temperature through . Because of the fourth-power dependence, errors in are amplified in : a 3°C error at 320 K corresponds to approximately . The model shows:
- An underestimation of approximately during the night, directly traceable to the nighttime surface temperature bias discussed above.
- An overestimation of up to at noon, traceable to the morning advance in roof warming.
The difference between the modeled computed at the roof surface and at the mast level is generally less than , confirming that the vertical variation of the outgoing longwave flux between the surface and 47.5 m is small in a transparent atmosphere.
Beyond the scalar comparison at the mast, the model allows full 3D visualization of the distribution across the domain (Figure 14 of the paper, first figure shown in this article). This reveals significant spatial variability: horizontal surfaces (rooftops, roads) are substantially warmer than vertical surfaces (walls) in the daytime, and therefore emit significantly more longwave radiation. This cannot be captured by any model that represents the urban surface as a single averaged layer.
Short-wave flux : For the gray roof at the mast position, an albedo of was assigned, consistent with the literature. The agreement between model and observation is very good throughout the day, with an overestimation of only approximately at noon. This validates both the solar radiation scheme and the albedo classification strategy. The 3D visualization of (Figure 16 of the paper) also makes immediately visible which surfaces have higher albedo (brighter in the image) and the sharp shadow boundaries cast by building edges — both direct outputs of the DOM solver on the full 3D mesh.
Sensible heat flux and friction velocity
Sensible heat flux: the sensible heat flux at the roof surface is compared to the eddy-covariance measurement on the mast. The agreement is good during the day, with differences generally below . The main discrepancy occurs at night: from midnight to 0700 UTC, the observed is nearly zero (the air just above the roof is nearly at the same temperature as the roof surface itself). However, the model initializes the roof temperature to a measured value that is lower than the air temperature at that hour, producing a spuriously negative sensible heat flux (i.e., heat flowing from the air toward the surface). The nighttime bias of 45–70 is therefore a consequence of the initialization procedure rather than a model physics failure. From 1300 to 1500 UTC, a secondary discrepancy arises that the authors attribute to the influence of unresolved rooftop geometry on local convective exchange.
Friction velocity: the friction velocity provides a check on the momentum transfer, independent of the thermal model. The model captures the correct order of magnitude throughout the day, with good agreement when . At higher values, the model tends to overestimate at the mast level during the night (1800–2400 UTC). This is a known limitation of the RANS – closure in complex geometries: it overestimates turbulent momentum transfer in separated and recirculating flows, and estimates of from sonic anemometry are themselves uncertain when values are small. The difference between computed at the roof surface and at the mast level is also partially a numerical artifact of the gradient estimation method.
The critical application: how thermal effects reshape pollutant dispersion
Having established confidence in the thermal model through the CAPITOUL comparisons, the authors use the same framework to study a question of direct public health relevance: what happens to a pollutant released at ground level in a city center on a hot summer day, compared to the standard neutral-atmosphere assumption?
Two simulations are performed with identical wind conditions ( westward at 47.5 m, neutral temperature profile at 22°C), differing only in the treatment of thermal effects:
- Neutral case: no thermal effects, no surface heating, no buoyancy.
- Thermo-radiative case: full 3D radiative-convective-conductive coupling active, solar forcing from 1000 UTC for 3 hours.
A passive tracer is released at ground level at the center of the domain for 3 hours.
Effect on turbulent kinetic energy: in the neutral case, TKE production is purely mechanical, confined to the immediate vicinity of building edges where flow separates. With thermal coupling active, heated surfaces continuously inject buoyant energy into the flow. TKE increases throughout the entire domain, not just near buildings, and is particularly enhanced near rooftop level where the buoyancy production term is largest. The flow never reaches a stationary state in the thermo-radiative case: the continuously evolving surface temperatures continuously modify the buoyancy forcing, making the flow inherently unsteady even under constant wind boundary conditions.
Effect on ground-level concentration: in the neutral case, the plume travels westward with the dominant wind. Inside courtyards and narrow street canyons, wind speeds are dramatically reduced, creating stagnation zones where the pollutant accumulates and is poorly diluted. High ground-level concentrations persist well downwind of the source.

With thermal transfer active, surface heating drives a persistent upward buoyant motion. The plume rises from the point of emission, concentrations near the ground are lower downstream, and the courtyard concentrations are reduced. However, concentrations above roof level are higher: the thermal uplift that protects pedestrians at street level transfers the pollution upward into the layer where it can be advected over longer distances.
These are not subtle quantitative differences. They represent qualitatively different dispersion regimes: the neutral model predicts a ground-hugging plume trapped in street canyons, while the thermally coupled model predicts a rising plume escaping the canopy. If you are a city air quality manager assessing the risk of a ground-level accidental release on a hot summer afternoon, the neutral assumption gives you the wrong geometry of the hazard zone: not just wrong concentrations, but wrong spatial distribution, wrong affected population, and wrong mitigation strategy.
From simulation to design: what this enables for urban planners
The CAPITOUL validation gives confidence that Code_Saturne's thermo-radiative-convective framework can be trusted as a digital laboratory for urban design interventions. The authors themselves enumerate the applications:
🏗️ High-Albedo Surfaces ("White Roofs")
In the wall thermal model, changing the albedo α directly modifies the absorbed shortwave radiation:
Increasing α from 0.15 (gray roof, as measured in Toulouse) to 0.7 (white roof coating) reduces the solar energy absorbed by the surface by 65%. This has a cascade effect: lower surface temperature → lower into the street air (daytime cooling) and lower stored in the wall (reduced nocturnal heat release) → cooler air temperature both day and night. The model can quantify this cascade for a specific district with its specific geometry and orientation.
🌿 Green Roofs and Green Areas
The framework can be extended to include the latent heat flux term (currently neglected) to represent vegetation. Evapotranspiration removes energy from the surface as latent heat rather than sensible heat, directly cooling the local air. The model provides the spatial wind and turbulence fields needed to correctly compute where this cooling has the most impact which is a function of local flow patterns that vary enormously within a single city block.
🌬️ Street Canyon Ventilation
By running the full 3D flow simulation, the model identifies which streets are well-ventilated (high local , high , efficient heat removal) and which are thermal traps (low wind speed, low , accumulating heat). This information can directly inform decisions about building height ratios, street widths, and building orientation in new developments.
☁️ Air Quality "Hot Spots"
As the pollutant dispersion results show, thermal effects fundamentally change where pollution concentrates. The coupled model can identify specific locations in a city center where ground-level emissions are most likely to accumulate under typical summer heatwave conditions, and evaluate whether a cool pavement or a row of trees would meaningfully change the local air quality.
Why code_saturne? A reference for open-source scientific CFD
code_saturne is not a commercial black box. Developed and maintained by EDF R&D, it is:
✅ Open-source (GNU GPL license): every equation described in this article is inspectable, modifiable, and fully auditable
✅ Finite-volume on unstructured meshes: handles the extremely complex geometries of real city centers without simplification
✅ Physically complete: the atmospheric module includes RANS (k–) and LES turbulence, DOM radiation (short-wave and long-wave separately), the force-restore ground model, the wall thermal model, and passive scalar dispersion, all fully coupled
✅ Massively parallel: scales to thousands of CPU cores, making district-scale diurnal simulations tractable
✅ Validated for real urban environments: the CAPITOUL study is the most comprehensive validation to date, but it builds on prior validation against the MUST field campaign and idealized cases
✅ Free to use: which means cities of all sizes, developing countries, and academic research groups can access the same tools used by EDF and CEREA
Getting started: your first urban thermal simulation
Here is a practical roadmap to replicate this type of study for your own city:
-
Geometry: Obtain the 3D urban database from your municipality (many European cities have this in CityGML or similar format). Import it into ICEM CFD or Salome-Meca (open-source). Perform geometry cleanup: remove internal walls, create the ground surface, project buildings, and simplify detail progressively from domain edge to center of interest.
-
Mesh: Build an unstructured tetrahedral mesh. Target ~0.5 m resolution at your area of interest, coarsening to ~10 m at the domain boundaries. Total cell count of 3–5 million is a practical starting point for a district of ∼1 km².
-
Material Properties: Classify your building surfaces by albedo and emissivity based on visual inspection or municipal records. At minimum, distinguish roof materials (tile, gravel, bitumen) and wall colors. Define wall thermal conductivity λ and thickness e from the literature for your building type: these control the conductive thermal resistance and therefore the building's thermal inertia.
-
Atmospheric Boundary Conditions: Use measured wind speed, direction, and temperature profiles from the nearest meteorological station, updated every 2 hours. Set the atmospheric stability from potential temperature profiles.
-
Activate Full Coupling: In Code_Saturne's atmospheric module, activate the DOM radiative transfer solver (32 directions for a first run, 128 for validation), the force-restore ground model, and the wall thermal model. Set the solar position from your geographic coordinates and the simulation date.
-
Validate: Compare with any available surface temperature measurements, ideally including a rooftop meteorological station. If possible, use satellite or drone-based thermal infrared imagery for spatial validation. Remember to compare brightness temperatures, not raw surface temperatures.
-
Design Exploration: Once validated, change one variable at a time (roof albedo, surface material, tree canopy, building height) and quantify the effect on surface temperature, sensible heat flux, and pollutant dispersion. This is your digital urban laboratory.
Conclusion: The city as a solvable equation
The work of Qu, Milliez, Musson-Genon, and Carissimo is more than an academic study. It is a proof of concept that the urban thermal environment is quantitatively predictable in three dimensions, at the building-resolving scale, over a full diurnal cycle, in a real European city center.
The physics is encoded in the surface energy balance. The radiative exchange is encoded in the Discrete Ordinates Method. The surface temperature emerges from the coupled force-restore and wall thermal models. Wall conduction links the exterior surface temperature to the building's thermal mass, encoding the slow nocturnal heat release that sustains the urban heat island long after sunset. The convective cooling is computed locally at every surface patch from the 3D flow solution. And Code_Saturne ties them all together into a solvable, reproducible, open-source simulation framework.
Perhaps the most sobering finding of the paper is the pollutant dispersion result: assuming a neutral atmosphere (as the vast majority of urban flow studies still do today) gives you the wrong plume shape, the wrong ground-level concentrations, and the wrong identification of at-risk locations. On a hot summer day in a city center, buoyancy is not a perturbation. It is a first-order effect.
We have the tools. We have the physics. We have the open-source software. We even have the validation data from a year-long field campaign in Toulouse. What we need now is more engineers, planners, and researchers willing to run the simulations and bring quantitative, physics-based evidence into the rooms where urban design decisions are made.
Because when the next heatwave kills people in city centers (and it will) the question we will have to answer is not "did we have the tools to understand this?" (we clearly do) but "did we use them?"
References
📌 The full paper: Qu Y., Milliez M., Musson-Genon L., Carissimo B. — "Modelling Radiative and Convective Thermal Exchanges over a European City Center and Their Effects on Atmospheric Dispersion" — Sustainability, 2022, 14(12), 7295. DOI: 10.3390/su14127295
📌 The CAPITOUL experimental dataset: Masson V. et al. — "The Canopy and Aerosol Particles Interactions in TOulouse Urban Layer (CAPITOUL) Experiment" — Meteor. Atmos. Phys., 2008, 102, 135–157.
[1]: Butera, Federico. (2019). ENERGY AND RESOURCE EFFICIENT URBAN NEIGHBOURHOOD DESIGN PRINCIPLES FOR TROPICAL COUNTRIES - A Practitioner's Guidebook.
[2]: Pigeon, G., Legain, D., Durand, P., & Masson, V. (2006). Anthropogenic heat release in an old European agglomeration (Toulouse, France). International journal of climatology, 27(14), 1969-1981.