.. _physics-darkMatterParticle: Dark Matter Particle ==================== Class providing the physical properties of the dark matter particle, primarily its mass (in keV). The particle mass is relevant for warm dark matter (WDM) models for example, where free-streaming suppresses the power spectrum on small scales. Different implementations specify different dark matter candidates such as cold dark matter (CDM), WDM, sterile neutrinos, or axion-like particles. **Default implementation:** ``darkMatterParticleCDM`` Methods ------- ``mass`` → ``double precision`` Return the mass of the dark matter particle in units of keV. .. _physics-darkMatterParticleCDM: ``darkMatterParticleCDM`` ------------------------- Provides a cold dark matter particle with effectively infinite mass and negligible free-streaming length, representing the standard collisionless :term:`CDM` model in which structure grows hierarchically from small scales upward. **(Default implementation)** .. _physics-darkMatterParticleDecayingDarkMatter: ``darkMatterParticleDecayingDarkMatter`` ---------------------------------------- Provides a decaying dark matter particle candidate in which the parent particle decays to a lighter daughter particle plus radiation. The particle is characterized by its ``[lifetime]`` in Gyr, the ``[massSplitting]`` between parent and daughter, and the ``[velocityKick]`` imparted to the daughter particle upon decay. **Methods** * ``lifetime`` — Return the lifetime of the dark matter particle. * ``massSplitting`` — Return the mass splitting of the decay. * ``velocityKick`` — Return the velocity kick imparted by the decay. **Parameters** * ``[lifetime]`` (real) — The mean lifetime (in Gyr) of the decaying dark matter particle before it decays into lighter daughter particles, controlling the timescale over which dark matter density is reduced by decay. * ``[massSplitting]`` (real) — The fractional mass splitting :math:`\epsilon = \Delta m / m` between the parent and daughter dark matter particles in the decay, used to compute the velocity kick imparted to the daughter particle. * ``[velocityKick]`` (real) — The velocity kick (in km/s) imparted to the daughter dark matter particle when the parent decays, which heats and disrupts the dark matter distribution in halos over time. .. _physics-darkMatterParticleFuzzyDarkMatter: ``darkMatterParticleFuzzyDarkMatter`` ------------------------------------- Provides a fuzzy dark matter particle, representing an ultralight axion-like boson whose quantum pressure suppresses structure on small scales. The particle mass in units of :math:`10^{-22}` eV is set by ``[mass]``, and the fraction of the total dark matter density in this component by ``[densityFraction]``. **Methods** * ``densityFraction`` — Return the density fraction of the fuzzy dark matter with respect to the total dark matter density. **Parameters** * ``[mass]`` (real; default ``1.0d0``) — The mass (in units of :math:`10^{-22}` eV) of the fuzzy dark matter particle. * ``[densityFraction]`` (real; default ``1.0d0``) — The density fraction of the fuzzy dark matter with respect to the total dark matter density. .. _physics-darkMatterParticleSelfInteractingDarkMatter: ``darkMatterParticleSelfInteractingDarkMatter`` ----------------------------------------------- Provides a self-interacting dark matter particle candidate in which dark matter undergoes elastic scattering, modifying halo density profiles on small scales. The elastic self-interaction cross section per unit mass in units of cm\ :math:`^2` g\ :math:`^{-1}` is set by ``[crossSectionSelfInteraction]``. **Methods** * ``tabulate`` — Tabulate the virial density contrast as a function of mass and time. * ``restoreTable`` — Restore a tabulated solution from file. * ``storeTable`` — Store a tabulated solution to file. .. _physics-darkMatterParticleSelfInteractingDarkMatterConstant: ``darkMatterParticleSelfInteractingDarkMatterConstant`` ------------------------------------------------------- Provides a selfInteracting dark matter particle. **Methods** * ``crossSectionSelfInteraction`` — Return the self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. * ``crossSectionSelfInteractionDifferential`` — Return the differential self-interaction cross section, :math:`\mathrm{d}\sigma/\mathrm{d}\Omega`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}` ster\ :math:`^{-1}`. * ``crossSectionSelfInteractionMomentumTransfer`` — Return the momentum transfer self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. * ``crossSectionSelfInteractionViscosity`` — Return the viscosity self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. **Parameters** * ``[crossSectionSelfInteraction]`` (real) — The self-interaction cross section in units of cm\ :math:`^2` g\ :math:`^{-1}`. .. _physics-darkMatterParticleSIDMVelocityDependent: ``darkMatterParticleSIDMVelocityDependent`` ------------------------------------------- Provides a self-interacting dark matter particle with velocity dependent cross section. Specifically: .. math:: \frac{\mathrm{d}\sigma}{\mathrm{d}\theta} = \frac{1}{2} \sigma_0 \sin\theta \frac{w^4}{[w^2+v^2(1-\cos\theta)/2]^2}, where :math:`w` is a characteristic velocity. Note that this form has an analytic solution for the effective cross-section (the integral of the cross-section over the Maxwell-Boltzmann velocity distribution weighted by :math:`v^5`---see :cite:t:`yang_parametric_2024`) of: .. math:: \sigma_\mathrm{eff} = - \sigma_0 \frac{w^4}{64 v^6} \left[ 4 v^2 + (4 v^2 + w^2) E_\mathrm{i}\left(-\frac{w^2}{4 v^2}\right) \exp \left(\frac{w^2}{4v^2}\right) \right] It is not implemented here as the generic tabulation approach is computationally faster. **Methods** * ``crossSectionSelfInteraction`` — Return the self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. * ``crossSectionSelfInteractionDifferential`` — Return the differential self-interaction cross section, :math:`\mathrm{d}\sigma/\mathrm{d}\Omega`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}` ster\ :math:`^{-1}`. * ``crossSectionSelfInteractionMomentumTransfer`` — Return the momentum transfer self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. * ``crossSectionSelfInteractionViscosity`` — Return the viscosity self-interaction cross section, :math:`\sigma`, of the dark matter particle in units of cm\ :math:`^2` g\ :math:`^{-1}`. * ``velocityCharacteristic`` — Return the characteristic velocity scale, :math:`v_\mathrm{c}`, of the velocity-dependent cross section, in units of km s\ :math:`^{-1}`. **Parameters** * ``[velocityCharacteristic]`` (real; default ``1.0d0``) — The characteristic velocity scale, :math:`v_\mathrm{c}`, above which the self-interaction becomes velocity-suppressed. The total cross section is :math:`\sigma(v) = \sigma_0 \, v_\mathrm{c}^2/(v_\mathrm{c}^2+v^2)`, which is approximately constant for :math:`v \ll v_\mathrm{c}` and falls as :math:`v^{-2}` for :math:`v \gg v_\mathrm{c}`. * ``[sigma0]`` (real; default ``2.4d4``) — Below the characteristic velocity the scattering is roughly isotropic with :math:`\sigma` :math:`\approx` sigma0. .. _physics-darkMatterParticleWDMThermal: ``darkMatterParticleWDMThermal`` -------------------------------- Provides a thermal relic warm dark matter particle whose free-streaming length suppresses small-scale structure formation. The particle mass in keV is set by ``[mass]``, and the effective number of relativistic degrees of freedom at freeze-out by ``[degreesOfFreedomEffective]``. **Methods** * ``degreesOfFreedomEffective`` — Return the effective number of degrees of freedom of the thermal wark dark matter particle. * ``degreesOfFreedomEffectiveDecoupling`` — Return the effective number of relativistic degrees of freedom in the universe at the time at which the thermal wark dark matter particle decoupled. **Parameters** * ``[mass]`` (real; default ``1.0d0``) — The mass (in keV) of the thermal warm dark matter particle, which determines the free-streaming length and the suppression of small-scale structure relative to cold dark matter; smaller masses give stronger suppression. * ``[degreesOfFreedomEffective]`` (real; default ``1.5d0``) — The effective number of degrees of freedom for the thermal warm dark matter particle.