|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
ORB5X is the modern C++17 refactoring of ORB5: a global, electromagnetic, multi-species gyrokinetic code for studying turbulence, energetic-particle physics, Alfvén eigenmodes, and transport in toroidal magnetically confined plasmas. It uses a low-noise \(\delta f\) particle-in-cell (PIC) method for the distribution functions and a finite-element representation of the fields.
The C++ implementation retains the physical model and numerical organization of the adjacent Fortran sources while replacing architecture-specific kernels with Kokkos execution and memory spaces. MPI decomposes the simulation across processes; Kokkos provides performance portability across multicore CPUs and supported GPU backends.
Type a class, function, variable, selector, namespace, file, or guide topic.
The modeled distribution of species \(s\) is reduced to gyrocenter phase space \(f_s(\mathbf R,v_\parallel,\mu;t)\). ORB5X evolves marker orbits and the perturbed distribution, deposits charge/current moments, solves the weak forms of quasineutrality and Ampère equations, evaluates fields at marker and Larmor-ring positions, and produces physics and performance diagnostics.
The principal implementation namespace is orb5x. The low-level spline and matrix compatibility library is orb5x::spclibs.
ORB5X is currently maintained in a private GitHub repository. To request access, email info@paidynamics.ch with your name, affiliation, intended use, and GitHub username. Approved users receive the repository URL and access instructions. See Getting started for dependency and backend configuration after access has been granted.
The model and terminology in this documentation follow the ORB5 model review and the electromagnetic numerics manuscripts kept under manuscript/. The C++ API descriptions are based on the current .cpp implementations and, where needed, their adjacent .F90 references. See References for the primary publications.