VentiFlux logoVentiFluxLearning Center
Thermal Comfort, CFD and Energy

CFD for Ventilation: Modeling Best Practices

What it takes to trust an indoor-airflow simulation: turbulence models, buoyancy and radiation, meshing, boundary conditions, validation benchmarks, and a pre-run checklist.

Free Advanced 7 hours 7 sessions

Session 1

Why CFD for Indoor Airflow: What Measurements Give and What Simulation Adds

Objectives

  • Distinguish what field measurements can and cannot reveal about indoor airflow patterns.
  • Identify the unique quantities CFD produces, such as age of air and draft risk fields, and how they inform design.
  • Decide when a CFD study is justified on a project and when simpler methods are the right call.

Indoor airflow is difficult to observe directly. A technician with an anemometer can measure air speed at a handful of points, a thermometer string can log temperature stratification at a few heights, and a tracer gas test can estimate the average age of air in a room. Each of these is useful, but each is also a point or zone measurement: it tells you what happens exactly where the probe was, during the period it was there, under the conditions of that day. Move the probe a meter to the left, and the story can change completely, because room airflow is three dimensional, unsteady at small scales, and sensitive to details like where a door was left open or how warm a piece of equipment ran that afternoon.

CFD fills this gap by solving the governing conservation equations of mass, momentum, and energy throughout the entire volume at once. Instead of a handful of sensor points, you get a full field: velocity vectors in every corner, temperature contours across a vertical slice, pressure distribution at every wall. This changes the nature of the analysis from sampling to inspection. Stagnation pockets that no one thought to probe become visible. Short-circuiting between a supply diffuser and a return grille shows up as a recirculation pattern on screen, while on paper the room met the design air change rate. For ventilation design, where the goal is not just to move air but to move it through the breathing zone of every occupant, that full-field view is the central value proposition.

Two quantities illustrate why the full-field view matters more than any bulk number. The first is local age of air: how long, on average, the air arriving at a given point has been inside the room since it entered through the supply. Two designs can deliver identical air change rates and yet produce very different age-of-air fields, because one flushes the occupied zone while the other leaves the corners to accumulate stale air. A tracer gas measurement gives you one average number for the room; CFD gives you the map, so you can see which seats or which workstation breathe fresh supply and which breathe recirculated air. The second is draft risk, which combines local air speed and local temperature into an assessment of thermal discomfort. Draft complaints are notoriously local, often tied to a single cold jet dropping onto one desk. A bulk ventilation rate cannot predict them, but a resolved velocity and temperature field can.

The other great strength of CFD is comparison. Design studies are comparative exercises: three diffuser layouts, two supply temperatures, a ceiling-mounted vs a wall-mounted return. Building and measuring all of these variants physically would be slow and expensive, and field measurements of one variant cannot be fairly compared to measurements of another taken on a different day with different boundary conditions. In a CFD model, you hold everything constant and change one variable at a time. The differences you see are attributable to the design change, which is exactly the evidence a design engineer needs when arguing for one layout over another. This is also why CFD earns its place in commissioning and troubleshooting: when a space underperforms, a model built from the as-built geometry can test hypotheses (is the diffuser throwing too far, is the return starved, is a heat source driving an unexpected plume) in hours instead of weeks of trial and error on site.

Design note

Treat CFD as a comparison instrument first and an absolute prediction instrument second. A single simulation of one layout tells you something; the same model run on three candidate layouts with identical boundary conditions tells you which layout is better, and that ranking is far more robust than any single absolute number. When you present results, lead with the comparison: "Layout B reduces the maximum age of air in the occupied zone relative to Layout A," rather than claiming the absolute age value is exactly right.

That said, CFD is not always worth the effort. A quick office fit-out with a standard ceiling diffuser layout, moderate heat loads, and no comfort complaints can be handled with rules of thumb, manufacturer throw data, and simple load calculations. A full CFD study adds cost in modeling time, meshing effort, and compute hours, and it adds schedule risk if the geometry is still changing. The situations where CFD earns its keep are the ones where the airflow pattern is the question itself: large open spaces like atria and airports where stratification decides comfort, displacement ventilation systems whose performance lives or dies on thermal plumes, spaces with unusual geometry or high heat loads such as data centers and commercial kitchens, cleanrooms and operating theaters where contaminant transport must be controlled, and any troubleshooting case where the obvious fixes have already failed.

There is also a middle ground worth remembering. Not every ventilation question needs a three-dimensional transient model. Well-mixed zone models, multizone airflow network models, and simple plume correlations can answer bulk questions (what flow rate do I need, roughly, to hold this temperature) at a fraction of the cost. The disciplined engineer matches the tool to the question: use the simple method when the question is simple, and reserve CFD for questions about spatial distribution, local comfort, and design comparison that no bulk method can answer. In the sessions that follow, we build the modeling practices that make those CFD answers trustworthy: choosing the right turbulence treatment, handling buoyancy and radiation honestly, meshing with intent, setting boundary conditions that represent real diffusers and real heat sources, and finally validating the result so that the beautiful contour plot is also a believable one.

Key takeaways

  • Field measurements give point data at one moment in time; CFD gives the full spatial field, which is what reveals stagnation zones, short-circuiting, and local draft risk.
  • Age of air and draft risk are the two indoor-air quantities where CFD's full-field output has no practical measurement equivalent on a design timeline.
  • CFD's greatest strength on real projects is fair comparison: identical boundary conditions, one design variable changed at a time.
  • Use simpler methods when the question is about bulk quantities; reserve CFD for questions about spatial distribution, local comfort, and contaminant transport.

Session 2

Turbulence Models for Indoor Flows: RANS Workhorses, Wall Treatment, and When LES Earns Its Cost

