Skip to content

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\):

\[\mathcal{A}: \frac{\partial f}{\partial t} + v\frac{\partial f}{\partial x} = 0 \qquad \mathcal{B}: \frac{\partial f}{\partial t} - E(x)\frac{\partial f}{\partial v} = 0\]

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:

\[f^{n+1} = \mathcal{A}_{\Delta t/2}\;\mathcal{B}_{\Delta t}\;\mathcal{A}_{\Delta t/2}\,f^{n}\]

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.

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.