To mark the Mid-Autumn Festival, JLPP is releasing PSuM as open source.
PSuM, short for Particle-in-Cell Skeleton using Meta-programming, is a general-purpose particle-in-cell (PIC) framework for modern computing platforms. It was developed to advance numerical simulation for electric propulsion plasmas and other plasma systems.
Over more than two decades of research, JLPP has developed new electric-propulsion concepts, investigated new physical mechanisms, and steadily expanded its simulation capabilities. Its codes have evolved from two-dimensional to three-dimensional models, from single-core solvers to multicore and parallel CPU and GPU execution, and from case-specific programs to a reusable framework. The result is not only a body of published work but also a codebase refined through eight years of development, three major rewrites, and contributions from more than ten researchers. The code now supports multiple peer-reviewed studies, incorporates algorithms developed at JLPP, and follows modern software-engineering practices such as single-source programming across CPUs and GPUs and continuous integration.
Today, we are opening this work to the wider research community.
PSuM is now open source.
Project website: https://jlpp-psum.space
Complex Three-Dimensional Oscillations of Plasma Distribution in the Annular Channel of a Hall Thruster
Why PSuM
PIC is one of the main numerical methods used in kinetic plasma simulation. It relies on relatively few assumptions, offers strong physical fidelity, and can be coupled with a wide range of microscopic process models. Its use in electric-propulsion research, however, has always been limited by high computational cost. A detailed two-dimensional model can require hundreds of trillions of particle pushes, while a useful three-dimensional model may demand more than one hundred times as much work. Around 2020, a single two-dimensional case at JLPP could take days or even weeks to complete.
As research moves toward three-dimensional domains, larger scales, and higher particle counts, the cost rises quickly. GPUs and other modern processors have become essential to large-scale numerical studies, but faster hardware does not automatically produce faster code. In addition to the plasma model and numerical methods, researchers must address GPU programming, data layout, parallel algorithms, and platform-specific adaptation and optimization. If every new physical process or hardware platform requires another low-level implementation, research software soon becomes complex, fragile, and difficult to maintain or extend.
PSuM was built to address this problem.
By moving low-level PIC implementation into the framework, PSuM separates the physics from performance-critical code as far as practical.
We want researchers to focus on how particle transport, collisions, and boundary interactions couple with electromagnetic fields to produce complex plasma behavior. The framework handles CPU and GPU execution, data organization, and parallel-algorithm optimization wherever possible.
A representative case study based on PSuM: Instability driven by an axially dominant magnetic field and a radial electric field.

A General Purpose PIC Framework for Modern Computing
PSuM is developed in C++ and SYCL.
SYCL is an open C++ standard for single-source programming across CPUs and GPUs developed by the Khronos Group. It allows one codebase to target different CPU and GPU platforms, including hardware from several Chinese vendors. This matches PSuM’s long-term design goal. Instead of maintaining separate CPU, CUDA, and other implementations as hardware changes, PSuM places platform-specific code in the lower layers so that physical models remain consistent, clear, and portable.
PSuM now provides the core capabilities for a complete PIC workflow.
CPU and GPU Parallel Computing
Built on SYCL, PSuM provides a unified CPU and GPU interface. Core operations such as particle pushing, charge deposition, and boundary processing can run on CPU and GPU devices.
Particle Operations
PSuM uses data structures and parallel algorithms designed for large particle updates, dynamic insertion and removal, and frequent data access. These components provide a common foundation for different physical models. In benchmark tests, PSuM has reached a peak rate of 49.2 billion particle-steps per second, supporting large-scale PIC simulations for electric-propulsion research.
Field Solvers
PSuM supports common PIC field-solution workflows. Its solver interface separates physical discretization from the linear-algebra backend, allowing each problem to use a method suited to its size and hardware. Available backends include multigrid, sparse direct, Krylov, and domain-decomposition methods. In benchmark tests, PSuM’s optimized multigrid solver has exceeded 200 million degrees of freedom per second, enough to support large three-dimensional PIC simulations.
Complex Geometry
STL files can be imported directly as complex three-dimensional particle boundaries, providing the basis for particle-wall interaction calculations in realistic geometries.
Collision Models
The framework supports Monte Carlo collision (MCC), direct simulation Monte Carlo (DSMC), and Coulomb collision methods for building more complete kinetic models.
MPI Parallelism
In addition to CPU and GPU computing within a node, PSuM uses MPI to scale simulations across nodes.
Python Support
Python interfaces provide selected calling and data-processing capabilities, with continued work to improve integration with analysis, post-processing, and scientific workflows.
Together, these capabilities cover particle operations, field solving, collisions, boundaries, and parallel computing. PSuM has already been used for high-performance PIC solutions in a range of practical plasma simulations.
PSuM’s performance in particle operations and field solving has been measured and verified in practical tests.