Objectives

  • Explain how the k-epsilon family and k-omega SST differ in what they assume about near-wall and free-shear turbulence.
  • Select a turbulence model for typical indoor ventilation scenarios: mixing, displacement, and jet-dominated flows.
  • Understand wall treatment choices (wall functions vs resolved walls) and the y+ guidance behind them.
  • Judge when large eddy simulation is justified and what it costs in mesh and runtime.

Almost every indoor airflow is turbulent. Supply jets shear against room air, thermal plumes rise and entrain, and occupants moving through a space stir the air further. The Reynolds numbers are modest by aerospace standards, but the turbulence is real, and no engineer can afford to resolve every eddy in a design study. The practical choice is Reynolds-averaged Navier-Stokes (RANS): instead of tracking each fluctuation, we solve for the time-averaged velocity field and model the effect of the fluctuations on that average. The whole art of indoor CFD modeling lives in that one modeling decision: how do you represent the turbulent stresses and turbulent heat flux that averaging introduces?

The most common answer in ventilation work is the k-epsilon family. The model carries two additional transport equations, one for the turbulent kinetic energy k and one for its dissipation rate epsilon, and builds an eddy viscosity from their ratio. The standard k-epsilon model is robust, cheap, and widely validated, which is why it became the default for room airflow decades ago. Its known weakness indoors is that it was calibrated on high-Reynolds-number free shear flows, not on the low-speed, buoyancy-influenced, wall-bounded flows of a real room. In practice this shows up as overpredicted mixing in some jet decay regions and a sometimes sluggish response to buoyancy. Two variants address this. The RNG k-epsilon model derives its constants from a renormalization-group analysis of the Navier-Stokes equations rather than pure empirical fitting, and it includes a strain-dependent term that makes it respond better to swirl and to rapid strain, both of which appear near diffusers and in plume entrainment. The realizable k-epsilon model reformulates the eddy viscosity so that the modeled Reynolds stresses satisfy basic physical realizability constraints, and it uses a variable formulation for the dissipation equation; it tends to predict round-jet spreading more accurately than the standard form, which matters because supply diffusers are, aerodynamically, jets.

The k-omega SST model takes a different route. It solves for k and the specific dissipation rate omega, and it blends between a k-omega formulation near walls and a k-epsilon formulation in the free stream. The blending is the point: k-omega behaves better in the near-wall region under adverse pressure gradients, while k-epsilon is more reliable away from walls. For indoor flows with separation around furniture, partitions, and equipment, and for cases where you resolve the boundary layer rather than bridging it with wall functions, SST is often the stronger choice. It is somewhat more sensitive to inlet turbulence specification and slightly more expensive per iteration, but for rooms where wall-adjacent flow decides comfort (displacement ventilation along a cold window, for example), that cost is usually justified.

Whichever model you choose, you must decide how to treat the walls. Fully resolving the viscous sublayer requires the first cell center to sit at a y+ near one, which in a room-sized domain means an enormous number of thin cells along every wall, exactly where the geometry is most complex. Wall functions avoid this by bridging the near-wall region with semi-empirical relations, letting the first cell sit much farther out, in the logarithmic layer. The widely used engineering practice is to target first-cell y+ in the range associated with the log layer when using wall functions, and near one when resolving the wall. The trade-off is accuracy in precisely the region a ventilation engineer cares about: the boundary layer along a cold facade drives the downdraft that occupants feel, and wall functions smear exactly that physics. If the design question hinges on near-wall behavior, resolve the wall where it matters (the facade, the floor in displacement ventilation) and use wall functions elsewhere. Automatic or blended wall treatment, available in several solvers, eases this decision by adapting to the local mesh, but it does not remove the need to check where your first cells actually sit.

y+ = (uτ * y) / ν

y+
dimensionless wall distance, used to judge whether the first mesh cell sits in the viscous sublayer, buffer layer, or logarithmic layer
uτ
friction velocity at the wall, in meters per second, computed from the local wall shear stress
y
physical distance from the wall to the first cell center, in meters
ν
kinematic viscosity of air, in square meters per second

Large eddy simulation (LES) resolves the large, energy-containing eddies directly and models only the small subgrid scales. For indoor airflow this is attractive: room flows are dominated by large unsteady structures (the meander of a supply jet, the sway of a thermal plume), and RANS models, which average all of that away, can miss phenomena like intermittent draft events or the unsteady penetration of a plume into a stratified layer. LES captures these. The cost is severe. LES needs a fine mesh everywhere the large eddies live (not just at walls), a small time step to resolve their motion, and long simulated physical times to gather stable statistics, because the answer is a time average over a genuinely unsteady flow. A steady RANS room model might run in an hour; the equivalent LES can take days to weeks on similar hardware. Use LES when the question is inherently unsteady or when RANS has demonstrably failed on a similar case: contaminant transport in operating theaters, natural ventilation driven by gusty wind, or research-grade validation studies. For routine design comparison of diffuser layouts, well-set-up RANS remains the working tool. Detached eddy simulation and other hybrids sit between the two, but for most ventilation consulting work the honest choice is binary: RANS for design, LES for the few questions RANS cannot answer.

Common mistakes

The most frequent turbulence mistake in indoor CFD is accepting the solver default without asking what flow the default was tuned for. A default standard k-epsilon with default wall functions will run and converge and produce plausible-looking contours, and it may still misplace the throw of a diffuser jet by a meter. Before trusting a model, ask: does my flow have strong buoyancy, swirl, or separation? If yes, the RNG or realizable variant, or SST with resolved near-wall mesh where it counts, is the defensible choice. The second mistake is specifying inlet turbulence carelessly: a diffuser inlet with near-zero turbulence intensity produces an unrealistically persistent jet. Give supply openings a physically reasonable turbulence intensity and length scale, and document both.

