Physics 5531 · Spring 2026 · Unified Transport Theory

From Crystal Vibrations to Fluid Flow

A unified transport picture via the Boltzmann equation and the Lattice Boltzmann Method

Solids conduct heat through phonons. Fluids conduct momentum through molecules. Despite appearing to be entirely different phenomena in entirely different materials — both are governed by the same transport equation. This document shows why, and what to do about it computationally.
Part I

The Crystal Side

Starting from atoms and springs, building up to heat-carrying quantum packets.

§ 1The Lattice as Coupled Oscillators

A crystal is, at its heart, a very regular arrangement of atoms — a grid, like eggs in a carton, except in three dimensions and held together by electromagnetic bonds. Forget electrons for now. Just think about the atoms themselves, sitting at their equilibrium positions, each one connected to its neighbors by bonds that act, for small disturbances, exactly like springs.

Imagine a long line of people, each holding hands with their neighbors. You push the first person gently. They sway, pull their neighbors, who pull their neighbors. A ripple moves down the line. Nobody walks anywhere — they just pass the disturbance along through the connections. This is precisely what happens in a crystal when it vibrates.

If we call un the displacement of atom n from its rest position, then Newton's second law applied to that atom gives:

Equation of Motion — Monoatomic Chain (Kittel Ch. 4) \[ M\ddot{u}_n = C(u_{n+1} + u_{n-1} - 2u_n) \]
M = atomic mass. C = spring stiffness of the bond. u_{n±1} = displacement of the neighboring atoms. The right side is simply the net spring force: the left neighbor pulls one way, the right neighbor pulls the other. If both neighbors are displaced equally, the net force is zero.

This is just Newton's second law — mass times acceleration equals force. There is nothing exotic here. But the challenge is that you have N of these equations, all coupled together. Atom n affects atom n+1, which affects n+2, and so on. How do you solve N coupled equations simultaneously?

The answer is: stop thinking about individual atoms. Think about wave patterns that involve all atoms simultaneously.

§ 2Normal Modes — The Crystal Thinks in Waves

When you have a complicated system of coupled oscillators, the smart move is to look for normal modes — collective patterns in which every single atom oscillates at the same frequency at the same time. Like a choir, where every voice is singing the same note simultaneously.

We try a wave-shaped solution — what physicists call an ansatz (an educated guess):

Trial Wave Solution \[ u_n(t) = A\, e^{i(kna - \omega t)} \]
This says: every atom n has a displacement that oscillates sinusoidally, but with a phase that shifts from atom to atom. k is the wavevector (how rapidly the phase shifts along the chain). ω is the frequency (how rapidly it oscillates in time). a is the lattice spacing.

You plug this trial solution into the equation of motion. The N coupled equations all reduce to one algebraic relationship between ω and k:

Dispersion Relation — Monoatomic Chain \[ \omega(k) = 2\sqrt{\frac{C}{M}}\left|\sin\left(\frac{ka}{2}\right)\right| \]
This is the dispersion relation — the fingerprint of the crystal. It tells you: if you excite a wave with wavevector k, it will vibrate at frequency ω(k). Stiff bonds (large C) → high frequencies. Heavy atoms (large M) → low frequencies. The slope dω/dk is the group velocity — how fast energy travels.
Crystal: ... ●——●——●——●——●——●——● ... Normal Mode 1 (long wave, small k): displacement: ↑ ↑ ↑ ↑ ↑ ↑ ↑ (all move together, slow) Normal Mode 2 (short wave, large k): displacement: ↑ ↓ ↑ ↓ ↑ ↓ ↑ (alternating, fast) Each pattern = one normal mode, one frequency ω(k)

A crystal of N atoms has exactly N normal modes. And here is the crucial fact — the normal modes are independent of each other. Each one vibrates at its own private frequency without disturbing the others. The crystal, which looked like N terrifyingly coupled equations, is secretly just N independent oscillators.

§ 3Quantization — What is a Phonon?

Classical physics says a normal mode can vibrate with any amplitude — any energy value is allowed. Quantum mechanics says: no. The energy of a harmonic oscillator — which is what each normal mode is — comes in discrete steps:

Energy Levels of a Quantum Harmonic Oscillator \[ E_n = \left(n + \frac{1}{2}\right)\hbar\omega, \quad n = 0, 1, 2, 3, \ldots \]
n = 0: ground state, energy ½ℏω (the "zero-point energy" — the crystal is never completely still). n = 1: one packet of energy added. n = 2: two packets. Each packet costs exactly ℏω.

