CASUS Institute Seminar, Kseniia Bastrakova, HZDR
This talk concerns particle reduction in particle-in-cell plasma simulations. In such simulations, plasma density is sampled and represented with a collection of markers, so-called macroparticles.
Particle reduction replaces an existing set of macroparticles in a simulation with a smaller one to reduce computational and memory costs. A new sample of macroparticles is chosen to represent the same distributions and phase space as before reduction.
We introduce the main approaches to particle reduction based on merging and thinning. We describe our modification of the well-known Voronoi merging algorithm with a given expected number of macroparticles after the reduction and its implementation as a plugin to code PIConGPU.
We present a new C++ library implementing the main particle reduction algorithms. The library runs in parallel on CPUs and GPUs using alpaka to enable single-source heterogeneous programming. A key feature of the library is the ability to operate on particle data in memory of a client code, without being tightly coupled to a particular code. We present core concepts and design choices to enable such coupling and demonstrate it on the example of two particle-in-cell codes: PIConGPU and PIC_ANTARES.