A kinetic transport package for plasma-material and plasma-wall interactions.
OpenEdge evolves neutrals, impurity ions, and dust/droplets in prescribed plasma and magnetic backgrounds, with surface and volume interactions (sputtering, reflection, recycling, ionisation, recombination, CX, dissociation). Used for edge / SOL transport studies, PMI / PWI workflows, and plasma-wall.
CPU build (MPI):
git clone https://github.com/ORNL-Fusion/OpenEdge.git
mkdir buildOpenEdge && cd buildOpenEdge
cmake -C ../OpenEdge/cmake/presets/mpi.cmake ../OpenEdge/cmake -DPKG_OPENEDGE=ON
make -j$(nproc)Produces ./src/spa_mpi.
GPU build (Kokkos + CUDA):
mkdir buildOpenEdge_gpu && cd buildOpenEdge_gpu
cmake -C ../OpenEdge/cmake/presets/kokkos_cuda.cmake ../OpenEdge/cmake \
-DPKG_OPENEDGE=ON -DPKG_KOKKOS=ON \
-DKokkos_ENABLE_CUDA=ON -DKokkos_ARCH_AMPERE80=ON
make -j$(nproc)Set Kokkos_ARCH_* to your GPU (AMPERE80, HOPPER90, VOLTA70,
PASCAL60).
CPU (MPI):
cd OpenEdge/examples/test_west_axi
mpirun -np 8 ../../../buildOpenEdge/src/spa_mpi -in in.westGPU (Kokkos + CUDA, one rank per GPU):
mpirun -np 1 ../../../buildOpenEdge_gpu/src/spa_mpi \
-k on g 1 -sf kk -in in.westOutputs (log, dumps, surface tallies) land in the case directory. See
each examples/*/README.md for case-specific post-processing.
- CMake >= 3.18, C++17 compiler (GCC, Clang, ICC)
- HDF5 with C++ bindings (
+MPIfor distributed runs) - MPI (OpenMPI or MPICH)
Per-feature reference docs live under docs/ — fixes, computes,
converters, performance, migration guides. Start at
docs/index.md.