The Semi-Lagrangian Vlasov Solver
Source: PHY653B Ch. 2
Intuition
The Vlasov equation transports \(f\) along characteristics without changing its value. A semi-Lagrangian scheme exploits that literally: for each grid point, trace the characteristic backwards to where the fluid element came from, and interpolate \(f\) there. No CFL condition, because you are not stepping along a stencil — you are jumping to the departure point, however far away it is.
Splitting into two exact shifts
The operator splits into a piece that moves in \(x\) at fixed \(v\), and a piece that moves in \(v\) at fixed \(x\):
Each is a pure translation with a constant coefficient — \(\mathcal{A}\) shifts row \(v\) by \(v\Delta t\), \(\mathcal{B}\) shifts column \(x\) by \(-E(x)\Delta t\) — and can therefore be applied exactly, up to interpolation error. That is the whole idea.
Strang splitting
Applying \(\mathcal{A}\) then \(\mathcal{B}\) is first-order accurate because the operators do not commute. Symmetrising recovers second order:
Half a step in \(x\), a field solve, a full step in \(v\), half a step in \(x\). The extra cost is nothing — consecutive half-steps from adjacent iterations can be merged — and the order goes from 1 to 2. Strang splitting is close to free and there is rarely a reason not to use it.
The interpolation is the accuracy
Between the exact shifts sits the only approximation: reconstructing \(f\) at a departure point that does not land on a grid node.
| Scheme | Order | Behaviour |
|---|---|---|
| Linear | 2 | Hugely diffusive — smears filaments within a few steps, damps waves numerically |
| Cubic Lagrange | 4 | The standard compromise; mild dispersion, acceptable diffusion |
| Cubic spline | 4 | Less diffusive still, but global (a tridiagonal solve per line) |
| Spectral | ∞ | Exact translation for band-limited \(f\); ringing near sharp features |
Numerical diffusion here is not cosmetic — it sets a floor on the damping rates you can measure. A linearly-interpolated solver will happily report "Landau damping" that is mostly its own interpolation error.
The field solve
Between the two half-shifts, compute \(\rho = 1 - \int f\,dv\) and solve \(\partial E/\partial x = \rho\). In a periodic box this is one line in Fourier space, \(E_k = \rho_k/(ik)\), with the \(k=0\) mode set to zero — the mean charge must be subtracted or the problem has no solution.
What is conserved, and how well
Chapter 2's classification, and a good habit for any splitting scheme:
- To round-off: particle number and positivity-ish behaviour — each shift is an exact translation, so it moves mass without creating it. The widget holds \(\int f\) to one part in \(10^8\).
- To the order of the splitting: total energy and momentum. These are not invariants of the scheme; they drift at \(O(\Delta t^2)\). Seeing energy wander by 0.02% is expected, not a bug — but it also means you cannot use energy conservation as a sharp correctness test here.
Knowing which category a diagnostic falls into is the difference between a meaningful check and a meaningless one.
Common mistakes
- Getting the departure-point indexing wrong. The interpolation anchor and the fractional offset must be consistent: for \(\text{dst}[i] = \text{src}(i - s)\), the anchor is \(\lfloor i - s\rfloor\) and the fraction is the remainder. Off-by-one here produces a solver that still damps something, at some rate — which is why the benchmark is mandatory.
- Getting the sign of the velocity shift wrong. \(dv/dt = -E\) means the departure velocity is \(v + E\Delta t\). A sign error here gives growth where there should be damping.
- Using linear interpolation and reporting the damping rate. You will measure your interpolator.
Related concepts
- Vlasov–Poisson system — what is being solved
- Landau damping numerically — the benchmark that catches all of the above
- Recurrence — the artefact this scheme cannot avoid
- Leapfrog (PHY653) — splitting in a simpler setting
Knowledge graph position
Prerequisites: Vlasov–Poisson, interpolation, FFT. Leads to: Landau damping benchmark, trapping, gyrokinetic solvers.
Quiz
Q1 (conceptual). Why does the semi-Lagrangian scheme have no CFL restriction?
Answer
It does not propagate information along a fixed stencil. Each split step traces the characteristic back to its exact departure point and interpolates there, so a shift of many cells is no harder than a shift of a fraction of one. Accuracy still degrades with large \(\Delta t\) through the splitting error, but there is no stability limit.
Q2 (conceptual). Why is particle number conserved far better than energy?
Answer
Each split step is an exact translation of \(f\), which moves mass around without creating or destroying it — so \(\int f\) is conserved to round-off. Energy is not an invariant of either split operator individually; it is only conserved by the full coupled system, so the splitting error shows up directly as an \(O(\Delta t^2)\) energy drift.
Q3 (MCQ). Strang splitting is preferred over simple \(\mathcal{A}\mathcal{B}\) splitting because:
- (a) it is faster
- (b) symmetrising cancels the leading commutator error, giving second order for negligible extra cost
- (c) it removes the need for a field solve
- (d) it conserves energy exactly
Answer
(b). The operators do not commute, so \(\mathcal{A}\mathcal{B}\) is \(O(\Delta t)\); the symmetric arrangement cancels that term and gives \(O(\Delta t^2)\). Adjacent half-steps merge, so the cost is essentially unchanged.