Skip to content

The Boris Pusher

Source: PHY653B Ch. 3

Intuition

The Boris algorithm has been the standard particle pusher since 1970 and shows no sign of being replaced. Its virtue is a beautiful piece of operator splitting: separate the electric acceleration from the magnetic rotation, and do the rotation as an exact rotation. The result conserves energy in a static magnetic field to round-off, for arbitrarily long runs.

The algorithm

Velocities live at half-steps, positions at whole steps (leapfrog). For each particle:

  1. Half electric kick: \(\mathbf{v}^- = \mathbf{v}^{n-1/2} + \dfrac{q\mathbf{E}}{m}\dfrac{\Delta t}{2}\)

  2. Magnetic rotation — exact, via the Boris auxiliary vectors: $\(\mathbf{t} = \frac{q\mathbf{B}}{m}\frac{\Delta t}{2},\qquad \mathbf{s} = \frac{2\mathbf{t}}{1 + |\mathbf{t}|^2}\)$ $\(\mathbf{v}' = \mathbf{v}^- + \mathbf{v}^-\times\mathbf{t},\qquad \mathbf{v}^+ = \mathbf{v}^- + \mathbf{v}'\times\mathbf{s}\)$

  3. Half electric kick: \(\mathbf{v}^{n+1/2} = \mathbf{v}^+ + \dfrac{q\mathbf{E}}{m}\dfrac{\Delta t}{2}\)

  4. Drift: \(\mathbf{x}^{n+1} = \mathbf{x}^{n} + \mathbf{v}^{n+1/2}\Delta t\)

Why the rotation step is exact

The \(\mathbf{s}\) vector is not an approximation. The two cross-product steps together implement a rotation through exactly the angle \(\theta\) with \(\tan(\theta/2) = |\mathbf{t}|\), so \(|\mathbf{v}^+| = |\mathbf{v}^-|\) identically, to machine precision. A magnetic field does no work in the continuum, and Boris reproduces that exactly rather than approximately.

The consequence is the property that matters for long runs: no secular energy drift. A particle gyrating in a static field circles forever without spiralling in or out. Naive Runge–Kutta, despite being higher order, loses or gains energy monotonically and destroys the orbit over many gyroperiods. You can watch exactly this comparison in the integrator arena.

Second order — and why that is enough

Boris is only second-order accurate in \(\Delta t\). It survives because accuracy at a given step size matters far less than qualitative correctness over \(10^6\) steps. It is time-reversible and phase-space-volume-preserving (it is, in the relevant sense, symplectic), which is why the drift orbit lab conserves energy to one part in \(10^7\) and \(\mu\) to about 1% through a full mirror bounce.

Where it is imperfect

  • \(\mathbf{E}\times\mathbf{B}\) drift has an \(O(\Delta t^2)\) error. Boris does not reproduce the drift velocity exactly. For accurate drift studies this matters, and variants (Boris-SDC, the Vay and Higuera–Cary pushers) address it.
  • Relativistic momentum needs care. The plain algorithm applied to \(\gamma\mathbf{v}\) gives the wrong \(\mathbf{E}\times\mathbf{B}\) drift at high \(\gamma\). The Vay and Higuera–Cary pushers fix this and are standard in laser-plasma and astrophysical codes.
  • Non-uniform fields. The rotation uses \(\mathbf{B}\) at the particle's position at one instant; strong gradients over a gyroradius degrade accuracy — which is the same \(r_L/L_B \ll 1\) condition that drift theory needs.

Common mistakes

  • Forgetting the staggering. \(\mathbf{v}\) at half-steps, \(\mathbf{x}\) at whole steps. Getting the initial half-step offset wrong makes the scheme first-order and destroys the conservation properties.
  • Applying the full electric kick before the rotation. The symmetric half–rotate–half arrangement is what gives second order and reversibility.
  • Using it relativistically without modification and then puzzling over a wrong drift.

Knowledge graph position

Prerequisites: leapfrog, Lorentz force. Leads to: electromagnetic PIC, relativistic pushers, gyrokinetic particle codes.

Quiz

Q1 (conceptual). Why does Boris conserve energy exactly in a static magnetic field?

Answer

The magnetic step is implemented as an exact rotation: the \(\mathbf{t}\)/\(\mathbf{s}\) construction rotates \(\mathbf{v}\) through a finite angle without changing its magnitude, to machine precision. Since a magnetic field does no work physically, and the algorithm does no work numerically, there is no drift to accumulate.

Q2 (conceptual). Why is a second-order symplectic-like method preferred over fourth-order Runge–Kutta for a \(10^6\)-step orbit integration?

Answer

RK4 is more accurate per step but is not reversible or volume-preserving, so its error is secular: energy drifts monotonically and the orbit decays or expands. Boris has larger per-step error but the error is bounded and oscillatory, so the orbit stays qualitatively right forever. Long integrations care about structure, not local truncation error.

Q3 (MCQ). The standard Boris pusher must be modified for relativistic particles because:

  • (a) it becomes unstable
  • (b) applied naively to \(\gamma\mathbf{v}\) it gives the wrong \(\mathbf{E}\times\mathbf{B}\) drift at high \(\gamma\)
  • (c) it no longer conserves energy in a magnetic field
  • (d) rotations do not exist in special relativity
Answer

(b). The electric and magnetic operations no longer split cleanly once \(\gamma\) depends on the velocity being updated. The Vay and Higuera–Cary pushers restore the correct drift.