XGC Preprocessor Macros

Here is a list of preprocessor macros in XGC.

ACTIVE_TE_SEP_CONTROL
Interactive control of heating and cooling power with and input file (XGCa only)
Default: OFF
ALIGN_SIMD
Option to align variables to the SIMD. Useful for wide-vector optimizations.
Default: OFF
CCE_DEBUG
Debug flag for core edge coupling
Default: OFF
CCE_FCOUPLING
Flag for coupling of distribution function in buffer
Default: OFF
COL_CONSERV_TEST
Runs collision operator test (conservation of Maxwellian distribution function)
Default: OFF
COL_F_NAN_CHECK
Activates checks for NaNs in the input distribution function of the collision operator
Default: OFF
COL_NO_EDGE_CONSERV
???
Default: OFF
COL_RELAX_FLOW
Runs collision operator test (Parallel flow relaxation)
Default: OFF
COL_RELAX_TEST
Runs collision operator test (Relaxation of anisotropic temperature Maxwellian)
Default: OFF
CPP_PARTICLE_INIT
Use the offloaded particle initialization (many initialization features are not yet available with this flag)
Default: OFF
CYLINDRICAL
Use cylindrical geometry. B-field calculation (both poloidal and toroidal B-field) ignores R variation. Also volume elements ignores R variation.
Default: OFF
DELTAF_CONV
Use this flag for classical delta-f simulation excluding the neoclassical terms in the gyrokinetic equation
Default: OFF
DELTAF_CONV_SEPARATE_N0
Use this flag for separate n0 poisson solver like total-f
Default: OFF
DIFFUSION_TEST
???
Default: OFF
EM_B_PARA_EFF
Temporary flag to prevent the use of sml_em_b_para_eff until its implementation has been confirmed as correct.
Default: OFF
ESC_PTL
Add flag variable to each particle and generate escaped particle data
Default: OFF
EXPLICIT_EM
Build the explicit fully-kinetic electromagnetic version of XGC
Default: OFF
EXPLICIT_EM_NONLIN_TERMS
Turn on Ah^2 nonlinear term in Hamiltonian for EM. EXPLICIT_EM should be on.
Default: ON
EXTRA_DWDT
(probably related to DELTAF_CONV)
Default: OFF
F0_UPDATE_ANALYTIC_OLD
Uses old version of f0_update_analytic_f0
Default: OFF
GAM_TEST
In load.F90 - load particles to test GAMs?
Default: OFF
GEM_XGC_COUPLING
compile with GEM-XGC coupling communicaitons
Default: OFF
GEM_XGC_COUPLING_TEST
configuration of the realization of blending function for GEM-XGC coupling, should be with the ON of the compiler option GEM_XGCC_COUPLING
Default: OFF
GENE_SIDE
???
Default: OFF
GENE_XGC_COUPLING
compile with GENE-XGC coupling communicaitons
Default: OFF
HEAT_TORQUE_POLYNOMIAL
Compute delta-f from heating/torque with polynomial scaling of f instead of shifting phase space density with linear interpolation
Default: OFF
MAX_DDEN
Used in poisson.F90, impose a max on something?
Default: OFF
MINIMAL_OUTPUT
Only output the bare minimum to avoid strain on file system
Default: OFF
MULTISPECIES_INPUT
Use namelist parameter format that allows multiple ion species
Default: OFF
MULTI_RATE
Use this flag for ion multi rate time stepping in core region particle push
Default: OFF
NEOCLASSICAL_TEST
Activates some of the optimizations for axisymmetric plasma used in XGCa. For verification of neoclassical physics in XGC1.
Default: OFF
NEWGYROMATRIX
Flag to compile with adaptive gyroaveraging matrices. (Use a thermal grid instead of a fixed grid and projects weight when preserving mu)
Default: OFF
NO_FLUSH
In the past, there have been compilers that did not support the flush command in fortran. However, flush is very important on some systems, e.g. Summit, to be able to monitor job progress by examining standard out. This was a compromise to support both types of systems.
Default: OFF
NO_PETSC
Bypasses PETSc related code for the stand-alone push kernel
Default: OFF
PILL_SUB_ELLIP
Sizable piece of code in collisionsf2.F90, unclear what it does or who wrote it
Default: OFF
PLANE_MAJOR
The 1D process ordering is mapped to the 2D virtual process grid used to define the parallel decompostion so that either consecutive processes are in different planes (INTERPLANE_MAJOR), the default, or in the same plane (PLANE_MAJOR). Which is most efficient has been system-specific (and perhaps problem case specific).
Default: OFF
POL_MODE
In load.F90 - subset of GAM_TEST
Default: OFF
PRINT_COPA_ARTIFACTS
Print record of Cabana operations used in the simulation
Default: OFF
PTB_3DB_RZ_GRID
Use (R,Z) grid for interpolation of the perturbed magnetic field instead of linear interpolation on the triangular mesh)
Default: OFF
PURE_RK2
Do pure RK2 timestep
Default: OFF
PURE_RK4
Do pure RK4 timestep rather than hybrid. Needed for GENE coupling
Default: OFF
RESAMP_DEBUG
Enable debugging and solver precision checks in the resampling module
Default: OFF
RESAMP_LOAD_TWO
Uses direct loading onto Voronoi volume of upsampled particles rather than RZ patch loading
Default: ON
RESAMP_SCALE_W0
Scale w0 instead of f0 to conserve the total phase space volume in a bin
Default: OFF
RESAMP_STATS
Compute extra, node-level statistics comparing pre and post resampling quantities
Default: OFF
SDEV_DEADLOCK_HACK
???
Default: OFF
SIMD_SIZE
Cabana version: Specify length of vectorizable loop. Should be 1 for GPU case, 32(?) for KNL, etc
Default:
SOLVER_TEST
Run test of Poisson solver, then exit
Default: OFF
USE_EXPLICIT
Looks to be very niche, just used in interpolation.F90, looks deletable
Default: OFF
USE_FORTRAN_COLLISIONS
Use Fortran collisions rather than cpp collisions (CPU only)
Default: OFF
USE_GPU_AWARE_MPI
Use GPU-aware MPI
Default: OFF
USE_INQUIRE_DIRECTORY
Required for determining where to put timing data. Intel fortran compiler requires this to be defined. All other compilers (?) require that this not be defined.
Default: OFF
USE_OLD_READ_INPUT
For performance efficiency, the default is for one process to read the input file as a string, broadcast this, then each process reads the namelist input from this string. This requires a 2003 Fortran compliant compiler. If USE_OLD_READ_INPUT is defined, then every process reads the input file for every namelist (so multiple times).
Default: OFF
VALIDATION
Re-initialize seed for randomization in XGCa setup
Default: OFF
VEC_LEN
Cabana hard-coded value. In the AoSoA, VEC_LEN is the number of particles per structure
Default:
WRITE_DPOT_N0_ES
Write dpot_n0 and dpot_es to xgc.3d.xxxxx.bp
Default: OFF
XGC1
Compile XGC1
Default: OFF
XGCA
Compile XGCa
Default: OFF
XGC_DEBUG1
Output matrix during setup_grid
Default: OFF
XGC_FLAT_B
Use axis B field in poisson solver. Poisson eq has 1/B^2 factor in front of grad operator.
Default: OFF
XGC_F_COUPLING
???
Default: OFF
XGC_XGC_COUPLING
compile with core-edge coupling communicaitons
Default: OFF