Scalable plasma simulation with ELMFIRE using efficient data structures for process communication
We describe the parallel full-f gyrokinetic particle-in-cell plasma simulation code ELMFIRE and the issue of solving an electrostatic potential from particle data distributed across several MPI (Message Passing Interface) processes. The potential is solved through a linear system with a strongly sparse matrix and ELMFIRE stores data of the estimated non-zero diagonals of the whole matrix in every MPI process. We present and compare several memory efficient structures for gathering the matrix data while keeping only a local part of the matrix in each process. We also demonstrate that these alternative structures improve scalability, thus enabling ELMFIRE to use more MPI processes and a finer time and space scale than before without sacrificing performance.
plasma simulation full-f gyrokinetics sparse matrix matrix assembly