Key takeaways

  • RANS models the effect of all turbulence on the mean flow; the k-epsilon family is the ventilation workhorse, with RNG and realizable variants better suited to swirl, strain, and jet spreading.
  • k-omega SST blends near-wall and free-stream formulations and is the stronger pick when wall-adjacent flow (cold facades, displacement ventilation) decides the design question.
  • Wall functions trade near-wall fidelity for mesh economy; resolve the wall where the design question lives and bridge it elsewhere, and always check actual y+ values.
  • LES resolves the large unsteady structures RANS averages away, but at a cost of days to weeks per case; reserve it for unsteady or RANS-defeated questions.

Session 3

Buoyancy and Radiation: Density Treatment, Gravity Setup, and When Radiation Decides the Answer

Objectives

  • Choose between the Boussinesq approximation and a full variable-density (ideal gas) treatment for indoor buoyancy.
  • Set up gravity and the operating density reference correctly so buoyancy forces point the right way.
  • Compare surface-to-surface and discrete ordinates radiation models and know when radiation can be safely neglected.
  • Recognize the coupled buoyancy-radiation cases (cold facades, atria, displacement ventilation) where both matter.

Most indoor airflows that matter are buoyancy-influenced. A supply jet is a momentum flow, but the moment warm air meets cool air, or a cold window chills the adjacent layer, density differences generate forces that rival or exceed the jet momentum. Displacement ventilation works entirely on buoyancy: cool supply air pools at the floor and is lifted by the warm plumes rising off occupants and equipment. Get buoyancy wrong and you have not made a small error; you have simulated a different physical system, one in which warm air obediently stays where the diffusers put it.

The standard engineering treatment is the Boussinesq approximation. The idea is simple: air density varies only slightly across indoor temperature ranges, so we treat density as constant everywhere except in the gravity term of the momentum equation, where the small variation is what drives the flow. There, density is linearized around a reference state:

ρ = ρ0 * (1 - β * (T - T0))

ρ
local air density used in the buoyancy (gravity) term, in kilograms per cubic meter
ρ0
reference density at the reference temperature, in kilograms per cubic meter
β
thermal expansion coefficient of air, in inverse kelvin (approximately 1/T0 for an ideal gas)
T
local air temperature, in kelvin
T0
reference temperature, in kelvin, chosen near the expected mean room temperature

Boussinesq is valid when temperature differences are modest relative to absolute temperature, which covers the great majority of comfort ventilation: a 10 K difference across a 300 K room is a 3 percent density variation, well within the approximation. Its advantages are numerical stability and speed: constant-property flow with a linearized body force converges far more readily than fully compressible treatment. The alternative is to treat density as a full function of temperature and pressure, typically through the ideal gas law. This is the correct choice when temperature differences are large (industrial spaces, commercial kitchens, fire and smoke scenarios) or when the simulation must remain accurate across a wide operating range. The price is a stiffer, slower-converging system and a greater need for careful initialization.

Whichever treatment you use, the gravity vector and the reference state must be set deliberately. Gravity points down along the correct coordinate axis with the correct sign; this sounds trivial and is a genuine source of failed models, especially when geometry is imported with an unfamiliar coordinate convention. The operating (reference) density must correspond to a sensible reference location or temperature: in Boussinesq it is rho0 at T0, and T0 should sit near the mean occupied-zone temperature, not at some arbitrary default. If the reference density is set to a value that does not match the actual mean state, the entire pressure field shifts and buoyancy forces get a systematic offset; the flow can look converged and still be subtly wrong, with stratification layers sitting at the wrong heights. A good habit: after setup, check that a quiescent room with no flow initializes to a hydrostatic pressure field and zero velocity, which confirms gravity and reference density are consistent.

Radiation is the heat transfer mode most often omitted from indoor CFD, and the one whose omission most often explains a mismatch with measurements. Air is nearly transparent to thermal radiation, so surfaces exchange heat directly with each other: a cold window radiates to the warm floor, the floor warms and convects to the air, and the resulting air temperature field differs measurably from a model that only convected. In rooms with large glazing areas, high ceilings, or cold surfaces in winter, radiation redistributes energy across the enclosure and flattens or steepens stratification in ways convection alone cannot reproduce. It also directly affects comfort: the mean radiant temperature occupants feel is a radiation quantity, and a model without radiation cannot predict it.

Two radiation models cover most indoor needs. The surface-to-surface (S2S) model computes radiative exchange between gray, diffuse surfaces using view factors; it is efficient and appropriate when the air itself does not participate in radiation, which is true for ordinary room air. Its cost grows with the number of radiating surfaces, so highly faceted geometry can make view-factor computation expensive. The discrete ordinates (DO) model solves the radiative transfer equation along a set of discrete directions and handles participating media, scattering, and semi-transparent boundaries like glazing more generally. DO is the right choice when you need radiation through glass modeled with some fidelity, or when humidity or contaminants make the air participate. It costs more per iteration and needs enough angular discretization to avoid spurious directional banding. For a typical office or classroom with opaque surfaces and dry air, S2S is the economical, defensible choice; reach for DO when glazing transmission or a participating medium is part of the question.

Design note

Decide about radiation with a quick scaling argument before you mesh. Ask: are there surfaces in this room whose temperatures will differ by more than a few degrees from the room air, over large areas? A winter facade, a sunlit floor patch, a chilled ceiling panel, or a hot equipment enclosure all qualify. If yes, include radiation; the few extra iterations per step are cheap compared with a model that misses stratification by two degrees and misplaces the neutral plane of a displacement system. If the room is a small interior office with uniform wall temperatures, radiation changes little and you can justify leaving it out, but write that justification in your report so the decision is auditable.

Buoyancy and radiation couple in exactly the cases ventilation engineers care about most. Consider a perimeter office in winter: the cold window drives a downdraft (buoyancy), the downdraft is fed by air chilled at the glass (convection), and the glass temperature itself is set by heat loss to the outside plus radiative exchange with the warm interior (radiation). Model only the convection and the glass sits at the wrong temperature, so the downdraft is wrong, so the predicted draft risk at the nearby desk is wrong. Atria and displacement-ventilated spaces share this coupling: stratification height emerges from the balance of plume buoyancy against the enclosure's thermal boundary conditions, which are radiative as much as convective. The practical workflow is to enable buoyancy first with a sensible reference state, converge the flow, then add radiation and re-converge; adding both to an uninitialized field at once is a reliable recipe for divergence.

