PICSARlite: Algorithms and key kernels

The Particle-In-Cell (PIC) method is widely used to simulate the motion of charged particles in a plasma environment. PIC codes use both particle and grid data structures to represent the physics of the problem. The electric and magnetic fields are solved on a grid, and particle trajectories are computed according to those fields.


The steps that a PIC code cycles through at each time step:

  1. Push particles: Using the electric and magnetic fields at each particle position,
    update the position and velocity of the particle using the Newton-Lorentz equations.
  2. Deposit charge and/or current densities through interpolation from the
    particle distributions to points on the grid.
  3. Evolve Maxwell’s equations (for electromagnetic) or Poisson’s equation
    (for electrostatic) on the grid.
  4. Gather forces: Interpolate the fields from the grid onto the particles
    for the next particle push.

PICSARlite calls the same subroutines as the full application WarpX for the elementary PIC operations,
when applied to the same problem with the same options selected. Where WarpX runs different code from PICSARlite is in communication, load balancing, and data iterators.