Particle-in-Cell Simulations of Relativistic Magnetic Reconnection with Advanced Maxwell Solver Algorithms
Creators: name: Klion, Hannah
name: Jambunathan, Revathi
name: Rowan, Michael E.
name: Yang, Eloise
name: Willcox, Donald
name: Vay, Jean-Luc
name: Lehe, Remi
name: Myers, Andrew
name: Huebl, Axel
name: Zhang, Weiqun
Publisher: name: Zenodo
Year: 2023

description: Input files, data files, and python scripts to replicate results in "Particle-in-Cell Simulations of Relativistic Magnetic Reconnection with Advanced Maxwell Solver Algorithms" (Klion et al., 2023). Please direct any questions to the corresponding author, Hannah Klion (klion [at] lbl.gov) WarpX simulations were run from the branch: https://github.com/revathijambunathan/WarpX/tree/HarrisSheetinX.<br> Some simulations in this paper were run at different commit hashes, though all results should be reproducible at later commits between the ones listed and 4/12/2023.<br> The following table gives the correspondence between simulation name in the paper, WarpX input file, WarpX git hash, and execution machine for all simulations other than timing runs, which are described separately.<br> Binaries were compiled with the suggested WarpX profile for each machine plus the gsl module, if not loaded by default. We use cmake and the variables WarpX_DIMS=2 WarpX_PSATD=ON WarpX_COMPUTE=CUDA. Simulations were executed with the run script templates run_summit.sh and run_perlmutter.sh. See README.txt for a table summarizing which git hashes, machines, and input files were used for each simulation. All timing studies were run on summit with git hash 7289ed5bb, the run script run_summit_timing.sh and input file input_timing. In the subdirectory figure_scripts, we have included scripts that can be used to generate the figures in the paper. Figures 2 and 3 require plotfiles, so we have not included the underlying data, though one could obtain it by running the Yee, CKC, and PSATD base simulations. Data for other figures can be found in the figure_data subdirectory. The reduced diagnostic files and python scripts used to create Figures 4, 5, and 7-9 are all included. The script used to generate the reconnection rate data is also included, as well as its data output. These are used to create figures 6 and 10. Several scripts use WarpX python utilities to import reduced diagnostic data. Please add $WARPX_DIR/Tools/PostProcessing/ to your PYTHONPATH variable to use these. The scripts to calculate the reconnection rate are best run with MPI to reduce the runtime. Running: <pre><code class="language-bash"> mpirun -n 8 python calc_rate_vin.py recon_d5e-2_psatd</code></pre> will process plotfiles in $root/recon_d5e-2_psatd and output data to $root_out/recon_rate_velocity/recon_d5e-2_psatd/rate_vinvout-[0...(N-1)].npz. N is the number of MPI ranks used (here 8).<br> Then use calc_rate_vin_merge.py to merge these files by running<br> python merge_vin_from_ranks.py $root/recon_rate_velocity/recon_d5e-2_psatd/rate_vinvout-*<br> which will create a single file $root/recon_rate_velocity/recon_d5e-2_psatd/rate_vinvout.npz<br> The calc_rate_vin.py script also has a --stride option, which is 1 by default. This can be used to only process every e.g. 10th plotfile that exists. The matplotlib style file is also included, as are python modules that define SI constants and format legends.<br> All figures were created using Times New Roman; the default matplotlib fonts do not have the same sizing, so plots generated from this suite may require some adjustment to e.g. ensure all text fits within the bounds of the figure.