Tutorial: Warm dark matter power spectra - galacticusorg/galacticus GitHub Wiki

In this tutorial we'll use Galacticus to compute and output the power spectrum for a warm dark matter model. You should first follow the CDM power spectrum tutorial which explains how to run a power spectrum calculation, and describes the outputs.

Running the calculation

To run an example of a warm dark matter power spectrum calculation, do the following:

$ ./Galacticus.exe parameters/tutorials/powerSpectrumWarmDarkMatter.xml

If everything is working a file powerSpectrumnWarmDarkMatter.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.

  <!-- Use a thermal WDM particle - mass is in keV -->
  <darkMatterParticle value="WDMThermal">
    <degreesOfFreedomEffective value="1.5" />
    <mass value="3.0" />
  </darkMatterParticle>

In the above we explicitly specify a thermal warm dark matter particle, with effective degrees of freedom gX=1.5 and a mass of mX=3.0 keV. In the CDM case we didn't specify the type of dark matter particle, since CDM is the default.

  <!-- Use the Bode et al. (2001) transfer function for thermal WDM -->
  <transferFunction value="bode2001">
    <epsilon value="0.359" />
    <eta value="3.810" />
    <nu value="1.100" />
    <!-- Bode2001 transfer function works by modifying a CDM transfer function - so feed it a CDM transfer function here -->
    <transferFunction value="eisensteinHu1999">
      <!-- Feed this transfer function a CDM particle - otherwise it will see the WDM particle defined above and complain that it
           can not compute WDM transfer functions -->
      <darkMatterParticle value="CDM" />
      <neutrinoNumberEffective value="3.046"/>
      <neutrinoMassSummed value="0.000"/>
    </transferFunction>
  </transferFunction>
  <!-- When computing sigma(M) for power spectra with a cut off it's better to use a filter that is sharp in k-space, instead of
       the usual real-space top-hat (which introduces artificial halos below the cut-off scale -->
  <cosmologicalMassVariance value="filteredPower">
    <monotonicInterpolation value="true" />
    <nonMonotonicIsFatal value="false" />
    <powerSpectrumWindowFunction value="sharpKSpace">
      <normalization value="2.5" />
    </powerSpectrumWindowFunction>
    <sigma_8 value="0.8111" />
    <tolerance value="3.0e-4" />
    <toleranceTopHat value="3.0e-4" />
  </cosmologicalMassVariance>

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-k-space filter to compute σ(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)).

Understanding the output

The output file powerSpectrumWarmDarkMatter.hdf5 has exactly the same format as for the CDM case, described in the power spectrum tutorial.

⚠️ **GitHub.com Fallback** ⚠️