|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
ORB5X uses a low-noise \(\delta f\) PIC discretization. Numerical markers sample phase space while their weights represent the background and perturbed distributions. Quasi-random loading and multiple perturbation initializations are available. Finite-Larmor-radius species evaluate fields and deposit moments on a Larmor ring; drift-kinetic paths use the guiding center directly.
The top-level step in orb5x::OneStep applies operator splitting: collisionless gyrokinetic dynamics and field coupling are advanced separately from collision and source operators. The standard collisionless mover is fourth-order Runge–Kutta. Particle pushing, field evaluation, diagnostics accumulation, and deposition use Kokkos kernels where implemented.
For a field \(\Psi\in\{\phi,A_\parallel\}\),
\[\Psi(\mathbf X,t)=\sum_\mu \Psi_\mu(t)\Lambda_\mu(\mathbf X), \]
where \(\Lambda_\mu\) is a tensor product of one-dimensional B-splines. Linear, quadratic, and cubic bases are supported by the solver layer. The Galerkin weak form yields a sparse/block-banded matrix system. Periodic poloidal and toroidal directions permit Fourier-space filtering and mode-local solves; FFTW performs transforms and LAPACK routines factorize and solve the resulting matrices.
orb5x::FieldsModule owns field arrays and charge/current deposition operations. orb5x::ParticleModule evaluates fields at markers, performs gyroaveraging, and deposits marker contributions. B-spline basis evaluation and matrix storage are provided by orb5x::spclibs and the solver basis classes. Indexing translations from the Fortran reference are documented where they affect storage layout.
The collision operator is applied after collisionless dynamics. Test-particle electron–ion and intraspecies effects use Langevin kicks in velocity space; background-reaction and moment-correction paths enforce selected conservation properties. Source operators include configurable heating, Krook/buffer, coarse-graining, and noise-control paths. Conservation claims depend on the selected operator and should be verified for the production configuration.
MPI communicators separate world, spatial-domain, clone, and solver roles. Markers crossing a toroidal subdomain are packed, exchanged, and unpacked by orb5x::ParMove. Clone communicators support particle replication/reduction, while solver communicators distribute Fourier modes and matrix work. Kokkos controls intra-process execution and memory placement.