https://hgpu.org/?p=2628
Adaptable particle-in-cell algorithms for graphical processing units