entity
entity copied to clipboard
New generation astrophysical plasma simulation code with CPU/GPU portability
Entity
tl;dr: One particle-in-cell code to rule them all.
Entity is an open-source coordinate-agnostic particle-in-cell (PIC) code written in C++17 specifically targeted to study plasma physics in relativistic astrophysical systems. The main algorithms of the code are written in covariant form, allowing to easily implement arbitrary grid geometries. The code is highly modular, and is written in the architecture-agnostic way using the Kokkos performance portability library, allowing the code to efficiently use device parallelization on CPU and GPU architectures of different types. The multi-node parallelization is implemented using the MPI library, and the data output is done via the ADIOS2 library which supports multiple output formats, including HDF5 and BP5.
Entity is part of the Entity toolkit framework, which also includes a Python library for fast and efficient data analysis and visualization of the simulation data: nt2py.
Our detailed documentation includes everything you need to know to get started with using and/or contributing to the Entity toolkit. If you find bugs or issues, please feel free to add a GitHub issue or submit a pull request. Users with significant contributions to the code will be added to the list of developers, and assigned an emoji of their choice (important).
Core developers (alphabetical)
💁♂️ Alexander Chernoglazov {@SChernoglazov: PIC}
🍵 Benjamin Crinquand {@bcrinquand: GRPIC, cubed-sphere}
🧋 Alisa Galishnikova {@alisagk: GRPIC}
☕ Hayk Hakobyan {@haykh: framework, PIC, GRPIC, cubed-sphere}
🥔 Jens Mahlmann {@jmahlmann: framework, MPI, cubed-sphere}
🐬 Sasha Philippov {@sashaph: all-around}
🤷 Arno Vanthieghem {@vanthieg: framework, PIC}
😺 Muni Zhou {@munizhou: PIC}