Each normal mode is a bucket. Each phonon is one cup of water in that bucket. You can have zero, one, five, or a hundred cups — but never 2.7 cups. Quantum mechanics enforces whole cups only. Adding heat to the crystal means pouring more cups into the buckets. Cooling it means removing cups. Heat flowing from hot to cold means cups sloshing from fuller buckets toward emptier ones.

A phonon is one quantum of vibrational energy in a normal mode. It carries energy ℏω and crystal momentum ℏk. It is not a particle sitting somewhere in the crystal — it is a quantum of collective motion involving every atom at once. But it behaves like a particle in interactions, so we call it a quasiparticle and treat it as one.

Heat in a crystal is a gas of phonons. Temperature is a measure of how many phonons are present. This is not an analogy. This is what is literally happening.

§ 4Statistics — How Many Phonons at Temperature T?

Phonons are bosons — particles with the property that any number can occupy the same mode simultaneously. There is no restriction on how many phonons pile into a single mode. (The opposite holds for electrons, which are fermions — only one electron per state. Phonons have no such social inhibition.)

Because phonons can be freely created and destroyed — adding heat creates phonons, removing heat destroys them — their number is not fixed. There is no "conservation of phonon number." This means their chemical potential is zero.

From these two facts — bosons, zero chemical potential — statistical mechanics gives us the Bose-Einstein distribution: the average number of phonons in a mode of frequency ω when the crystal is at temperature T:

Bose-Einstein Distribution — Equilibrium Phonon Occupation \[ \langle n \rangle = f^{eq}(\omega, T) = \frac{1}{e^{\hbar\omega/k_BT} - 1} \]
Read it physically: when T is large or ω is small, the exponent is small, the denominator is small, and ⟨n⟩ is large — many phonons, hot crystal, makes sense. When T is small or ω is large, the exponent is huge, and ⟨n⟩ → 0 — cold crystal, high-energy modes barely populated, makes sense. At T = 0: silence.

This distribution tells you the complete thermal state of a crystal at equilibrium. From it you can calculate specific heat, total energy, how heat is stored across modes. It is the answer to "what does a crystal at temperature T look like?" — but only at equilibrium, only when nothing is changing.

§ 5Transport — The Crystal Out of Equilibrium

Now something interesting happens. Put the left end of your crystal in contact with a flame. Put the right end in ice water. The crystal is no longer at a uniform temperature — it has a gradient. Phonons are not distributed uniformly. There are more phonons on the hot left, fewer on the cold right. Heat is flowing.

To describe this, we need a function that tracks the phonon distribution at every point in the crystal, for every mode, at every moment in time. We define:

The Distribution Function \[ f(x,\, k,\, t) \]
"How many phonons of type k are at position x at time t?" At equilibrium, f = f^eq everywhere. Out of equilibrium, f deviates — more phonons on the hot side, fewer on the cold side. This one function encodes everything about the non-equilibrium state of the crystal.

Two processes govern how f evolves. First: phonons move. A phonon with wavevector k travels at group velocity vg = dω/dk, carrying its "cup count" from one place to another — from high-f regions toward low-f regions. Second: phonons scatter — off each other, off defects, off boundaries. Scattering continuously nudges f back toward the equilibrium distribution f^eq.

Put these together and you get the Boltzmann Transport Equation (BTE):

Phonon Boltzmann Transport Equation (1D, RTA) \[ \frac{\partial f}{\partial t} + v_g \frac{\partial f}{\partial x} = -\frac{f - f^{eq}}{\tau} \]
Left side, term 1 — ∂f/∂t: how f changes with time at a fixed location.
Left side, term 2 — v_g ∂f/∂x: how phonons streaming in from neighboring positions change the local f. This is the "drift" term.
Right side — -(f - f^eq)/τ: scattering pulls f back toward equilibrium. τ is the relaxation time — how long scattering takes to restore equilibrium. Small τ: strong scattering, short mean free path. Large τ: weak scattering, long mean free path, nearly ballistic.

This is the bridge point. The BTE governs all non-equilibrium phonon transport in a crystal. Solve it, and you know temperature, heat flux, and thermal conductivity everywhere. It supersedes Fourier's law — which is merely a special, approximate solution to the BTE valid only when the crystal is close to equilibrium.

Part II

The Fluid Side

Gas molecules instead of phonons — and a startling discovery.

§ 6Gas Molecules — f is Not Just a Letter

Now forget the crystal completely. Think about air in a room — a gas of molecules flying around, bouncing off each other, bouncing off the walls. The molecules are real particles. They have mass, they carry momentum, and they crash into each other billions of times per second.

You cannot track every molecule individually — there are roughly 10²⁷ of them in a cubic meter of air. So you describe the gas statistically using a distribution function. But here is the critical point that must be stated clearly:

