Dark Matter Profile Heating

Class providing models of heating applied to dark matter-only halo profiles. Heating can modify the density profile of a dark matter halo, for example due to tidal shocks, dynamical heating from baryons, or other perturbative processes. This class returns a massDistributionHeatingClass object encoding the heating distribution for a given node.

Default implementation: darkMatterProfileHeatingNull

Methods

getclass(massDistributionHeatingClass)

Return the dark matter profile heating in the dark matter-only profile.

  • type(treeNode), intent(inout) :: node

darkMatterProfileHeatingDecayingDarkMatter

A dark matter profile heating class that constructs massDistributionHeatingDecayingDarkMatter objects to compute heating due to decaying dark matter.

Methods

  • computeFactors — Compute memoized factors.

Parameters

  • [gamma] (real; default 0.5d0) — Parameter controlling the magnitude of heating due to mass loss.

  • [includeKickHeating] (boolean; default .true.) — Parameter controlling whether heating due to velocity kicks is to be included.

darkMatterProfileHeatingImpulsiveOutflow

A dark matter profile heating model which accounts for heating due to impulsive outflows. The quantity

\[\dot{\epsilon}^\prime = \dot{M}_\mathrm{outflow} f\left( \frac{t_\phi}{t_\mathrm{dyn}} \right),\]

has been accumulated by the nodeOperatorImpulsiveOutflowEnergy node operator object—radially-dependent factors are then applied in the massDistributionHeatingImpulsiveOutflow mass distribution object returned from our factory.

Parameters

  • [impulsiveEnergyFactor] (real; default 1.0d0) — The parameter \(\alpha\) appearing in the impulsive outflow heating rate.

darkMatterProfileHeatingMonotonic

A dark matter profile heating model builds massDistributionHeatingMonotonic objects to enforce monotonic heating energy perturbations.

Methods

  • computeSolution — Compute a solution for the heated profile.

darkMatterProfileHeatingMonotonicWeak

A dark matter profile heating model builds massDistributionHeatingMonotonicWeak objects to enforce monotonic heating energy perturbations. This classes enforces a weaker condition (compared to darkMatterProfileHeatingMonotonic).

Parameters

  • [toleranceShellCrossing] (real; default 1.0d-3) — The tolerance adopted in determining if the no-shell-crossing assumption is valid.

darkMatterProfileHeatingNull

A dark matter profile heating model which constructs massDistributionHeatingNull objects to provide zero heating.

(Default implementation)

darkMatterProfileHeatingSummation

A dark matter profile heating model which sums over other heat sources.

Methods

  • list — Return a list of all sub-components.

darkMatterProfileHeatingTidal

A dark matter profile heating class that constructs massDistributionHeatingTidal objects to compute heating due to tidal shocks.

Methods

  • specificEnergyTerms — Compute the first and second order energy perturbations.

  • initialize — (Re)initialize the parameters of the tidal heating distribution.

Parameters

  • [coefficientSecondOrder0] (real; default 0.0d0) — The coefficient, \(a_0\), appearing in the second-order heating term, \(f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2\).

  • [coefficientSecondOrder1] (real; default 0.0d0) — The coefficient, \(a_1\), appearing in the second-order heating term, \(f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2\).

  • [coefficientSecondOrder2] (real; default 0.0d0) — The coefficient, \(a_2\), appearing in the second-order heating term, \(f_2 = a_0 + a_1 \mathrm{d}\log \rho/\mathrm{d} \log r + a_2 (\mathrm{d}\log \rho/\mathrm{d} \log r)^2\).

  • [correlationVelocityRadius] (real; default -1.0d0) — The velocity-position correlation function, \(\chi_\mathrm{r,v}\), as defined by Gnedin and Ostriker (1999) which controls the strength of the second order heating term.

darkMatterProfileHeatingTwoBodyRelaxation

A dark matter profile heating class which returns a massDistributionHeatingTwoBodyRelaxation objects to compute heating due to two-body relaxation.

Parameters

  • [massParticle] (real) — The particle mass to use for two-body relaxation calculations.

  • [lengthSoftening] (real) — The softening length to use for two-body relaxation calculations.

  • [timeStart] (real) — The time at which two-body relaxation is assumed to have begun.

  • [efficiency] (real) — The fractional efficiency of two-body relaxation heating.