plasmapy.simulation.particle_integrators.boris_push(x, v, B, E, q, m, dt)

The explicit Boris pusher.

  • x (ndarray) – Particle position at full timestep, in SI (meter) units.

  • v (ndarray) – Particle velocity at half timestep, in SI (meter/second) units.

  • B (ndarray) – Magnetic field at full timestep, in SI (tesla) units.

  • E (float) – Electric field at full timestep, in SI (V/m) units.

  • q (float) – Particle charge, in SI (coulomb) units.

  • m (float) – Particle mass, in SI (kg) units.

  • dt (float) – Timestep, in SI (second) units.


The Boris algorithm is the standard energy conserving algorithm for particle movement in plasma physics. See 1 for more details, and 2 for a nice overview.

Conceptually, the algorithm has three phases:

  1. Add half the impulse from electric field.

  2. Rotate the particle velocity about the direction of the magnetic field.

  3. Add the second half of the impulse from the electric field.

This ends up causing the magnetic field action to be properly “centered” in time, and the algorithm, being a symplectic integrator, conserves energy.



C. K. Birdsall, A. B. Langdon, “Plasma Physics via Computer Simulation”, 2004, p. 58-63


L. Brieda, “Particle Push in Magnetic Field (Boris Method)”,