Dark Matter Subhalo Evolution ============================= In this tutorial we'll use Galacticus to evolve populations of subhalos within a dark matter halo merger tree and output their properties. No baryonic physics (well, almost no baryonic physics) is included in this model. If you haven't already installed Galacticus, you can find the installation instructions `here `_. Running the calculation ----------------------- For this tutorial we'll use the ``parameters/tutorials/darkMatterOnlySubHalos.xml`` parameter file: .. code-block:: bash $ ./Galacticus.exe parameters/tutorials/darkMatterOnlySubHalos.xml If everything is working you should see output which looks something like: .. code-block:: text ## #### # # # # # # # ### # ### ### ### ## ### ## ## ## # # # # # # # # # # # # # # # # ### ### # ### # # # # # # # # # # # # # # # # # # # # # #### #### ### #### ### ## ### ### #### ## © 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 - Andrew Benson M: Memory: code + nodes + misc = total M: 22.246Mib + 1.000 b + 9.000 b = 22.246Mib M: -> Begin multiple tasks . . . and a file ``darkMatterOnlySubHalos.hdf5`` will have been created. Typically this model will take around 30s to run, but it may be (much) slower the first time you run it as various power spectra and linear growth tables are computed and stored. Understanding the input ----------------------- You can look at the entire parameter file for this tutorial `here `_. Below we'll explore sections of the file to understand what they do. (Sections that have been explored in previous tutorials, e.g. cosmological parameters, will not be re-examined here.) .. code-block:: xml This block tells Galacticus what task we want it to perform - here we're just asking it to compute the power spectrum, the halo mass function, and then to evolve merger tree forests. .. code-block:: xml

This block specifies various options related to large scale structure growth. The linear growth function is set to the ``baryonsDarkMatter`` model of `Benson (2020) `_, in which the suppression of growth of large wavenumber modes due to baryon pressure is accounted for. Options for `solving the excursion set problem `_ are also included here, even though it is not used with the `Sheth & Tormen (2002) `_ mass function which we select. It is included since it is required if the mass function is switched to the `Press & Schechter (1974) `_ form used for some non-CDM dark matter models. .. code-block:: xml Here we select a simple model of the evolution of the IGM. The thermal history of the IGM is needed to solve for the growth of large wavenumber modes where baryon pressure delays the growth of structure. This IGM model assumes instant reionization at :math:`z`\ =8, heating to a temperature of 15,000K, and cooling to 1,000K by the present day. Prior to reionization the IGM state is computed using the `RecFast `_ code. .. code-block:: xml Here we select our model for dark matter halo profiles - we use an NFW profile but allowing for "heating" of the profile as described in `Pullen et al. (2016) `_. We also define parameters of the concentration model. In this model scale radii of halos are computed using the random walk approach of `Johnson, Benson & Grin (2021) `_. The parameters of that model are given here, along with the parameters of the "fallback" model used for nodes in the merger tree for which the random walk model can not be applied. .. code-block:: xml Halo spin parameters are also modeled using a random walk approach `Benson, Behrens & Lu (2020) `_ - here we specify the parameters of that random walk model and a "fallback" spin distribution to be used for halos for which the random walk model can not be applied. .. code-block:: xml The preceding block acts to switch off various baryonic physics which we want to exclude from this model. .. code-block:: xml When halos first become subhalos they are assigned orbital parameters. The above defines the distribution of those parameters, using the `Jiang et al. (2015) `_ model for the distribution of radial and tangential velocities, plus the model of `Benson, Behrens & Lu (2020) `_ for the anisotropy of the distribution of orbits. .. code-block:: xml Here we define parameters of the various physics models applied to the evolution of subhalos, as outlined in `Yang et al. (2020) `_. .. code-block:: xml This block applies various physical processes to subhalos. .. code-block:: xml Finally we specify the outputs that we want. Here we request a number of additional properties to be output, and also request three summary analyses (subhalo mass function, :math:`V_\mathrm{max}` function, and radial distribution - each compared to results from the Caterpillar simulations) to be computed and output. Understanding the output ------------------------ The main output follows the general form described in the tutorial on dark matter only merger trees, but with some additional properties (subhalo orbital positions, tidal radii, etc.) In addition, there is now an ``analyses`` group: .. code-block:: console $ h5ls galacticus.hdf5/analyses subhaloMassFunction Group subhaloRadialDistribution Group subhaloVelocityMaximumMean Group Each group contains the results of one summary analysis. For example: .. code-block:: console $ h5ls darkMatterOnlySubHalos.hdf5/analyses/subhaloMassFunction massFunction Dataset {20} massFunctionCovariance Dataset {20, 20} massFunctionCovarianceTarget Dataset {20, 20} massFunctionTarget Dataset {20} massRatio Dataset {20} gives the results of a subhalo mass function analysis. The mass function is given by the ``massFunction`` dataset in bins of subhalo-to-host-halo mass ratio as given by the ``massRatio`` dataset. Additionally the covariance of the mass function is given in the ``massFunctionCovariance`` dataset. For comparison the subhalo mass function and its covariance from a target dataset (in this case the `Caterpillar simulations `_) are included also.