To configure the code and generate a Makefile run the following in the root directory: python configure.py [FLAGS]. Following is a list of all the currently supported flags, to access it, simply run python configure.py -h.

usage: configure.py [-h] [--cluster {frontera,zaratan,stellar,ginsburg}] [--compiler {intel,aocc,gcc}]
                    [--vector {intel-avx2,intel-avx512,amd-avx2}] [-hdf5] [-serial] [-mpinonblock] [-avx2 | -avx512]
                    [-lowmem] [-ifport] [-mpi | -mpi08] [-test]
                    (--user {user_rad_turb,user_reflect,user_svensson,user_turb,user_twostream,user_weibel,user_2d_rec_compton,user_2d_Waterbag,user_2d_boostedrec,user_2d_rec,user_3d_rec,user_bin_psr,user_bwpp,user_cooling,user_emwave,user_esc_turb,user_full,user_inject_and_cool,user_isolatedparticles,user_jones,user_kink,user_kompaneets,user_langmuir,user_prtlwake,user_psr,user_psr_simple,user_rad_shock,user_sheet} | --unit {unit_alb,unit_bincoupling,unit_bw,unit_chargedmerging,unit_compton,unit_cooling,unit_dipole,unit_dwn,unit_filtering,unit_gca,unit_qed,unit_slb,unit_spec,unit_two_bulbs,unit_weight})
                    [-double] [--nghosts NGHOSTS] [-extfields] [-absorb] [--debug DEBUG] [-safe] [--gca GCA] [-vay]
                    [-blinne] [-payload] [-usroutput] (-1d | -2d | -3d) [-dwn] [-alb] [-slb]
                    [--radiation {no,sync,ic,sync+ic}] [-emit] [-qed] [-bwpp] [-compton] [-annihilation]

optional arguments:
  -h, --help            show this help message and exit
  --cluster {frontera,zaratan,stellar,ginsburg}
                        choose cluster-specific configurations.
  --compiler {intel,aocc,gcc}
                        choose the compiler.
  --vector {intel-avx2,intel-avx512,amd-avx2}
                        choose the vectorization option.
  -hdf5                 enable HDF5 & use h5pfc compiler
  -serial               enable serial output
  -mpinonblock          enable non-blocking mpi calls (faster simulation but non-reproducible)
  -avx2                 enable avx2 vectorization
  -avx512               enable avx512 vectorization
  -lowmem               enable low memory regime
  -ifport               enable IFPORT library (`mkdir` etc)
  -mpi                  enable mpi
  -mpi08                enable mpi_f08
  -test                 enable test mode
  --user {user_rad_turb,user_reflect,user_svensson,user_turb,user_twostream,user_weibel,user_2d_rec_compton,user_2d_Waterbag,user_2d_boostedrec,user_2d_rec,user_3d_rec,user_bin_psr,user_bwpp,user_cooling,user_emwave,user_esc_turb,user_full,user_inject_and_cool,user_isolatedparticles,user_jones,user_kink,user_kompaneets,user_langmuir,user_prtlwake,user_psr,user_psr_simple,user_rad_shock,user_sheet}
                        select user file
  --unit {unit_alb,unit_bincoupling,unit_bw,unit_chargedmerging,unit_compton,unit_cooling,unit_dipole,unit_dwn,unit_filtering,unit_gca,unit_qed,unit_slb,unit_spec,unit_two_bulbs,unit_weight}
                        select unit file
  -double               use double precision
  --nghosts NGHOSTS     specify the # of ghost cells
  -extfields            apply external fields
  -absorb               enable absorbing boundaries
  --debug DEBUG         enable the debug mode at specific level
  -safe                 enable dynamic memory allocations (safe regime)
  --gca GCA             enable GCA mover with specific # of iterations
  -vay                  enable Vay pusher
  -blinne               enable Blinne field solver
  -payload              enable particle payloads
  -usroutput            enable user-specified output routines and condition
  -1d                   enable 1d
  -2d                   enable 2d
  -3d                   enable 3d
  -dwn                  enable particle downsampling
  -alb                  enable adaptive load balancing
  -slb                  enable static load balancing
  --radiation {no,sync,ic,sync+ic}
                        choose radiation mechanism
  -emit                 enable photon emission
  -qed                  enable QED step
  -bwpp                 enable Breit-Wheeler pair production
  -compton              enable Compton scattering
  -annihilation         enable pair annihilation