RelativisticBorisIntegrator

class plasmapy.simulation.particle_integrators.RelativisticBorisIntegrator[source]

Bases: AbstractIntegrator

The explicit Boris pusher, including relativistic corrections.

Attributes Summary

is_relativistic

The push implementation of the Boris push algorithm includes relativistic corrections.

Methods Summary

push(x, v, B, E, q, m, dt)

param x:

particle position at full timestep, in SI (meter) units.

Attributes Documentation

is_relativistic

The push implementation of the Boris push algorithm includes relativistic corrections.

Methods Documentation

static push(x, v, B, E, q, m, dt)[source]
Parameters:
  • 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.

Notes

For the basic overview of this algorithm, see BorisIntegrator. This version, based on [1], applies relativistic corrections such as the proper velocity and proper time transformations. These corrections affect the leapfrog scheme timestep. The addition of the impulse from the electric field must now account for the relativistic mass, resulting in an impulse reduced by a factor of \(\gamma\) relative to the classical result. A similar adjustment occurs in the rotation due to the magnetic field, as the angle of rotation is roughly inversely proportional to the mass of the charged particle. More precisely, it is proportional to \(\arctan{(1 / m)}\). This means the angle of rotation will also decrease approximately by a factor of \(\gamma\).

Keep in mind that the non-relativistic version will be slightly faster if you don’t encounter velocities in relativistic regimes.

References