Thermal Lattice Boltzmann and Convection
Source: PHY653B Ch. 8
Intuition
The isothermal D2Q9 lattice has no temperature. Adding one naively — by extending the velocity set until the lattice supports the energy moment — requires many more velocities and is notoriously unstable. The practical answer is to run two lattices: one for momentum, one for temperature, coupled through buoyancy.
Why a second lattice
Temperature obeys an advection–diffusion equation,
which needs fewer moments than momentum does — the flux is a scalar, not a tensor. A reduced stencil (D2Q5 or D2Q9 with a scalar equilibrium) suffices:
with its own relaxation time \(\tau_T\) and, by the same Chapman–Enskog argument, a predicted thermal diffusivity
Two independent relaxation times mean the Prandtl number \(Pr = \nu/\alpha\) is now a free parameter — which single-relaxation-time BGK on one lattice could not deliver.
Coupling: the Boussinesq approximation
Density variation is neglected everywhere except in the buoyancy term, where it is linearised:
added to the momentum lattice as a body force (Guo forcing). The temperature lattice is advected by the velocity the momentum lattice produces. That is the whole coupling: one force term and one advection velocity.
Boussinesq is valid when temperature differences are small enough that density varies weakly — which covers most laboratory convection and is where the standard benchmarks live.
Verification, then validation
Chapter 8's sequence is a model of how to build a coupled solver, and worth copying:
- Isolate the thermal lattice. Switch off the coupling and solve pure diffusion with an analytic solution. Confirm \(\alpha = c_s^2(\tau_T - \tfrac12)\) and second-order convergence. Do not proceed until this passes.
- Couple, then validate against de Vahl Davis. The differentially heated square cavity is the natural-convection benchmark, with tabulated Nusselt numbers and peak velocities at \(Ra = 10^3\)–\(10^6\). Reproduce the table.
- Then Rayleigh–Bénard. Heated from below, and the classic instability: nothing happens until \(Ra\) exceeds the critical value
$\(Ra_c = 1707.76\)$
at which point convection rolls appear spontaneously. A solver that reproduces \(Ra_c\) to within a percent or two has demonstrated that its coupling, its boundaries and its transport coefficients are all simultaneously right — which no single-physics test can show.
\(Ra_c\) is a superb benchmark precisely because it is a threshold: it is a sharp number, it depends on everything in the solver, and there is no parameter to tune it with.
Common mistakes
- Coupling before verifying the thermal lattice alone. If diffusion is wrong, convection will be wrong in a way that is impossible to diagnose.
- Using the same relaxation time for both lattices. That fixes \(Pr = 1\), which is fine for gases and wrong for water (\(Pr \approx 7\)) and very wrong for liquid metals (\(Pr \sim 0.01\)).
- Getting the thermal boundary conditions wrong. Fixed-temperature (Dirichlet) and fixed-flux (Neumann) walls need different population treatments, and an incorrect wall condition shifts \(Ra_c\) — which is exactly why \(Ra_c\) is such a good test.
- Reporting \(Ra\) without stating how it was computed. \(Ra = g\beta\Delta T H^3/(\nu\alpha)\) involves every transport coefficient in the problem; an error in any of them misplaces the threshold.
Related concepts
- D2Q9 lattice · Chapman–Enskog
- Variable transport — what happens when \(\nu\) depends on \(T\)
- Verification and validation — the staged strategy above
- Rayleigh–Taylor (PC316) · Hydrodynamic stability (PC316)
- Buoyancy (PC316)
Knowledge graph position
Prerequisites: D2Q9 lattice, Chapman–Enskog, buoyancy. Leads to: variable transport, multiphase and reacting-flow LBM.
Quiz
Q1 (conceptual). Why use a separate lattice for temperature instead of extending the velocity set?
Answer
Supporting the energy moment on a single lattice requires many more velocities and is notoriously unstable. Temperature obeys a scalar advection–diffusion equation needing far fewer moments, so a reduced second lattice is cheaper, more stable, and gives an independent relaxation time — hence a tunable Prandtl number.
Q2 (computational). A thermal lattice uses \(\tau_T = 0.9\) and the momentum lattice \(\tau = 0.6\). What is the Prandtl number?
Answer
\(\nu = \frac13(0.6-0.5) = 0.0333\), \(\alpha = \frac13(0.9-0.5) = 0.1333\). \(Pr = \nu/\alpha = 0.25\) — a liquid-metal-like value.
Q3 (MCQ). \(Ra_c = 1707.76\) is an especially good validation target because:
- (a) it is easy to reach numerically
- (b) it is a sharp threshold depending on the coupling, boundary conditions and both transport coefficients at once, with nothing to tune
- (c) it does not depend on the boundary conditions
- (d) it can be derived from the lattice weights
Answer
(b). A threshold is pass/fail rather than approximate, and this one is sensitive to every part of the solver simultaneously — so reproducing it validates the whole coupled system in a way no single-physics test can.