f(x, v, t) is not just an abstract symbol. It is a concrete, computable function. At equilibrium it has a specific, known functional form. Out of equilibrium, it deviates from that form — and the BTE tells you exactly how.

At equilibrium, the fluid distribution function is the Maxwell-Boltzmann distribution:

Maxwell-Boltzmann Distribution — Equilibrium Fluid (f₀) \[ f_0(v) = n\left(\frac{m}{2\pi k_B T}\right)^{3/2} \exp\!\left(-\frac{mv^2}{2k_BT}\right) \]
n = number density (molecules per cubic meter). m = mass of one molecule. T = temperature. k_B = Boltzmann's constant.

This is a Gaussian — a bell curve — in velocity space. The peak sits at v = 0: the most common state is a molecule momentarily at rest. The width of the bell curve grows with temperature: hotter gas → wider Gaussian → more molecules at high speeds. The prefactor ensures that integrating f₀ over all velocities gives back n — the total number of molecules per unit volume. Everything is concrete and computable.

Picture a bell curve drawn on a graph where the horizontal axis is velocity (from very fast leftward, through zero, to very fast rightward) and the vertical axis is "how many molecules have this velocity." At room temperature the bell is narrow — most molecules cluster near moderate speeds. At 10,000 K the bell is wide and flat — molecules are spread across a vast range of speeds. That shape, precisely, is f₀(v). It is not vague. It is a Gaussian with a specific width \(\sqrt{k_BT/m}\).

Now — what happens out of equilibrium? Say you push the gas from the left. Molecules on the left are moving faster to the right than molecules on the right. The distribution f(x, v, t) is no longer a symmetric Gaussian — it is skewed. The peak shifts. The shape distorts. And it varies from place to place.

The full out-of-equilibrium BTE for a fluid, including an external force F (like gravity or a pressure gradient), is:

Full Fluid Boltzmann Transport Equation \[ \frac{\partial f}{\partial t} + v\cdot\frac{\partial f}{\partial x} + \frac{F}{m}\cdot\frac{\partial f}{\partial v} = \left(\frac{\partial f}{\partial t}\right)_{\!\text{collisions}} \]
Term 1 — ∂f/∂t: f changing with time at a fixed location and velocity.
Term 2 — v·∂f/∂x: molecules moving through space, carrying the distribution with them. Fast molecules carry their "population count" to new locations.
Term 3 — (F/m)·∂f/∂v: external forces accelerate molecules, shifting them across velocity space. A molecule at velocity v gets pushed to velocity v + (F/m)Δt.
Right side — collisions: molecules scatter off each other, nudging f back toward the equilibrium Gaussian f₀. Under the relaxation time approximation this becomes −(f − f₀)/τ.

§ 7The Phonon Analog — Same Building, Different Bricks

Now place the phonon picture next to the fluid picture. For phonons, the distribution function is f(x, k, t) — how many phonons of wavevector k are at position x at time t. At equilibrium, its concrete functional form is the Bose-Einstein distribution:

Bose-Einstein Distribution — Equilibrium Phonon Occupation (n₀) \[ n_0(k) = \frac{1}{e^{\,\hbar\omega(k)/k_BT} - 1} \]
= reduced Planck constant. ω(k) = phonon frequency at wavevector k — given by the dispersion relation you derived: ω(k) = 2√(C/M)|sin(ka/2)|. T = temperature. k_B = Boltzmann's constant.

Notice: ω(k) goes inside the distribution. This is exactly why the dispersion relation matters — it feeds directly into the thermal occupation. Your problem set gave you ω(k). This is the next floor of the building: you plug ω(k) into n₀(k) and get the actual phonon population at temperature T.

The Maxwell-Boltzmann is a Gaussian — it decays as e^{−v²}. The Bose-Einstein is not a Gaussian — it decays as 1/(e^{ω/T}−1). The shapes are different because the statistics are different: molecules are classical particles, phonons are quantum bosons. But both functions serve the same role: they are the concrete equilibrium answer to "what does the distribution look like at temperature T?"

Now compare the two transport equations side by side, with both f^eq written out explicitly:

Side-by-Side Comparison — Both BTEs Made Explicit \[ \textbf{Fluid:}\quad \frac{\partial f}{\partial t} + v\frac{\partial f}{\partial x} = -\frac{1}{\tau}\!\left[f - n\!\left(\frac{m}{2\pi k_BT}\right)^{\!3/2}\!e^{-mv^2/2k_BT}\right] \] \[ \textbf{Phonon:}\quad \frac{\partial f}{\partial t} + v_g\frac{\partial f}{\partial x} = -\frac{1}{\tau}\!\left[f - \frac{1}{e^{\hbar\omega(k)/k_BT}-1}\right] \]
The skeleton — ∂f/∂t + (velocity)·∂f/∂x = −(f − f^eq)/τ — is letter-for-letter identical. The only differences are: (1) molecular velocity v vs. phonon group velocity v_g, and (2) Maxwell-Boltzmann vs. Bose-Einstein for f^eq. The transport mechanism — drift and relaxation — is the same physics in both cases.
"f is not abstract. It is a concrete function with a known shape at equilibrium — Gaussian for molecules, Bose-Einstein for phonons — and the BTE tells you how that shape deforms when the system is driven out of equilibrium."

This is not a coincidence and not an approximation. It is a deep structural truth: whenever you have a gas of things that move and scatter, their collective behavior is governed by the Boltzmann Transport Equation. The "things" can be phonons, molecules, photons, electrons — it doesn't matter. The equation is the same. Only f^eq changes.

Part III

The Unification

Same mathematics, different meaning.

§ 8The Comparison — Side by Side

Let us place the two pictures next to each other and see exactly what is shared and what differs.

Concept Crystal (Solid) Gas (Fluid)
Carriers Phonons — quanta of collective vibration Molecules — real particles with mass
Transport variable Wavevector k (mode label) Velocity v (molecular speed)
What is transported Heat (energy) Mass, momentum, energy
Distribution function f(x, k, t) f(x, v, t)
Equilibrium distribution Bose-Einstein: 1/(e^{ℏω/kT} − 1) Maxwell-Boltzmann: ∝ e^{−mv²/2kT}
Transport equation BTE with v_g BTE with v
Governing physics Drift + scattering Drift + scattering
Conserved quantity Energy Mass + momentum + energy

The bottom row is where they differ most — phonons don't conserve their number, molecules do. This changes the equilibrium distributions. But the transport equation — the BTE — is structurally identical. Same skeleton, different organs.

Part IV

The Lattice Boltzmann Method

Wagner's computational bridge — discretizing the universal equation.

§ 9Why We Need a Numerical Method

The BTE is a partial differential equation in position, velocity/wavevector, and time — up to seven dimensions. You cannot solve it analytically for realistic geometries and boundary conditions. And naive numerical discretization of all seven dimensions would require roughly 10¹⁴ numbers just to represent the solution — far beyond any computer.

Moreover, there is a physical reason to care: at the nanoscale, Fourier's law — the standard macroscopic heat conduction equation — fails completely. Modern transistors are 5–10 nanometers across. The mean free path of phonons in silicon is 100–300 nanometers. The transistor is smaller than the distance a phonon travels between collisions. Phonons fly straight through ballistically. Fourier predicts wildly wrong heat fluxes. You need the full BTE.

The Lattice Boltzmann Method (LBM), developed by Alexander Wagner and others, is an elegant, efficient numerical method for solving the BTE. The core idea is radical in its simplicity:

Instead of tracking the full continuous distribution f(x, k, t) in seven dimensions — replace the continuous velocity/wavevector space with just a handful of discrete directions. A few populations moving in a few directions capture the essential physics at a tiny fraction of the computational cost.

§ 10The Simplest Case — D1Q2

We work in one spatial dimension with two velocity directions: right (+) and left (−). This is called D1Q2 — one Dimension, two velocities (Q=2). Simple enough to understand completely; rich enough to demonstrate all the physics.

D1Q2 velocity set: node i-1 node i node i+1 ● ● ● ← f₋ → f₊ ← f₋ → f₊ ← f₋ → f₊ At each node, two numbers: f₊ (heading right) and f₋ (heading left). That is all you store.

At each node on the grid we store two numbers: f₊ (population heading right) and f₋ (population heading left). The entire state of the system at any moment is just these two numbers per node.

§ 11The Algorithm — Six Mechanical Steps

1
Discretize Velocity

Allow only two velocities: +c (rightward) and −c (leftward), where c = v_g is the phonon group velocity (or molecular speed for fluids). Define populations f₊ and f₋ at every node.

2
Stream

Every population hops to the neighboring node in its direction. The rightward population at node i moves to node i+1. The leftward population moves to node i−1. This happens simultaneously at all nodes. No interactions — pure ballistic motion.

Stream Step \[ f_+^*(i+1,\, t+\Delta t) = f_+(i,\, t) \] \[ f_-^*(i-1,\, t+\Delta t) = f_-(i,\, t) \]
3
Collide

After streaming, at every node, nudge each population toward its equilibrium value. This encodes the scattering physics through a single parameter τ (the relaxation time).