Key takeaways

  • The Boussinesq approximation (constant density except in the gravity term) is valid and preferred for comfort-range temperature differences; use full variable-density treatment for large temperature differences or pressure-sensitive cases.
  • Set the gravity vector deliberately and choose the reference temperature near the mean occupied-zone temperature; verify with a quiescent hydrostatic check.
  • Radiation redistributes energy between surfaces and sets the mean radiant temperature; omitting it near cold facades or large glazing corrupts stratification and comfort predictions.
  • Surface-to-surface radiation suits ordinary rooms with non-participating air; discrete ordinates is for glazing transmission and participating media, at higher cost.
  • Enable buoyancy first, converge, then add radiation; coupling both into an uninitialized field invites divergence.

Session 4

Meshing for Indoor Spaces: Resolving Jets and Boundary Layers, y+ Guidance, and Grid-Independence Studies

Objectives

  • Place mesh resolution where the physics demands it: supply jets, plumes, and near-wall layers.
  • Apply y+ guidance to choose between wall functions and resolved walls on different surfaces.
  • Run a three-level grid-independence study and interpret it with the Grid Convergence Index (GCI).
  • Recognize false grid independence and other meshing traps specific to rooms.

A room mesh is not a uniform box of cells; it is a budget, and the budget must be spent where the flow gradients are steepest. In indoor airflow those places are predictable. The supply jet leaving a diffuser carries high shear at its edges and entrains room air as it develops, so the first several meters of jet trajectory need fine, well-aligned cells. Thermal plumes above occupants and equipment are narrow near their source and widen as they rise; the plume formation region needs resolution, or the model will smear the buoyancy source into a diffuse warm blob and misplace the stratification interface. Near walls, the boundary layer sets convective heat transfer and, along cold facades, the downdraft that drives perimeter discomfort. Everywhere else, the large slow recirculation of the room core, the mesh can be coarse. An experienced indoor mesh therefore looks lopsided: dense at diffusers, plumes, and facades, relaxed in the core. If your mesh is uniform, you are either wasting cells in the core or starving the jet, and usually both.

Cell quality matters as much as cell count. High aspect ratio cells stretched along a wall are acceptable in a boundary layer where gradients are wall-normal, but the same stretching across a jet shear layer corrupts the solution. Keep skewness low, particularly in the diffuser region where the flow turns and entrains; a highly skewed cell sitting in the jet path acts like a numerical obstacle. Hexahedral-dominant meshes remain the preference for room airflow because they align naturally with the predominantly Cartesian geometry of rooms and produce less numerical diffusion than tetrahedral meshes for the same cell count.

The wall-normal resolution decision follows directly from Session 2: the dimensionless wall distance y+ tells you which near-wall regime your first cell occupies. The widely used engineering practice is to place the first cell in the logarithmic layer when using wall functions, and at y+ near one when resolving the viscous sublayer directly. In a room you rarely need the same treatment everywhere: the cold facade and the floor in a displacement-ventilated room deserve carefully placed near-wall cells, because the design quantity is born in those layers, while interior partitions in a mixing-ventilated office can live with wall functions. Build the mesh with inflation layers on the important walls, run, then plot actual y+ on every wall and confirm it landed where you intended.

Once the mesh strategy is set, you must demonstrate that the answer does not depend on the mesh. This is grid independence, and the disciplined way to show it is a systematic refinement study on three mesh levels: coarse, medium, and fine, generated by consistent global refinement rather than local tinkering. You monitor one or more quantities of engineering interest (average age of air in the occupied zone, exhaust temperature, maximum velocity in the breathing zone) and watch them converge as the mesh refines. The Grid Convergence Index (GCI) turns this watching into a number: an estimate of the discretization uncertainty band around the fine-grid solution, derived from Richardson extrapolation. In plain terms, GCI answers the question "if I refined the mesh further, how much would my monitored quantity still move?"

GCI = (Fs * |ε|) / (rp - 1)

GCI
Grid Convergence Index, a dimensionless estimate of the discretization error band (often reported as a percentage)
Fs
safety factor, dimensionless; 1.25 is standard practice when three mesh levels are used
ε
relative difference between the medium and fine solutions, (f2 - f1) / f1, dimensionless
r
grid refinement ratio between successive mesh levels, dimensionless; for 3D meshes computed from cell counts as (Nfine / Ncoarse)1/3
p
observed order of convergence, dimensionless, computed from how fast the solution changes across the three levels

Worked example: grid-independence study on a single office (all numbers illustrative)

Consider a single-occupant office with one ceiling diffuser and a chilled window wall. We build three meshes by systematic global refinement. Assumed cell counts: coarse N3 = 370,000, medium N2 = 1,000,000, fine N1 = 2,700,000 cells. The monitored quantity is the volume-averaged age of air in the occupied zone (0 to 1.8 m height), in seconds. Assumed results: f3 = 512 s (coarse), f2 = 487 s (medium), f1 = 476 s (fine).

Step 1, refinement ratios (3D, from cell counts): r21 = (2,700,000 / 1,000,000)1/3 = 1.39, and r32 = (1,000,000 / 370,000)1/3 = 1.39, so we use r = 1.39. Step 2, observed order of convergence: p = ln(|(f3 - f2) / (f2 - f1)|) / ln(r) = ln(25 / 11) / ln(1.39) = 2.49. Step 3, relative change between medium and fine: ε = (487 - 476) / 476 = 0.0231. Step 4, GCI on the fine grid with safety factor Fs = 1.25: rp = 1.392.49 = 2.27, so GCI = (1.25 * 0.0231) / (2.27 - 1) = 0.0227, about 2.3 percent.

