|
ORB5X 1.0.0
Performance-portable global electromagnetic gyrokinetic PIC code
|
ORB5X accepts the established ORB5 input structure. orb5x::ReadInput parses sections into typed state groups in globals.hpp, validates combinations, and computes derived values during module initialization. Integer nsel_* controls originate in the Fortran interface; prec_const.hpp provides named C++ enums for their meanings. Prefer named enumerators in new C++ code.
Paths to equilibrium, profile, checkpoint, and diagnostic files are interpreted relative to the run directory unless a module documents otherwise. Keep the complete input and the exact Git revision with every result.
The conventional main result file is orb5_res.h5. Parallel and test-particle products use the names declared in globals.hpp. The exact hierarchy depends on enabled diagnostics. orb5x::ControlAll owns file creation/open/close and run metadata, while diagnostic modules create their groups and datasets.
Checkpoint paths serialize fields, markers, and run state required to continue a case. A restart is valid only when decomposition, model selections, and persisted array layouts are compatible. Validate continuation by comparing conserved quantities and a short overlapping trajectory, not merely by checking that the file opens.
orb5x::Profiler records named regions and can print or write aggregate timing. Timing is collective where the caller makes it collective; do not compare rank- local regions as if they represented whole-job wall time.
orb5x::Vis3d writes configured meshes and field arrays in HDF5-based PIXIE/XDMF forms. Coordinate transforms distinguish magnetic coordinates \((s,\chi,\varphi)\) from Cartesian visualization coordinates. Data precision, mesh limits, and local/distributed layout are selected by orb5x::Diag3dParameters.