Warm Dark Matter Halo Mass Function =================================== In this tutorial we'll use Galacticus to compute and output the mass function of warm dark matter halos. You should first follow the `CDM halo mass function tutorial `_ which explains how to run a halo mass function calculation, and describes the outputs. Running the calculation ----------------------- To run an example of a warm dark matter halo mass function calculation, do the following: .. code-block:: console $ ./Galacticus.exe parameters/tutorials/haloMassFunctionWarmDarkMatter.xml If everything is working a file ``haloMassFunctionWarmDarkMatter.hdf5`` will have been created. Understanding the input ----------------------- You can look at the entire parameter file for this tutorial `here `_. Below we'll explore just those sections of the parameter file specific to the warm dark matter calculation - everything else is just as it would be for the equivalent CDM calculation. .. code-block:: xml The only difference with respect to the CDM case here is that we specify the minimum halo mass at which to compute the halo mass function. By default a minimum mass of :math:`10^{10}\mathrm{M}_\odot` is used, but here we want to go to lower masses to see the effects of warm dark matter. .. code-block:: xml In the above we explicitly specify a thermal warm dark matter particle, with effective degrees of freedom :math:`g_\mathrm{X}=1.5` and a mass of :math:`m_\mathrm{X}=3.0` keV. In the CDM case we didn't specify the type of dark matter particle, since CDM is the default. .. code-block:: xml Here we use the `Bode et al. (2001) `_ fitting function for the warm dark matter transfer function. Note that this works by modifying the CDM transfer function (supplied here using the ``eisensteinHu1999`` method), and that we explicitly pass a CDM dark matter particle to this class (otherwise it would find the WDM particle class and refuse to work, since it doesn't know how to compute the transfer function for WDM). For warm dark matter, we switch to using a sharp-in-:math:`k`-space filter to compute :math:`\sigma(M)`, as it avoids spurious halos below the cut-off scale which result for warm dark matter power spectra using the usual top-hat-in-real-space filter (see `Benson et al. (2013) `_). .. code-block:: xml For the critical overdensities for collapse of halos (as used in `Press-Schechter `_-type models) we make use of the results from `Barkana et al. (2001) `_ for warm dark matter. Note that this works by modifying the CDM critical overdensities (supplied here using the ``sphericalCollapseClsnlssMttrCsmlgclCnstnt`` method), and that we explicitly pass a CDM dark matter particle to this class (otherwise it would find the WDM particle class and refuse to work, since it doesn't know how to compute critical overdensities for WDM). .. code-block:: xml For dark matter halo concentrations, we make use of the `Schneider et al. (2015) `_ algorithm, which computes the concentration by matching halo formation epochs to a "reference" CDM universe. The properties of the reference universe are described in the above in the ``reference`` section. Understanding the output ------------------------ The output file ``haloMassFunctionWarmDarkMatter.hdf5`` has exactly the same format as for the CDM case, described in the halo mass function tutorial.