Result: the fine-grid age of air is 476 s with an estimated discretization band of plus or minus 2.3 percent, roughly 465 to 487 s. The Richardson-extrapolated value is (2.27 * 476 - 487) / 1.27 = 467 s, consistent with the fine grid sitting close to the extrapolated limit. Interpretation: the solution is in the asymptotic range, mesh dependence is small relative to typical ventilation-design tolerances, and this mesh is acceptable for comparing design variants. Had the GCI come out near 10 percent, the correct response would be further refinement in the jet and plume regions, not reporting the fine-grid number as final. Every number here is assumed for illustration; on a real project the cell counts, the monitored quantity, and the GCI come from your own three runs.

Common mistakes

The classic meshing trap is false grid independence: refining only in regions that were already fine (the room core) while the jet region stays coarse, then observing no change and declaring independence. Change that is not observed because the sensitive region was never refined is not convergence. Always refine globally and consistently across the three levels. A second trap is monitoring only bulk quantities like total pressure drop or average room temperature, which converge early and hide local mesh dependence; always include at least one local quantity tied to the design question, such as age of air in the occupied zone. A third trap is comparing meshes with different topology or wall treatment between levels, which breaks the assumptions behind the observed order p.

A final practical point: grid independence is necessary but not sufficient. A mesh-independent wrong model (wrong turbulence model, missing buoyancy, diffuser modeled as a uniform inlet) converges beautifully to the wrong answer. The refinement study certifies that discretization error is under control; Sessions 5 and 6 address whether the physics you discretized was the right physics. A modest three-level study on the quantities that matter, done once per representative geometry, beats an obsessive five-level study on a model whose boundary conditions were never validated.

Key takeaways

  • Spend mesh budget on jets, plume formation regions, and near-wall layers; relax it in the slow room core, and keep skewed or stretched cells out of the primary flow path.
  • Match y+ to your wall treatment: log-layer placement for wall functions, near one for resolved walls, with finer treatment on the walls that decide the design question.
  • A three-level systematic refinement study with the GCI quantifies discretization uncertainty; report the band, not just the fine-grid number.
  • Monitor zone or local quantities tied to the design question, refine globally and consistently, and never change topology or wall treatment between levels.
  • Grid independence certifies the discretization, not the physics; it must be paired with correct models and validated boundary conditions.

Session 5

Boundary Conditions: Inlets, Diffusers, Heat Sources, Exhausts, and Thermal Walls

Objectives

  • Model supply diffusers with momentum-correct methods instead of naive uniform velocity inlets.
  • Represent occupants and equipment as heat sources with realistic plume behavior.
  • Specify exhausts, openings, and pressure boundaries without over-constraining the flow.
  • Choose between prescribed wall temperatures and conjugate heat transfer for enclosure surfaces.

Boundary conditions are where indoor CFD models most often fail, and they fail quietly. The solver will happily converge on any inputs you give it; nothing in the residuals tells you that your diffuser inlet bears no resemblance to the real device, or that your "person" is a uniform-temperature box that produces no plume. Because every interior point of the solution is ultimately driven by what happens at the boundaries, sloppy boundary conditions corrupt the entire field while leaving healthy-looking convergence plots. The discipline of this session is to make each boundary represent the physics of the real object, not the convenience of the meshing tool.

Start with the supply diffuser, the single most influential boundary in most rooms. A real diffuser discharges air through slots, nozzles, or perforated faces with complex directionality: a four-way ceiling diffuser throws four angled jets, a slot diffuser produces a thin attached jet that hugs the ceiling via the Coanda effect, a displacement diffuser delivers low-momentum air that barely qualifies as a jet at all. Modeling any of these as a simple uniform-velocity patch over the diffuser face area gets the mass flow right and the momentum completely wrong: the uniform patch produces a single fat jet with the wrong spread angle, wrong throw, and wrong entrainment, and everything downstream inherits that error. The standard remedy is the momentum (or box) method: replace the complex diffuser geometry with a simplified inlet region on whose faces you prescribe velocity components that reproduce the real diffuser's total mass flow and, critically, its total momentum flux in each direction. The momentum flux is what sets jet throw and entrainment, so matching it recovers the far-field flow the room actually feels, without meshing individual slots or louvers. Manufacturer throw data or a one-time detailed diffuser simulation provides the target momentum distribution; document which you used.

Displacement and low-momentum supplies need the opposite care. A displacement diffuser introduces air at low velocity and slightly below room temperature; the flow is buoyancy-dominated from the start. Over-specifying the inlet velocity here creates a phantom jet that destroys the stratification the system is designed to produce. Underfloor and personalized ventilation outlets fall in the same category: keep the momentum small and honest.

Heat sources are the second great boundary decision. Occupants, computers, lighting, and process equipment drive the thermal plumes that organize room airflow, especially in displacement and natural ventilation. The naive approach, a block at fixed temperature or with a uniform heat flux over its whole surface, produces a plume, but often the wrong one: too wide, too weak, or detached in the wrong place. Better practice distinguishes sensible heat by source type. A seated person is well represented as a simplified manikin or heated block, provided the total sensible output is realistic for the activity level, split into convective and radiative fractions, and the surface temperatures produce a plume of about the right strength and width. Equipment should carry its actual power dissipation, with the radiative fraction handled by the radiation model rather than dumped into the air as convection. Two details decide plume quality: the source geometry should present roughly the right surface area and vertical extent (a tall warm cabinet drives a different plume than a flat hot plate of the same wattage), and the mesh above the source must be fine enough to resolve the plume formation, or the carefully specified source is smeared by numerical diffusion before it ever rises.

