PHY653B · Computational Plasma Simulation
A knowledge wiki for PHY653B — Thammasat University graduate course, the second half of the computational sequence. PHY653 taught you to write a simulation. This course is about writing one you would be willing to defend.
The course in one paragraph
Everything descends from one equation — the Boltzmann equation for the distribution function — and every method in this course is a different admission that you cannot solve it. Take moments and you get fluid equations plus an unclosed term: the closure problem, which never terminates. Keep all of \(f\) on a grid and you get the Vlasov solver, which reproduces Landau damping exactly and then betrays you with recurrence at a time you can predict from the grid alone. Sample \(f\) with markers instead and you get PIC, which is cheap, noisy, and lies in specific, catalogued ways. Give up on kinetics and you get MHD, where the difficulty moves to shock capturing and the divergence constraint. Average over the gyro-orbit and you get gyrokinetics and the zonal flows that regulate tokamak turbulence. And in the last third, a method that is not a plasma method at all — the lattice Boltzmann equation, where the discretisation is the kinetic theory, and the viscosity is a prediction you can check to three digits.
Running underneath all of it is the part that makes it research rather than programming: verification and validation, the method of manufactured solutions, and diagnostics that survive contact with a referee.
Learning path
| Chapter | Topics |
|---|---|
| 1 · Foundations | Closure problem → Collision operators → Normalisation & resolution → Verification & validation → Manufactured solutions |
| 2 · Vlasov & velocity space | Vlasov–Poisson → Semi-Lagrangian solver → Landau damping numerically → Recurrence → Nonlinear trapping |
| 3 · PIC done properly | Shape functions → Boris pusher → Weibel instability → How PIC lies |
| 4 · Diagnostics | From arrays to claims → Growth rates and why R² lies |
| 5 · Magnetohydrodynamics | Godunov MHD & Brio–Wu → The divergence constraint |
| 6 · Gyrokinetics | Gyrokinetic ordering → Zonal flows |
| 7–9 · Lattice Boltzmann | The D2Q9 lattice → Chapman–Enskog → Thermal LBM & convection → Variable transport |
Jump in
- Lecture timeline — the nine chapters in teaching order
- Concept graph — the dependency map
- Simulations — a real Vlasov solver and a real LBM solver, in your browser
- Worked examples — benchmarks with the numbers your code must reproduce
- Quizzes · Glossary
The habit this course is really teaching
Every method here has a number it must reproduce: \(\gamma = -0.15336\) for Landau damping at \(k\lambda_D = 0.5\); \(\nu = c_s^2(\tau - \tfrac12)\) for the lattice; second-order convergence for the Boris pusher; the Brio–Wu shock positions. Before you trust a result your code has never been asked to check, find the benchmark. A simulation that has not reproduced a known answer is not evidence of anything.