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

Date

Deprecations/Backward compatibility

New Features

Performance/Refactoring

Bug fixes

9/19/22

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

9/5/22

Removed TRIANGLE_GYRO_AVG flag

  • 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

8/22/22

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

8/8/22

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()

7/25/22

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

7/11/22

New option to leave particles on GPU:

&performance_param
particles_resident_on_device=.true.
/
  • 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