Exhausts and openings are simpler but have their own traps. A return grille or exhaust is best specified as a mass-flow or velocity outlet normal to the face, or as a pressure outlet when the system balances itself; the key rule is never to over-constrain: prescribing both velocity and pressure at the same boundary, or fixing the flow at every opening in a naturally ventilated space, removes the degrees of freedom the real physics uses to balance. For operable windows, doors, and transfer grilles, pressure boundaries with loss characteristics let the flow find its own rate driven by wind and stack effect. And when a room connects to a larger building, resist truncating the domain at the doorway; extending it to include the adjacent corridor or plenum often costs less mesh than the truncation error.

M = ρ * A * V2

M
momentum flux through the diffuser face, in newtons; the quantity the momentum method preserves when simplifying diffuser geometry
ρ
air density at the supply condition, in kilograms per cubic meter
A
effective discharge area of the diffuser, in square meters
V
effective discharge velocity, in meters per second; for multi-directional diffusers this is resolved into directional components

Design note

Build a boundary-condition register for every project: one row per boundary, with the type, the values, the physical source of each value (manufacturer data, measurement, standard assumption, engineering judgment), and the check you performed. The five minutes per row this costs pays for itself the first time someone asks "where did that inlet velocity come from?" It also forces the most valuable habit in this session: every prescribed number must have a provenance. A diffuser velocity with no source is a guess wearing a uniform.

Walls close the thermal enclosure, and here the choice is between prescribed temperature and conjugate heat transfer. Prescribing a fixed wall temperature or heat flux is appropriate when the surface temperature is genuinely known: a chilled ceiling panel held at a setpoint, an interior partition between two conditioned spaces. But a facade wall or a window is not at a known temperature; its temperature results from outdoor conditions, conduction through the construction, interior convection, and radiation exchange with the room. Fixing it to a guessed value decouples the model from the physics that set that temperature, and in winter the guessed glass temperature is exactly what decides the downdraft strength. Conjugate heat transfer, modeling conduction through the solid wall coupled to the interior fluid, lets the surface temperature emerge from the solution. It costs mesh in the solid and an extra energy equation, but for facades, roofs, and any surface where the temperature is part of the answer rather than part of the question, it is the honest choice. A workable middle ground is a convective boundary condition with an overall heat transfer coefficient representing the wall assembly plus outdoor film: cheaper than full conjugate modeling, and it still lets the interior surface temperature respond to the room.

Key takeaways

  • Never model a diffuser as a uniform velocity patch; use a momentum-correct method that preserves total mass flow and directional momentum flux, calibrated to manufacturer data or a detailed diffuser simulation.
  • Low-momentum supplies (displacement, underfloor) must stay low-momentum: over-specified inlet velocity destroys the stratification the system is designed to create.
  • Represent heat sources with realistic total power, convective/radiative split, and vertical extent, and resolve the mesh above them so the plume survives numerical diffusion.
  • Do not over-constrain exhausts and openings; let pressure-driven flows find their own balance, and extend the domain rather than truncating at doorways.
  • Use conjugate or convective wall conditions where the surface temperature is part of the answer (facades, glazing); reserve prescribed temperatures for surfaces genuinely held at a known value.

Session 6

Validation and Verification: Proving the Model, Then Proving It Against Reality

Objectives

  • Separate verification (solving the equations correctly) from validation (solving the right equations) and know what evidence each requires.
  • Apply verification checks: grid independence, residual behavior, and global mass and energy balances.
  • Use the standard indoor-airflow benchmark cases (Nielsen test room, IEA Annex 20) to validate a modeling setup.
  • Choose comparison quantities that actually discriminate between good and bad models.

Two different questions hide inside the phrase "is the model right," and confusing them is one of the costliest habits in CFD practice. Verification asks: are we solving the equations correctly? It is a purely mathematical question about the code and the mesh: does the discrete solution converge to the exact solution of the modeled equations as the mesh refines, are the residuals driven down, do mass and energy balance close? Validation asks a harder question: are we solving the right equations? It compares the simulation against physical reality, measurements from a real room or a laboratory experiment, and it is the only thing that can expose a wrong turbulence model, a missing radiation term, or a diffuser boundary condition that misrepresents the device. A model can be perfectly verified and completely invalid: a beautifully grid-independent solution of the wrong physics. Verification comes first because there is no point validating a solution that is still mesh-dependent, but validation is what earns the right to use the model for design decisions.

Verification has three practical pillars. The first is the grid-independence study of Session 4: three systematically refined meshes, a GCI band on the quantities of interest, and a documented decision that the mesh is adequate. The second is convergence behavior. Residuals should fall by several orders of magnitude and, more importantly, the monitored engineering quantities (exhaust temperature, age of air, velocity at key points) should stop changing with further iteration. Residuals that stall at a plateau while monitors still drift mean the solution is not converged, however flat the residual plot looks. Run long enough that the monitors are stationary, and report both residuals and monitor histories. The third pillar is global balances: mass in must equal mass out to within a tight tolerance, and the energy balance (supply enthalpy plus internal heat gains equals exhaust enthalpy plus wall losses) must close. A model whose energy balance is off substantially has a setup error, a missing heat path, or an unconverged field, and no contour plot from it should be trusted.

Validation requires experimental data, and for indoor airflow the community has produced benchmark cases specifically so that modelers do not each have to build their own laboratory. The Nielsen test room is the classic: a full-scale room with a wall-mounted supply slot and a low-level exhaust, measured in detail, that has served for decades as the proving ground for room-airflow turbulence models. If your modeling setup cannot reproduce the Nielsen room's jet trajectory and room circulation pattern, it will not reproduce your client's conference room either. The IEA Annex 20 program went further, defining a systematic set of 2D and 3D test cases, isothermal and buoyant, forced and natural convection, with documented geometry, boundary conditions, and measurement data. The 2D cases are cheap enough to run during model development and sensitive enough to discriminate between turbulence treatments; the 3D cases test the full setup including radiation and conjugate walls. The professional workflow is to validate the modeling approach (turbulence model, wall treatment, buoyancy and radiation settings, diffuser method) against the relevant benchmark before applying it to the project geometry. The benchmark run is not overhead; it is the calibration certificate of your entire methodology.

