|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
The ORB5X GitHub repository is private. Request access by emailing info@paidynamics.ch with your name, affiliation, intended use, and GitHub username. Clone and authentication instructions are provided after the request is approved.
ORB5X requires a C++17 compiler, CMake 3.18 or newer, MPI (C and C++), Kokkos, parallel HDF5 with its C++ interface, FFTW3, and LAPACK. CMake first searches for installed packages. Individual dependencies can instead be fetched and built by enabling the corresponding ORB5X_BUILD_*_FROM_SOURCE option described in the project README.
For a threaded CPU build, select the Kokkos OpenMP backend and use a compiler with host OpenMP support.
Select both the CUDA backend and the exact Kokkos architecture. For an NVIDIA A100, for example:
Use the matching Kokkos architecture flag for other accelerators. Consult Supported_HPC_machines.md for known machine configurations.
ORB5X reads an ORB5-style input file. Run from a case directory so relative profile, equilibrium, checkpoint, and output paths resolve there:
The precise argument handling is implemented by orb5x::ControlAll and orb5x::ReadInput. Start with a supplied benchmark input rather than constructing a production case from scratch.
For fresh two-rank comparisons with the Fortran reference:
Install Doxygen (Graphviz is recommended), configure normally, and run:
Open build-cpu/docs/html/index.html. Set -DORB5X_BUILD_DOCS=ON to make the documentation a dependency of the main executable target.