.. _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]`` (default ``0.5d0``) — Parameter controlling the magnitude of heating due to mass loss. * ``[includeKickHeating]`` (default ``.true.``) — Parameter controlling whether heating due to velocity kicks is to be included. * ``[radiusEscape]`` — The radius beyond which a particle is assumed to have escaped the potential. * ``[time]`` — The time at which decays should be evaluated. * ``[gamma]`` (default ``0.5d0``) — Parameter controlling the magnitude of heating due to mass loss. * ``[includeKickHeating]`` (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]`` (default ``1.0d0``) — The parameter :math:`\alpha` appearing in the impulsive outflow heating rate. * ``[energyImpulsiveOutflowDisk]`` — The impulsive energy of outflows from the disk. * ``[energyImpulsiveOutflowSpheroid]`` — The impulsive energy of outflows from the spheroid. * ``[impulsiveEnergyFactor]`` (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. **Parameters** * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[toleranceRelativeVelocityDispersion]`` (default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[radiusVirial]`` — The virial radius (in Mpc) of the halo, defining the outer boundary up to which the monotonic heating calculation tracks the energy-ordered shell mapping from the initial to heated density profile. * ``[nonAnalyticSolver]`` (default ``var_str('fallThrough')``) — Selects how solutions are computed when no analytic solution is available. If set to "``fallThrough``" then the solution ignoring heating is used, while if set to "``numerical``" then numerical solvers are used to find solutions. * ``[componentType]`` (default ``var_str('unknown')``) — The component type that this mass distribution represents. * ``[massType]`` (default ``var_str('unknown')``) — The mass type that this mass distribution represents. .. _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]`` (default ``1.0d-3``) — The tolerance adopted in determining if the no-shell-crossing assumption is valid. * ``[toleranceShellCrossing]`` (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)** **Parameters** * ``[dimensionless]`` (default ``.true.``) — If true the null profile is considered to be dimensionless. .. _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]`` (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]`` (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]`` (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]`` (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. * ``[efficiencyDecay]`` (default ``1.0d0``) — Efficiency of the decay of the tidal tensor integral. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal heating is applied pre-infall. * ``[applyPreInfall]`` (default ``.false.``) — If true, tidal mass loss is applied pre-infall. * ``[heatSpecificNormalized]`` — The normalized specific tidal heating, :math:`Q = \epsilon / r^2`. * ``[coefficientSecondOrder0]`` (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]`` (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]`` (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]`` (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]`` — The particle mass to use for two-body relaxation calculations. * ``[lengthSoftening]`` — The softening length to use for two-body relaxation calculations. * ``[timeStart]`` — The time at which two-body relaxation is assumed to have begun. * ``[efficiency]`` — The dimensionless efficiency factor (between 0 and 1) controlling what fraction of the energy transferred by two-body gravitational scattering actually heats the dark matter halo, accounting for partial thermalization of the relaxation energy. * ``[massParticle]`` — The particle mass to use for two-body relaxation calculations. * ``[lengthSoftening]`` — The softening length to use for two-body relaxation calculations. * ``[timeRelaxing]`` — The time for which the system has been relaxing. * ``[efficiency]`` — The fractional efficiency of two-body relaxation heating.