iPIC3D

Multi-scale simulations of plasma using Particle-In-Cell method

Download

Space weather simulation

Space weather and plasma simulation

Massive parallelism

High parallel efficiency using MPI

Products in VTK

Visualization of 3D simulation results

Overview

iPIC3D is a three-dimensional parallel PIC code. On multiprocessor architectures, the domain decomposition technique is used to divide the computational workload among processors. For implicit PIC where the cost of particle moving and of field solving are of the same order (unlike explicit PIC where most of the cost resides with the particles), it is crucial that both field solving and particle moving be parallelized efficiently. An important aspect of efficiency is the need to retain the particles and cells belonging to a subdomain on the same processor. Large amounts of information is exchanged between grid and particles residing in the same physical domain and therefore it is important to avoid that this information exchange results in inter processor communication. The simulation box is divided among processors using a generic Cartesian virtual topology. Particles are divided among processors also depending on their location, and communicated to adjacent processors if exiting from the processor domain. The parallelization of the code is based on MPI libraries and blocking parallel communication has been chosen for the communication among processors.

Applications

Getting iPIC3D

iPIC3D source code and installation instruction is available here.

System Requirement

  • GNU Compilers or Intel Compilers
  • A modern MPI installation
  • Automake
  • HDF5 (Optional)

Latest Posts

Multi-GPU Acceleration of the iPIC3D Implicit Particle-in-Cell Code

iPIC3D is a widely used massively parallel Particle-in-Cell code for the simulation of space plasmas. However, its current implementation does not support execution on multiple GPUs. In this paper, we describe the porting of iPIC3D particle mover to GPUs and the optimization steps to increase the performance and parallel scaling on multiple GPUs. We analyze the strong scaling of the mover on two GPU clusters and evaluate its performance and acceleration. The optimized GPU version which uses pinned memory and asynchronous data prefetching outperform their corresponding CPU versions by 5−10× on two different systems equipped with NVIDIA K80 and V100 GPUs.

Particle-in-cell simulations of plasma dynamics in cometary environment

We perform and analyze global Particle-in-Cell (PIC) simulations of the interaction between solar wind and an outgassing comet with the goal of studying the plasma kinetic dynamics of a cometary environment. To achieve this, we design and implement a new numerical method in the iPIC3D code to model outgassing from the comet: new plasma particles are ejected from the comet” surface” at each computational cycle. Our simulations show that a bow shock is formed as a result of the interaction between solar wind and outgassed particles. The analysis of distribution functions for the PIC simulations shows that at the bow shock part of the incoming solar wind, ions are reflected while electrons are heated. This work attempts to reveal kinetic effects in the atmosphere of an outgassing comet using a fully kinetic Particle-in-Cell model.

High Performance Solvers for Implicit Particle in Cell Simulation

A three-dimensional implicit particle-in-cell (iPIC3D) method implemented by S. Markidis et. al. in [“Multiscale simulations of plasma with iPIC3D”, Mathematics and Computers in Simulation, 80(2010), 1509-1519] allows time steps at magnetohy- drodynamics time scale. The code requires the solution of two linear systems: a Poisson system related to divergence cleaning, and a system related to a second order formulation of Maxwell equation. In iPIC3D, the former is the most costly.