Collide Step (BGK / Relaxation) \[ f_\pm \leftarrow f_\pm - \frac{\Delta t}{\tau}(f_\pm - f_\pm^{eq}) \]
If f₊ is too large compared to f₊^eq — too many rightward phonons — scattering reduces it. If too small, scattering increases it. The system always relaxes toward equilibrium. The rate is 1/τ. Strong scattering → small τ → fast relaxation.
4
Define Equilibrium

The equilibrium distribution tells the collision step what to relax toward. For simplicity in D1Q2, we use equal partition: each direction gets half the local energy density ρ.

Simple Equilibrium Distribution \[ f_\pm^{eq} = \frac{\rho}{2} \]
ρ is the total energy (or density) at the node: ρ = f₊ + f₋. At equilibrium, energy is shared equally between rightward and leftward populations. For phonons, a more detailed Bose-Einstein form would be used; for fluids, a Maxwell-Boltzmann form. The algorithm structure is identical regardless.
5
Extract Macroscopic Variables

From the populations, you recover the physical quantities you actually care about:

Macroscopic Variables \[ \rho = f_+ + f_- \quad \text{(density / energy)} \] \[ j = c(f_+ - f_-) \quad \text{(flux)} \]
Total population at a node = sum of both populations. Net flux = difference between rightward and leftward populations, scaled by speed c. If f₊ = f₋, no net flux — equilibrium. If f₊ > f₋, net flow to the right.
6
Repeat — and Watch Physics Emerge

Stream. Collide. Extract ρ and j. Repeat for as many timesteps as needed. What emerges — without you explicitly programming it — is the diffusion equation:

What Emerges from D1Q2 LBM \[ \frac{\partial \rho}{\partial t} = D\frac{\partial^2 \rho}{\partial x^2}, \quad D = c^2\tau \]
This is Fick's law of diffusion (or Fourier's law of heat conduction, depending on what ρ represents). It emerges automatically from the stream-and-collide algorithm — you never wrote it down explicitly. The diffusion coefficient D = c²τ connects the microscopic (speed c, relaxation time τ) to the macroscopic (diffusivity D).
Part V

The Connection Back to the Crystal

Why the algorithm doesn't care whether it's simulating heat or flow.

§ 12The Same Structure, Twice

Element Crystal (Phonons) LBM Fluid
Carriers Phonons Populations f_α
What they carry Heat Mass / momentum
How they move At group velocity v_g At discrete speed c
What stops them Scattering (τ) Relaxation (τ)
Equilibrium target Bose-Einstein ρ/Q (equal partition)
Algorithm step 1 Streaming Streaming
Algorithm step 2 Scattering → equilibrium Collision → equilibrium
Macroscopic result Fourier's law (diffusive limit) Diffusion / Navier-Stokes

The LBM algorithm is completely indifferent to whether its populations represent phonons or molecules. It only implements two operations: stream and collide. You tell it what physics it is doing by choosing the equilibrium distribution and the relaxation time. Everything else is identical.

This is why LBM, originally developed for fluid dynamics, can be directly applied to phonon transport in solids by changing only two ingredients. The machinery is universal because the underlying equation — the BTE — is universal.

A crystal begins as atoms bound by forces. Those forces reduce to oscillators. Oscillators become waves. Waves, under quantum mechanics, become phonons. Phonons, under temperature gradients, begin to flow. That flow is governed by the Boltzmann equation.

A fluid begins as molecules in motion. Those molecules, when viewed statistically, are described by the same Boltzmann equation.

The Lattice Boltzmann Method does not care whether its carriers are molecules or phonons — it only implements streaming and relaxation. Thus, a single computational framework captures both solid-state heat transport and fluid flow.

§ 13The Complete Logical Chain

① SPRING — F = −Kx couple N springs in a periodic lattice ② NORMAL MODES — collective vibration at frequency ω(k) apply quantum mechanics: energy comes in packets ③ PHONON — one packet ℏω in one normal mode ask: how many packets at temperature T? (bosons, μ=0) ④ BOSE-EINSTEIN DISTRIBUTION — ⟨n⟩ = 1/(e^{ℏω/kT}−1) allow distribution to vary in space and time ⑤ BOLTZMANN TRANSPORT EQUATION — ∂f/∂t + v_g ∂f/∂x = −(f−f^eq)/τ notice: fluid BTE is structurally identical ⑥ UNIFICATION — same equation for phonons and molecules discretize space, time, velocity (Wagner) ⑦ LATTICE BOLTZMANN METHOD — stream + collide, repeat recover macroscopic physics ⑧ DIFFUSION / FOURIER — emerges automatically