Measured Performance of 2D Poisson Equation · RTX 4090
From Research Code to Open Source Framework
Moving from an internal research code to an open-source project for external users requires more than algorithms and performance. In recent years, JLPP has invested in PSuM’s software-engineering system, including code structure, automated testing, examples, documentation, interface conventions, and the development workflow.
Our goal is not simply to make the code visible. Researchers encountering PSuM for the first time should be able to understand the framework through its documentation and examples without knowing its internal history, and then build their own simulation problems. PSuM currently includes examples and benchmarks of increasing complexity, covering a basic PIC workflow, complex Poisson boundary conditions, particle-geometry interactions, MCC collisions, ionization, and representative plasma problems.
These cases both validate the framework and provide an entry point for learning and using PSuM.
A research code that runs is only the first step.
An open-source framework matters when other researchers can understand it, reproduce results, extend it, and use it in their own work.
Why PSuM Is Being Opened Now
PSuM remains under active development.
New physical models, a more complete Python interface, electromagnetic PIC, more flexible meshing, and broader computing-platform support are all in progress.
For JLPP, releasing PSuM as open source is also a way to organize and share years of technical work.
We hope PSuM will continue to support JLPP’s research while providing the wider community with a reusable computational foundation.
If PSuM reduces duplicate development, helps researchers build new PIC models more quickly, and lets them focus on the physical questions that matter to their work, the open-source release will have achieved its purpose.
PSuM Is Now Open Source
To mark the Mid-Autumn Festival, JLPP is opening PSuM to the community.
The release shares years of scientific and engineering work with researchers in plasma physics and scientific computing.
PSuM is available under the MIT License and may be downloaded, modified, and redistributed.
PSuM is intended for researchers in electric propulsion, space physics, low-temperature plasmas, rarefied gases, PIC methods, GPU scientific computing, SYCL, and high-performance computing.
We welcome issues, bug reports, feature requests, and code contributions from the community.
PSuM: Particle-in-Cell Skeleton using Meta-programming
- A general-purpose PIC framework developed by JLPP
- Built for modern computing platforms
- Designed for large-scale particle computation
- Supporting simulations of real plasma systems
Joint Laboratory of Plasma & Propulsion
Acknowledgments
PSuM’s continued development and this open-source release were made possible by the work of current group members. We thank the following contributors for their work on framework development, implementation, test maintenance, application cases, documentation, and the project website:
Special acknowledgment goes to Renfan Mao, who has been the primary contributor to the development of PSuM.
We also thank Wudi Luo, Zeyang Wang, Lehui Cao, Siyuan Ren, Wenjun Gou, Shuyu Chen, Haixu Guo, Chenqiao Xu, Kai Zhou, Yankui Zhao, Boye Zheng, and Xiao Hu for their contributions.
PSuM also builds on the long-term work of former group members. We thank the following alumni for their contributions to framework development, feature implementation, and research applications at different stages of the project:
Zhiyuan Chen , Zihao Luo, Kunlong Wu, Yunwei Cui, Shiji Xiao, Lingxuan Kong, Shuai Cao, Yiwei Jiang, Min Li, Qi Liu, Xin Lu, Tiannan Yuan, Jun Zhou, Zhuoheng Li , Chen Cui, Xiaoxiao Shi, Zheng Wen, Lingwei Zhong, Chaojin Qin, Qian Qiu, and Chang Liu
Special thanks to Dr. Ruojian Pan for his outstanding contributions.
Editor: Lehui Cao