Versioning and Updates

XGC currently follows a Live-at-Head philosophy. XGC output begins with a header containing the hash of the git commit used to compile the code.

Updates occurring in the two-week period up to the stated date which may be relevant to the user are presented in the table below.

XGC updates to master branch


Deprecations/Backward compatibility

New Features


Bug fixes


Removed RHO_PARA_DERIVS flag

  • No change in default behavior

Removed old neutral routines (already disabled)

Removed heat.F90 (unused source routine when sml_f0_grid=.false.)

Basic timing and figure of merit added to std output

Fix crash in CPU-only version of Sheath Mode 2



  • No change in default behavior

Ginkgo collisions solver option added

  • Default remains LAPACK

  • Currently available for standalone kernel only.

XGC1 and XGCa directories are removed; remaining files have moved to XGC_core

diag_3d_f0_f bug fix in XGCa when charge number > 1

Bug fix in neutrals - values were zeroed out too frequently


C++ collisions is now used by default.

  • USE_FORTRAN_COLLISIONS flag is available to use the deprecated Fortran version

XGC_PLATFORM=POLARIS now available; see compile/run instructions


pol_decomp weight count converted/offloaded

f0_update_analytic_f0 particle contribution converted/offloaded

Minor bug fix in (new) f0_update_analytic_f0 around edge of grid

Minor bug fix in diagnostics - tr_save was not updated before diagnosis()


Beta version of “dryrun” option added:

xgc-es-cpp-gpu -dryrun -n_ranks 16
  • Run with a single MPI rank; the checks are done as if the simulation uses n_ranks

  • Checks input files are found

  • Prints expected memory usage

  • Prints suggested optimizations

  • Prints warnings

  • Changes and requests for changes to improve this feature are welcome.

XGC1/diagnosis.F90 and XGCa/diagnosis.F90 have been merged and moved to XGC_core/diagnosis.F90


New option to leave particles on GPU:

  • Default is false, no affect if CPU-only

  • Saves communication time but uses more GPU memory

shiftKernel-{cpu,gpu} (particle shift kernel) added

  • Run in CI only if jsrun present

OpenMP optimizations in field_following.F90