What you compare matters as much as what you compare against. Bulk quantities like average room temperature are weak validators: many wrong models produce the right average. The quantities that discriminate are spatial and local. Compare velocity profiles along the jet centerline and at several downstream stations, because jet decay and spread expose turbulence-model and inlet errors directly. Compare temperature stratification profiles at multiple room positions, because the shape of the stratification curve exposes buoyancy and radiation errors that a single average hides. Compare age-of-air or tracer-decay curves where available, because they integrate the whole flow pattern into one sensitive diagnostic. And compare wall-adjacent quantities, velocities and temperatures near the facade or the floor, because that is where wall treatment and conjugate modeling succeed or fail. When reporting a validation, show the comparison as profiles and fields side by side with the measurements, quantify the discrepancy, and state plainly where the model matches and where it does not. A validation that reports only "good agreement" without numbers is a claim, not evidence.

Common mistakes

The most damaging validation mistake is tuning the model to the experiment: adjusting inlet turbulence, wall roughness, or heat transfer coefficients until the simulation matches the data, then declaring the model validated. A tuned model has been fitted, not validated; it will match that one experiment and fail the next room. Fix the modeling choices from physics and from the benchmark literature, run the project case with those fixed choices, and let the comparison speak honestly. The second mistake is validating against the wrong case: an isothermal benchmark tells you nothing about your buoyancy treatment, and a mixing-ventilation benchmark tells you nothing about your displacement-ventilation plume modeling. Match the benchmark's physics to the project's physics. The third is treating one successful validation as permanent: every significant change in flow regime or geometry family deserves a re-check against the relevant benchmark.

A final note on the role of project-specific measurements. Benchmarks validate the methodology, but the strongest project reports also include some comparison against the actual space: spot velocity and temperature measurements at a few locations, or a simple tracer decay test after fit-out. These rarely match the CFD point-for-point, and they do not need to; the goal is to confirm that the model reproduces the pattern (where the cool layer sits, which zone is oldest, where the draft occurs) within a defensible tolerance. When the pattern matches, the comparative design studies built on that model rest on a validated foundation. Verification proves you solved the equations; benchmark validation proves your modeling choices capture room physics; project measurements prove you applied those choices to the right room. All three together are what make a CFD report something an engineer can sign.

Key takeaways

  • Verification (grid independence, convergence of monitors, global mass and energy balances) proves the equations were solved correctly; validation against experiment proves the right equations were chosen.
  • Converge the monitored engineering quantities, not just the residuals; close the energy balance before trusting any field.
  • Validate the full modeling setup against the Nielsen test room and the relevant IEA Annex 20 cases before running project geometry.
  • Compare discriminating quantities: jet profiles, stratification curves, age-of-air diagnostics, and near-wall fields, not just room averages.
  • Never tune the model to fit the experiment; fix modeling choices from physics, report discrepancies honestly, and re-validate when the flow regime changes.

Session 7

Common Pitfalls and the Pre-Run Checklist: What Fails in Practice and How to Catch It Before You Compute

Objectives

  • Diagnose the recurring failure modes of indoor CFD: unconverged buoyancy, wrong reference density, missing radiation, naive diffuser inlets, ignored thermal mass.
  • Apply targeted fixes for each failure mode instead of blindly refining the mesh or relaxing the solver.
  • Use a practical pre-run checklist on every project to catch setup errors before they consume compute time.

By this point in the course you know how to build an indoor airflow model correctly. This session is about what happens when the model is built slightly incorrectly, which is the normal state of affairs on real projects, and how to recognize each failure from its symptoms. The pitfalls below are ordered roughly by how often they appear in practice and how silently they corrupt results.

Unconverged buoyancy-driven flows are the most common source of wasted compute time. The symptom is familiar: residuals oscillate or stall, monitored temperatures drift slowly, and the stratification interface wanders. The cause is physical, not just numerical: buoyancy-driven flows are genuinely unsteady at large scales (plumes sway, stratification layers slosh), and a steady solver chasing a stationary solution to a naturally unsteady flow will never fully settle. The fix is not to keep iterating blindly. First, initialize intelligently: start from a converged isothermal flow field, then enable buoyancy, then add heat sources, so the solver finds the stratified state progressively rather than discovering it from a uniform guess. Second, judge convergence by the monitored quantities, not the residuals; when the age of air, exhaust temperature, and stratification profile stop changing, the solution is converged for engineering purposes even if continuity residuals sit higher than textbook ideals. Third, if large-scale unsteadiness persists in the monitors, accept that the flow wants to be transient: run unsteady RANS with a sensible time step and time-average the result. A time-averaged unsteady solution is honest; a "converged" steady solution with drifting monitors is fiction.

The wrong operating density reference location is subtler and more dangerous because the solution converges cleanly. Recall from Session 3 that the Boussinesq buoyancy force depends on the reference density and reference temperature. If the reference temperature is set far from the actual mean room temperature, every buoyancy force in the domain carries a systematic offset: the whole flow behaves as if the room were uniformly warmer or colder than it is. Stratification interfaces sit at the wrong heights, plume rise rates shift, and natural ventilation flow rates through openings change, all while residuals look perfect. The defense is procedural: set the reference temperature near the expected occupied-zone mean before running, and after the run, check the volume-averaged room temperature against the reference. If they differ substantially, update the reference and re-run. This two-pass habit costs one extra run and eliminates an entire class of silent error.

