.. _physics-darkMatterProfileHeating: 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 :galacticus-class:`massDistributionHeatingClass` object encoding the heating distribution for a given node. **Default implementation:** ``darkMatterProfileHeatingNull`` Methods ------- ``get`` → ``class(massDistributionHeatingClass)`` Return the dark matter profile heating in the dark matter-only profile. * ``type(treeNode), intent(inout) :: node`` .. _physics-darkMatterProfileHeatingDecayingDarkMatter: ``darkMatterProfileHeatingDecayingDarkMatter`` ---------------------------------------------- A dark matter profile heating class that constructs :galacticus-class:`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. .. _physics-darkMatterProfileHeatingImpulsiveOutflow: ``darkMatterProfileHeatingImpulsiveOutflow`` -------------------------------------------- A dark matter profile heating model which accounts for heating due to impulsive outflows. The quantity .. math:: \dot{\epsilon}^\prime = \dot{M}_\mathrm{outflow} f\left( \frac{t_\phi}{t_\mathrm{dyn}} \right), has been accumulated by the :galacticus-class:`nodeOperatorImpulsiveOutflowEnergy` node operator object---radially-dependent factors are then applied in the :galacticus-class:`massDistributionHeatingImpulsiveOutflow` mass distribution object returned from our factory. **Parameters** * ``[impulsiveEnergyFactor]`` (real; default ``1.0d0``) — The parameter :math:`\alpha` appearing in the impulsive outflow heating rate. .. _physics-darkMatterProfileHeatingMonotonic: ``darkMatterProfileHeatingMonotonic`` ------------------------------------- A dark matter profile heating model builds :galacticus-class:`massDistributionHeatingMonotonic` objects to enforce monotonic heating energy perturbations. **Methods** * ``computeSolution`` — Compute a solution for the heated profile. .. _physics-darkMatterProfileHeatingMonotonicWeak: ``darkMatterProfileHeatingMonotonicWeak`` ----------------------------------------- A dark matter profile heating model builds :galacticus-class:`massDistributionHeatingMonotonicWeak` objects to enforce monotonic heating energy perturbations. This classes enforces a weaker condition (compared to :galacticus-class:`darkMatterProfileHeatingMonotonic`). **Parameters** * ``[toleranceShellCrossing]`` (real; default ``1.0d-3``) — The tolerance adopted in determining if the no-shell-crossing assumption is valid. .. _physics-darkMatterProfileHeatingNull: ``darkMatterProfileHeatingNull`` -------------------------------- A dark matter profile heating model which constructs :galacticus-class:`massDistributionHeatingNull` objects to provide zero heating. **(Default implementation)** .. _physics-darkMatterProfileHeatingSummation: ``darkMatterProfileHeatingSummation`` ------------------------------------- A dark matter profile heating model which sums over other heat sources. **Methods** * ``list`` — Return a list of all sub-components. .. _physics-darkMatterProfileHeatingTidal: ``darkMatterProfileHeatingTidal`` --------------------------------- A dark matter profile heating class that constructs :galacticus-class:`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, :math:`a_0`, appearing in the second-order heating term, :math:`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, :math:`a_1`, appearing in the second-order heating term, :math:`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, :math:`a_2`, appearing in the second-order heating term, :math:`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, :math:`\chi_\mathrm{r,v}`, as defined by :cite:t:`gnedin_self-consistent_1999` which controls the strength of the second order heating term. .. _physics-darkMatterProfileHeatingTwoBodyRelaxation: ``darkMatterProfileHeatingTwoBodyRelaxation`` --------------------------------------------- A dark matter profile heating class which returns a :galacticus-class:`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.