The Landau Damping Benchmark, Start to Finish
The task
Set up, run and analyse the standard kinetic benchmark, and decide whether the solver passes.
Step 1: the target
The least-damped root of \(\epsilon(k,\omega) = 0\) for a Maxwellian at \(k\lambda_D = 0.5\):
Pick \(k\lambda_D = 0.5\) deliberately. It damps by a factor of ~20 over \(20\,\omega_{pe}^{-1}\) — enough decades for a clean fit, not so fast that the signal vanishes into round-off before you have peaks to regress.
Step 2: choose the grid
| Parameter | Choice | Why |
|---|---|---|
| \(L\) | \(2\pi/k = 4\pi \approx 12.57\) | exactly one wavelength |
| \(N_x\) | 64 | the mode is \(k=1\) in box units; harmonics need a few more |
| \(v_{\max}\) | 6 | must comfortably exceed the resonant velocity |
| \(N_v\) | 256 | sets \(\Delta v\), hence recurrence — see step 4 |
| \(A\) | 0.01 | small enough that trapping stays negligible |
| \(\Delta t\) | 0.05 | ~125 steps per plasma period |
Why \(v_{\max} = 6\) and not 3. The resonant velocity is \(\omega_r/k = 1.41566/0.5 = 2.83\) in units of \(v_{th}\). The damping is produced by particles near that velocity, and the Maxwellian tail beyond it still matters. Truncating at \(3v_{th}\) chops the resonance region in half and the measured rate comes out wrong — a subtle, plausible-looking error.
Step 3: the factor of two
Linear theory gives the amplitude rate. The field energy
therefore decays as \(e^{2\gamma t}\):
Report \(\gamma\), not the slope. Half the right answer is the single most common outcome of this exercise, and \(-0.0767\) looks entirely reasonable if you are not expecting it.
Step 4: check recurrence before you run
The damping time is \(1/|\gamma| = 6.5\). So there are ~41 damping times before recurrence — enormous headroom. Run to \(t = 30\) and it is irrelevant.
Contrast \(N_v = 32\): \(\Delta v = 0.375\), \(T_R = 33.5\), barely five damping times, and the tail of the fit is contaminated. This calculation costs nothing and takes thirty seconds; doing it after a failed run costs a day.
Step 5: fit the envelope
\(\mathcal{E}(t)\) oscillates at \(\omega_r\) and decays. Regressing on the raw signal biases the slope, because the oscillation minima are not symmetric in the log. Instead:
- Find local maxima of \(\mathcal{E}(t)\).
- Regress \(\ln\mathcal{E}\) against \(t\) through those peaks only.
- Divide by 2.
Window: start at \(t \approx 3\) (after the initial transient — the initial condition is not the least-damped eigenmode, so faster-damping roots contribute early), end by \(t \approx 25\).
Step 6: measure \(\omega_r\) too
The peaks of the energy occur twice per field period, so
Another factor-of-two trap, in the opposite direction from step 3.
Step 7: the verdict
The live solver at these settings returns:
| Quantity | Measured | Exact | Error |
|---|---|---|---|
| \(\gamma\) | −0.15382 | −0.15336 | 0.3% |
| \(\omega_r\) | 1.4151 | 1.41566 | 0.04% |
| \(\int f\,dv\,dx\) drift | \(-7\times10^{-9}\) | 0 | — |
| Total energy drift | 0.02% | 0 | splitting error, as expected |
Pass. Now do it at \(k\lambda_D = 0.3\), 0.4 and 0.6 as well:
| \(k\lambda_D\) | measured | exact | error |
|---|---|---|---|
| 0.3 | −0.01213 | −0.01262 | 3.9% |
| 0.4 | −0.06647 | −0.06613 | 0.5% |
| 0.5 | −0.15382 | −0.15336 | 0.3% |
| 0.6 | −0.26483 | −0.26411 | 0.3% |
The scan is the real test. A code with a systematic error can be tuned to match one \(k\); matching across a range where \(\gamma\) varies by a factor of 20 cannot be arranged by accident. Note that \(k\lambda_D = 0.3\) is the worst case here — the damping is so weak that a small numerical diffusion is a larger fraction of it.
What failure looks like
| Symptom | Likely cause |
|---|---|
| \(\gamma\) exactly half or double | the factor of two |
| Growth instead of damping | sign error in the velocity shift (\(dv/dt = -E\)) |
| Damping far too strong, worse at fine \(\Delta t\) | linear interpolation — you are measuring numerical diffusion |
| Right at one \(k\), wrong at others | systematic error masked by tuning |
| Total garbage, \(\int f \to 0\) | departure-point indexing in the interpolation |
Related
Landau damping numerically · Semi-Lagrangian solver · Recurrence · Growth-rate fitting · Landau damping theory (PC368)