PyPIC3D: A Just-in-time Compilable Particle-in-cell Code Written In Python
POSTER
Abstract
Plasma phenomena are incredibly nonlinear and rely heavily on kinetic effects to drive many different interesting phenomena, such as shocks and instabilities. Such phenomena are not captured by fluid models, and kinetic simulations, such as Particle-in-Cell ones, are needed. Here, we describe the development of a new particle-in-cell code, PyPIC3D, written in Python using JAX, which allows auto-differentiability. We show that we can achieve C++ level performance, including parallelization, without additional libraries or compilation steps. Furthermore, the code can run on either CPU or GPU architectures, is open-source and easy to read and modify. Its current capabilities include relativistic effects, electrostatic or electromagnetic solvers, as well as a Esirkepov current deposition method.
*This work is funded in part by the following sources:DoD SMART Scholarship Program funded by OUSD/R&E (The Under Secretary of Defense-Research and Engineering), National Defense Education Program (NDEP) / BA-1, Basic ResearchNational Science Foundation under Grant No. PHY-2409066This work used the Jetstream2 at Indiana University through allocation PHY240054 from the Advanced Cyberinfrastructure Coordination Ecosystem: Services & Support (ACCESS) program which is supported by National Science Foundation grants #213859, #2138286, #2138307, #2137603 and #2138296.
Presenters
-
Christopher Woolford
- University of Wisconsin-Madison