IPPL Manual
Independent Parallel Particle Layer
IPPL, the Independent Parallel Particle Layer, is a C++20 library for performance-portable particle, field, and particle-mesh simulations. It provides dimension-independent building blocks for Eulerian, Lagrangian, and hybrid methods on CPUs and GPUs.
This manual is written for two audiences: library users who want to build simulations with IPPL, and library developers who extend the core data structures, solvers, and communication layer.

IPPL uses Kokkos for performance portability, MPI for distributed memory communication, and HeFFTe for scalable FFTs. Current published work includes the ALPINE/IPPL particle-in-cell mini-app scaling study [1] and the massively parallel free-space spectral Poisson solver [2].
Reading paths
For users:
- Start with 2 Overview and 4 Getting Started.
- Read 6 Core Concepts, then the data model chapters on fields and particles.
- Move to FFT, Poisson, Maxwell, or FEM depending on the application.
- Use 16 Examples as executable documentation.
For developers:
- Read the user path first.
- Continue with 14 Communication and 15 Performance Portability.
- Use 17 Developer Guide and 18 API Reference while changing the source.