DOI: 10.5061/dryad.cvdncjtb0
title: Convergence tests of SIDM N-body simulations

description: Self-interacting dark matter (SIDM) theory predicts that dark matter halos
 experience core collapse, a process where the halo's inner region
 rapidly increases in density and decreases in size. The N-body simulations
 used to study this process can suffer from numerical errors when
 simulation parameters are selected incorrectly. Optimal choices for
 simulation parameters are well-studied for cold dark matter (CDM) but are
 not deeply understood when self-interactions are included. In order to
 perform reliable N-body simulations and model core-collapse accurately we
 must understand the potential numerical errors, how to diagnose them, and
 what parameter selections must be made to reduce them. We use the Arepo
 N-body code to perform convergence tests of core-collapsing SIDM halos
 across a range of halo concentrations and SIDM cross-sections and quantify
 potential numerical issues related to mass resolution, timestep size, and
 gravitational softening length. Our tests discover that halos with fewer
 than 105 simulation particles, a resolution typically not met by subhalos
 in N-body simulations, suffer from significant discreteness noise that
 leads to variation and extreme outliers in the collapse rate. At our
 lowest resolution of N=104 particles, this collapse time variation can
 reach as high as 20%. At this low resolution, we also find a bias in
 collapse times and a small number of extreme outliers. Additionally, we
 find that simulations that run far beyond the age of the Universe, which
 have been used to calibrate SIDM gravothermal fluid models in previous
 work, have a sensitivity to the timestep size that is not present in
 shorter simulations or simulations using only CDM. Our work shows that
 choices of simulation parameters that yield converged results for some
 halo masses and SIDM models do not necessarily yield convergence for
 others.
description: This dataset contains snapshots of simulations run in the N-body
 code Arepo, with the addition of a scattering interaction between dark
 matter particles. The snapshots are organized by simulation run and are
 saved as hdf5 files output by Arepo. The snapshots have not been
 processed, aside from the removal of some data (such as local particle
 density) to save space. The results of our publication can be replicated
 using the remaining particle data: mass, positions, velocities,
 potentials, number of scattering events, and ID numbers.
 In addition to the N-body output, we also share reduced data
 files. These files contain halo central densities versus time and were
 computed from the N-body data using the method described in section II.D
 of our publication.
description: # Convergence tests of SIDM N-body simulations The data here are the
 product of N-body simulations of self-interacting dark matter (SIDM). The
 simulations were run with the N-body code Arepo
 ([https://doi.org/10.1111/j.1365-2966.2009.15715.x)](https://doi.org/10.1111/j.1365-2966.2009.15715.x), including SIDM modifications ([https://doi.org/10.1111/j.1365-2966.2012.21182.x](https://doi.org/10.1111/j.1365-2966.2012.21182.x)). Each compressed folder in this dataset corresponds to a set of convergence test simulations for a particular dark matter halo and SIDM cross-section. The folder names follow the same convention shown in Table 1 of our publication - where the number following C refers to the initial halo concentration, and the number following T refers to the estimated collapse time in Gyr. For example, C10T225 refers to the simulation set with a concentration of 10 and an approximate collapse time of 225 Gyr. A folder name that is followed by LOWRES contains data for the low-resolution N-body simulations. The resolutions in the standard folders are 10^4, 10^5, and 10^6 particles, while the "low resolution" simulations are 10^4.25, 10^4.5, and 10^4.75. For each simulation halo, there are two types of compressed folders: ###### Reduced These folders contain the central density data from analyzing N-body simulations. Each CSV file is labeled CTxx with some number xx and corresponds to a particular set of numerical parameters. These parameters are the softening length, timestep size (quantified through the "eta" parameter discussed in our manuscript), and number of particles. The first column of each CSV file is time (Gyr), and the second column is the halo central density (dimensionless, normalized by the NFW scale density rho_s). Each folder has a file called param_key.txt, which matches each CTxx to the numerical parameters used in the corresponding N-body simulation. The columns of param_key.txt are, in order: simulation label, number of particles, softening length (kpc), and eta. ###### Nbody These folders contain particle data for the N-body simulations. Each subfolder is labeled CTxx as in the reduced data and can be matched with numerical parameters with the same param_key.txt. Each CTxx subfolder contains simulation snapshots saved in the format snapshot_xxx.hdf5, where xxx is the snapshot number. Each snapshot stores the following particle data: | Data Path | Description | Units | | :----------------------------------- | :-------------------------------------------------------------------------------- | :------- | | \['PartType1/Coordinates'] | 3D particle positions | kpc | | \['PartType1/ParticleIDs'] | Particle identification numbers for tracking between snapshots | | | \['PartType1/Potential'] | Particle gravitational potential | (km/s)^2 | | \['PartType1/SIDM\_NumTotalScatter'] | Number of SIDM scattering events the particle has experienced before the snapshot | | | \['PartType1/Velocities'] | 3D particle velocities | km/s | and the following general data: | Data Path | Description | Units | | :---------------------------------- | :------------ | :------------------------------------------------------- | | \['Header'].attrs\['Time'] | Snapshot time | Arepo time units (multiply by 0.978462 to change to Gyr) | | \['Header'].attrs\['MassTable']\[1] | Particle mass | 10^10 solar masses | Information on the hdf5 file format: [https://www.hdfgroup.org/solutions/hdf5/](https://www.hdfgroup.org/solutions/hdf5/) Information on reading hdf5 files in Python: [https://www.h5py.org/](https://www.h5py.org/) Information on Arepo hdf5 files: [https://arepo-code.org/wp-content/userguide/snapshotformat.html](https://arepo-code.org/wp-content/userguide/snapshotformat.html) Each CTxx subfolder also contains two other files: energy.txt and parameters-usedvalues. parameters-usedvalues include the parameters used in running the corresponding simulation. A description of the parameter names can be found at [https://arepo-code.org/wp-content/userguide/parameterfile.html](https://arepo-code.org/wp-content/userguide/parameterfile.html). energy.txt contains information on the system energy as a function of time. A more detailed description of this file can be found at [https://arepo-code.org/wp-content/userguide/diagnosticfiles.html](https://arepo-code.org/wp-content/userguide/diagnosticfiles.html).