iPIC3D is a C++ and MPI Particle-in-Cell code for the simulation of space and fusion plasmas. The code is used to simulate the interaction of solar wind and solar storms with Earth magnetosphere and spacecrafts, and the plasma in magnetic confinement fusion devices, such astokamaks and reversed field pinch machines. The numerical discretisation of the Maxwell’s equations and particle equations of motion is based on the implicit moment method that allows simulations with large simulation time step and grid spacing still retaining the numerical stability.
article18This numerical technique leads to the possibility of completing unprecedented simulations of space and fusion plasmas that are not possible with standard techniques in use in the vast majority of other Particle-in-Cell codes. iPIC3D is maintained at KTH by Stefano Markidis, and it is used at many Universities in Europe (KTH, KU Leuven, University of Pisa, University of Nice), and in America (University of Colorado, University of Michigan). The KTH group in EPiGRAM includes the iPIC3D chief architect Stefano Markidis. iPIC3D MPI communication is dominated by synchronous point-to-point communication, arising by communicating particles and ghost cells among neighbor processes, and by global reductions arising  from the solution of two linear systems every simulation time step. The iPIC3D code is part of application suite of the DEEP European exascale project. Differently from the DEEP project, where iPIC3D is being ported to the cluster-booster architecture with Intel MIC by using OpenMP and OMPSS programming models, EPiGRAM will focus on MPI, PGAS and on hybrid solutions combining MPI and PGAS approaches.