ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
Loading...
Searching...
No Matches
ORB5X

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.

Note
ORB5X is research software under active validation. A successful build is not, by itself, evidence that every input combination has physics parity with the Fortran reference. Use the supplied regression cases and record the exact revision and machine configuration in scientific work.

Scope at a glance

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.

Obtaining the code

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.

Scientific provenance

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.