Missing radiation on cold surfaces is the pitfall that explains the largest number of "CFD does not match measurement" stories in perimeter zones. The mechanism was covered in Session 3: without radiation, the cold glass or facade sits at the wrong temperature, the downdraft it drives is wrong, and the predicted draft risk at the nearby workstation is wrong. The symptom in the results is a perimeter zone that looks comfortable in the model while occupants complain in reality, or a measured stratification profile that the model cannot reproduce no matter how the convection settings are adjusted. The fix is to include a radiation model (surface-to-surface for ordinary rooms) whenever large cool or sunlit surfaces participate, and to model the facade with conjugate or convective conditions so its temperature is solved, not guessed. If a perimeter model was already run without radiation, do not try to rescue it by tuning convective coefficients; re-run with radiation.

Modeling the diffuser as a uniform velocity inlet, covered in Session 5, deserves its restatement here because it remains the single most common boundary-condition error in industry models. Its signature is a jet that throws too far or too short, entrains incorrectly, and sets up a room circulation pattern that no adjustment of flow rate can fix, because the error is in momentum distribution, not in mass flow. Any model inherited from someone else should have its diffuser treatment audited first: if the inlet is a flat patch with uniform normal velocity over the nominal diffuser area, the model's far field is suspect until a momentum-correct representation replaces it.

Ignoring thermal mass is the pitfall of transient studies: night cooling, morning warm-up, demand-response pre-cooling, or any scenario where the building fabric stores and releases heat. A model with adiabatic or fixed-temperature walls and no solid zones treats the room as thermally weightless, so temperatures swing far faster than reality and the predicted timing of every transient event is wrong. The fix is to include the relevant solid mass (slab, walls) with real material properties and initial temperature conditions, and to run the simulation over enough physical time for the mass to participate. For steady-state design studies thermal mass is irrelevant, but the moment the question involves time, the mass must be in the model.

Design note

When a model misbehaves, diagnose in order of cheapness: boundary conditions first (diffuser momentum, reference temperature, missing radiation), then physical models (turbulence treatment, buoyancy formulation), then mesh (resolution in the jet and plume, y+ on critical walls), and only last the solver settings. Beginners do the reverse: they relax under-relaxation factors and refine the mesh before questioning whether the diffuser inlet represents the device. Solver settings almost never fix a physics or boundary error; they only make the wrong answer arrive more smoothly.

Pre-run checklist

The following checklist is meant to be used literally, before every production run. It takes fifteen minutes and has saved more projects than any solver trick.

  • Geometry: domain includes the full room plus adjacent spaces that influence the flow (no unjustified truncation at doorways); diffuser locations match the reflected ceiling plan; major furniture and equipment blocks are present.
  • Gravity and reference state: gravity vector points down along the correct axis; reference temperature set near the expected occupied-zone mean; operating density consistent with that temperature.
  • Inlets: every diffuser uses a momentum-correct representation (box/momentum method) with documented mass flow and momentum flux; inlet turbulence intensity and length scale are physically reasonable; supply temperature is correct.
  • Heat sources: every occupant and equipment load is present with realistic total power and a convective/radiative split; plume formation regions have adequate mesh resolution.
  • Exhausts and openings: outlets are not over-constrained (no simultaneous fixed velocity and fixed pressure); pressure boundaries carry realistic loss characteristics where applicable.
  • Walls: facades and glazing use conjugate or convective conditions so surface temperatures are solved, not guessed; interior partitions carry conditions matching their real thermal situation.
  • Radiation: radiation model enabled wherever large surfaces differ meaningfully from room air temperature; surface emissivities are realistic; angular discretization checked if using discrete ordinates.
  • Turbulence and walls: turbulence model chosen for the flow regime (document the reason); y+ checked against the intended wall treatment on critical surfaces.
  • Mesh: three-level refinement study completed or scheduled for this geometry family; monitored quantities include at least one zone/local quantity tied to the design question.
  • Initialization and convergence plan: staged initialization (isothermal, then buoyancy, then radiation) planned; convergence will be judged on monitored quantities plus residuals; energy balance closure will be checked before results are used.
  • Validation basis: the modeling setup has been run against the relevant benchmark (Nielsen room, IEA Annex 20 case) and the comparison is on file.

Run through this list, initial each line in your project notes, and only then submit the job. The models that fail in practice rarely fail for exotic reasons; they fail because one line on this list was skipped under schedule pressure. The checklist is the cheapest quality assurance instrument in indoor CFD, and after this course, skipping it is a choice you make knowingly.

Key takeaways

  • Buoyancy-driven flows may be genuinely unsteady: initialize in stages, judge convergence by monitors, and switch to unsteady RANS with time averaging when the flow demands it.
  • A wrong reference temperature offsets every buoyancy force silently; check volume-averaged temperature against the reference after the run and iterate if needed.
  • Missing radiation on cold facades corrupts downdrafts, stratification, and draft risk; include it and solve the facade temperature rather than guessing it.
  • Audit inherited models starting with the diffuser inlet; a uniform velocity patch invalidates the far field regardless of mesh quality.
  • Include thermal mass with real properties whenever the question involves time; use the pre-run checklist on every production run without exception.

References

References

Every source below is an established engineering textbook, an ASHRAE or ISO standard or handbook, or a peer-reviewed paper from a Q1/Q2 journal. Inline citations in the sessions above refer to these entries.

  1. Versteeg, H. K. and Malalasekera, W., An Introduction to Computational Fluid Dynamics: The Finite Volume Method, 2nd ed., Pearson, 2007.
  2. Ferziger, J. H. and Peric, M., Computational Methods for Fluid Dynamics, 3rd ed., Springer, 2002.
  3. Nielsen, P. V., Restivo, A. and Whitelaw, J. H., "The velocity characteristics of ventilated rooms," Journal of Fluids Engineering (ASME), Vol. 100, pp. 291-298, 1978.
  4. Chen, Q. and Srebric, J., "A procedure for verification, validation, and reporting of indoor environment CFD analyses," HVAC and R Research, Vol. 8, pp. 201-216, 2002.
  5. Chen, Q., "Ventilation performance prediction for buildings: a method overview and recent applications," Building and Environment, Vol. 44, pp. 848-858, 2009.