.. _physics-darkMatterProfile: Dark Matter Halo Profiles ========================= Object providing the full dark matter halo density profile, including any adiabatic contraction or other modifications due to baryonic effects. This class returns a :galacticus-class:`massDistributionClass` object describing the mass distribution within the halo. It is distinct from the dark-matter-only (:galacticus-class:`darkMatterProfileDMOClass`) profile, which does not account for baryonic back-reaction on the dark matter. **Default implementation:** ``darkMatterProfileAdiabaticGnedin2004`` Methods ------- ``get`` → ``class(massDistributionClass)`` Return the mass distribution object describing the dark matter density profile of ``node``, accounting for baryonic effects such as adiabatic contraction. Optionally weight the profile by a specified quantity. * ``type (treeNode ), intent(inout), target :: node`` * ``type (enumerationWeightByType), intent(in ), optional :: weightBy`` * ``integer , intent(in ), optional :: weightIndex`` .. _physics-darkMatterProfileAccelerator: ``darkMatterProfileAccelerator`` -------------------------------- An accelerator class for non-dark-matter-only dark matter halo profiles that caches and interpolates previously computed profile quantities to speed up repeated evaluations. The relative tolerance for accepting cached interpolations is set by ``[toleranceRelative]``, and the maximum interpolation factor in radius by ``[factorRadiusMaximum]``. **Methods** * ``tabulate`` — Tabulate the mass function. **Parameters** * ``[toleranceRelative]`` (real; default ``1.0d-2``) — The tolerance with which to accept accelerated estimates. * ``[factorRadiusMaximum]`` (real; default ``3.0d0``) — The maximum factor by which to interpolate in radius. .. _physics-darkMatterProfileAdiabaticGnedin2004: ``darkMatterProfileAdiabaticGnedin2004`` ---------------------------------------- A non-dark-matter-only dark matter profile class which applies adiabatic contraction to dark matter profiles using the model of :cite:t:`gnedin_response_2004`, building :galacticus-class:`massDistributionSphericalAdiabaticGnedin2004` objects. The shape of the contraction is governed by parameters ``[A]``, ``[omega]``, and the pivot radius ``[radiusFractionalPivot]``, with numerical accuracy controlled by ``[toleranceRelative]``. **(Default implementation)** **Methods** * ``setBaryonicComponent`` — Set baryonic components in the mass distribution. * ``computeFactors`` — Compute factors needed for solving adiabatic contraction. * ``radiusOrbitalMean`` — Compute the orbit-averaged radius for dark matter. * ``radiusOrbitalMeanDerivative`` — Compute the derivative of the orbit-averaged radius for dark matter. * ``radiusInitial`` — Compute the initial radius in the dark matter profile. * ``radiusInitialDerivative`` — Compute the derivative of the initial radius in the dark matter profile. **Parameters** * ``[A]`` (real; default ``0.80d0``) — The parameter :math:`A` appearing in the :cite:t:`gnedin_response_2004` adiabatic contraction algorithm. * ``[omega]`` (real; default ``0.77d0``) — The parameter :math:`\omega` appearing in the :cite:t:`gnedin_response_2004` adiabatic contraction algorithm. * ``[radiusFractionalPivot]`` (real; default ``1.0d0``) — The pivot radius (in units of the virial radius), :math:`r_0`, appearing in equation (:eq:`eq-adiabaticContractionGnedinPowerLaw`). * ``[toleranceRelative]`` (real; default ``1.0d-2``) — The relative tolerance to use in solving for the initial radius in the adiabatically-contracted dark matter profile. * ``[nonAnalyticSolver]`` (string; one of ``fallThrough``, ``numerical``; default ``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. .. _physics-darkMatterProfileDarkMatterOnly: ``darkMatterProfileDarkMatterOnly`` ----------------------------------- An implementation of non-dark-matter-only dark matter halo profiles that returns the unmodified dark-matter-only profile, i.e. baryonic effects on the dark matter distribution are ignored. Whether to compute velocity dispersions via the Chandrasekhar integral is controlled by ``[chandrasekharIntegralComputeVelocityDispersion]``. **Parameters** * ``[chandrasekharIntegralComputeVelocityDispersion]`` (boolean; default ``.true.``) — If true, the Chandrasekhar integral is computed using the velocity dispersion, :math:`\sigma_mathrm{r}(r)`. Otherwise, the velocity dispersion is approximated as :math:`V_\mathrm{c}(r)/\sqrt{2}`. .. _physics-darkMatterProfileSIDMIsothermal: ``darkMatterProfileSIDMIsothermal`` ----------------------------------- A dark matter halo profile class that builds :galacticus-class:`massDistributionSphericalSIDMIsothermalBaryons` objects for isothermal SIDM profiles containing baryons.