.. _physics-darkMatterProfileDMO: Dark Matter Only Halo Profiles ============================== Class providing dark matter-only halo density profiles, i.e. the profile a halo would have in the absence of baryonic effects. This returns a :galacticus-class:`massDistributionClass` object for the specified node. Common implementations include NFW and Einasto profiles parameterized by a scale radius or concentration. This class is used in calculations of dynamical friction, tidal stripping, and other processes where the unmodified dark matter profile is needed. **Default implementation:** ``darkMatterProfileDMONFW`` Methods ------- ``get`` → ``class(massDistributionClass)`` Return the mass distribution of the dark matter-only profile. * ``type (treeNode ), intent(inout) :: node`` * ``type (enumerationWeightByType), intent(in ), optional :: weightBy`` * ``integer , intent(in ), optional :: weightIndex`` .. _physics-darkMatterProfileDMOAccelerator: ``darkMatterProfileDMOAccelerator`` ----------------------------------- An accelerator wrapper for dark-matter-only profile classes that caches recently computed profile quantities (enclosed mass, density, potential, etc.) and returns interpolated estimates when the requested radius is close to a cached value, significantly speeding up calculations that repeatedly query the profile at nearby radii. **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-darkMatterProfileDMOAccretionFlowCorrelationFunction: ``darkMatterProfileDMOAccretionFlowCorrelationFunction`` -------------------------------------------------------- An accretion flow class which models the accretion flow using the 2-halo correlation function by building :galacticus-class:`massDistributionCorrelationFunction` objects. **Parameters** * ``[scaleFactorVelocity]`` (real; default ``1.0d0``) — A dimensionless multiplicative scale factor applied to the inflow velocities computed from the correlation-function-based accretion flow model, allowing calibration of the infall velocity amplitude relative to the two-point clustering prediction. .. _physics-darkMatterProfileDMOAccretionFlowDiemerKravtsov2014: ``darkMatterProfileDMOAccretionFlowDiemerKravtsov2014`` ------------------------------------------------------- An accretion flow class which models the accretion flow using the fitting function of :cite:t:`diemer_dependence_2014`. Specifically, :galacticus-class:`massDistributionDiemerKravtsov2014` objects are built with parameters chosen using fits to the redshift and :math:`\nu` dependencies of the fitting parameters :math:`b_\mathrm{e}` and :math:`s_\mathrm{e}` chosen to match the results of their figure 18. **Parameters** * ``[b0]`` (real; default ``+1.1250d0``) — The parameter :math:`b_0` in the fitting function :math:`b(\nu,z)=b_0 (1+z)^{b_z} \nu^{b_\nu}` for the parameter :math:`b(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. * ``[bz]`` (real; default ``+0.625d0``) — The parameter :math:`b_z` in the fitting function :math:`b(\nu,z)=b_0 (1+z)^{b_z} \nu^{b_\nu}` for the parameter :math:`b(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. * ``[bnu]`` (real; default ``-0.2250d0``) — The parameter :math:`b_\nu` in the fitting function :math:`b(\nu,z)=b_0 (1+z)^{b_z} \nu^{b_\nu}` for the parameter :math:`b(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. * ``[s0]`` (real; default ``+1.3925d0``) — The parameter :math:`s_0` in the fitting function :math:`s(\nu,z)=s_0 (1+z)^{s_z} \nu^{s_\nu}` for the parameter :math:`s(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. * ``[sz]`` (real; default ``-0.199d0``) — The parameter :math:`s_z` in the fitting function :math:`s(\nu,z)=s_0 (1+z)^{s_z} \nu^{s_\nu}` for the parameter :math:`s(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. * ``[snu]`` (real; default ``+0.0875d0``) — The parameter :math:`s_\nu` in the fitting function :math:`s(\nu,z)=s_0 (1+z)^{s_z} \nu^{s_\nu}` for the parameter :math:`s(\nu,z)` appearing in equation (4) of :cite:t:`diemer_dependence_2014`. .. _physics-darkMatterProfileDMOAccretionFlowShi2016: ``darkMatterProfileDMOAccretionFlowShi2016`` -------------------------------------------- A dark matter profile class which builds :galacticus-class:`massDistributionShi2016` objects to model accretion flows using the model of :cite:t:`shi_outer_2016`. **Methods** * ``solve`` — Solve for the structure of the accretion flow. **Parameters** * ``[scaleFactorVelocity]`` (real; default ``1.0d0``) — A dimensionless multiplicative scale factor applied to the inflow velocities computed from the :cite:t:`shi_outer_2016` splashback and accretion flow model, allowing calibration of the infall velocity amplitude relative to the theoretical prediction. .. _physics-darkMatterProfileDMOBurkert: ``darkMatterProfileDMOBurkert`` ------------------------------- A dark matter only profile class which builds :galacticus-class:`massDistributionBurkert` objects to compute the :cite:p:`burkert_structure_1995` density profile. **Methods** * ``timeFreefallTabulate`` — Tabulate the freefall time as a function of radius in a scale-free Burkert mass distribution. .. _physics-darkMatterProfileDMOCuspNFW: ``darkMatterProfileDMOCuspNFW`` ------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionCuspNFW` objects to implement the cusp-NFW density profile :cite:p:`delos_cusp-halo_2025`, normalized such that the total mass of the :term:`node` is enclosed with the virial radius and with the scale length :math:`r_\mathrm{s}`. **Parameters** * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion. * ``[velocityDispersionUseSeriesExpansion]`` (boolean; default ``.true.``) — If ``true``, radial velocity dispersion is computed using series expansion (but only for the case of :math:`y=0`, i.e. an NFW profile). .. _physics-darkMatterProfileDMODecaying: ``darkMatterProfileDMODecaying`` -------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionSphericalDecaying` objects to account for dark matter particle decays in some other dark matter profile. **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** * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion. * ``[toleranceRelativePotential]`` (real; default ``1.0d-3``) — The relative tolerance to use in numerical solutions for the gravitational potential. * ``[tolerateEnclosedMassIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[tolerateVelocityMaximumFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to find the radius of the maximum circular velocity. * ``[toleratePotentialIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to compute the potential. .. _physics-darkMatterProfileDMOEinasto: ``darkMatterProfileDMOEinasto`` ------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionEinasto` objects to compute the Einasto density profile (e.g. :cite:author:`cardone_spherical_2005` :cite:year:`cardone_spherical_2005`), normalized such that the total mass of the :term:`node` is enclosed with the virial radius and with the characteristic length :math:`r_{-2} = r_\mathrm{virial}/c` where :math:`c` is the halo concentration (see :galacticus-class:`darkMatterProfileConcentration`). The shape parameter, :math:`\alpha`, is set using the density profile shape method (see :galacticus-class:`darkMatterProfileShape`). **Methods** * ``timeFreefallTabulate`` — Tabulate the freefall time as a function of radius in a scale-free Einasto mass distribution. * ``timeFreefallMinimum`` — Compute the minimum freefall time in a scale-free Einasto mass distribution. .. _physics-darkMatterProfileDMOFiniteResolution: ``darkMatterProfileDMOFiniteResolution`` ---------------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionSphericalFiniteResolution` objects to mimic the effects of finite resolution in an N-body simulation. **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. **Parameters** * ``[lengthResolution]`` (real) — The spatial resolution length scale (in Mpc) below which the underlying density profile is softened to a flat core, mimicking the finite force resolution of an N-body simulation. * ``[massResolution]`` (real) — The mass resolution :math:`\Delta M` (in :math:`\mathrm{M}_\odot`) of the N-body simulation, representing the minimum halo mass that can be resolved; profiles of halos near this limit are softened to account for particle discreteness effects. * ``[resolutionIsComoving]`` (boolean) — If true, the resolution length is assumed to be fixed in comoving coordinates, otherwise in physical coordinates. * ``[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-darkMatterProfileDMOFiniteResolutionNFW: ``darkMatterProfileDMOFiniteResolutionNFW`` ------------------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionSphericalFiniteResolutionNFW` objects to mimic a finite resolution to an NFW density profile. **Methods** * ``radiusEnclosingDensityTabulate`` — Tabulate the radius enclosing a given density as a function of density and core radius. * ``radiusEnclosingMassTabulate`` — Tabulate the radius enclosing a given mass as a function of density and core radius. * ``energyTabulate`` — Tabulate the energy as a function of concentration and core radius. * ``densityScaleFree`` — The density of the profile in units where the mass and scale length are both 1. * ``massEnclosedScaleFree`` — The mass enclosed of the profile in units where the mass and scale length are both 1. * ``storeDensityTable`` — Store the tabulated radius-enclosing-density to file. * ``restoreDensityTable`` — Attempt to restore the tabulated radius-enclosing-density from file, returning true if successful. * ``storeMassTable`` — Store the tabulated radius-enclosing-mass to file. * ``restoreMassTable`` — Attempt to restore the tabulated radius-enclosing-mass from file, returning true if successful. * ``storeEnergyTable`` — Store the tabulated energy to file. * ``restoreEnergyTable`` — Attempt to restore the tabulated energy from file, returning true if successful. * ``suffix`` — Return a file name suffix (containing a source code digest. **Parameters** * ``[lengthResolution]`` (real) — The spatial resolution length scale (in Mpc) of the N-body simulation being modeled; sets the minimum effective radius below which the NFW density profile is softened. * ``[massResolution]`` (real) — The mass resolution :math:`\Delta M` (in :math:`\mathrm{M}_\odot`) of the N-body simulation, used to determine the finite-resolution softening of the NFW profile for halos near the resolution limit. * ``[resolutionIsComoving]`` (boolean) — If true, the resolution length is assumed to be fixed in comoving coordinates, otherwise in physical coordinates. * ``[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-darkMatterProfileDMOHeated: ``darkMatterProfileDMOHeated`` ------------------------------ A dark matter profile DMO class which builds :galacticus-class:`massDistributionSphericalHeated` objects to account for heating of some other dark matter profile. **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. **Parameters** * ``[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. * ``[velocityDispersionApproximate]`` (boolean; default ``.true.``) — If ``true``, radial velocity dispersion is computed using an approximate method in which we assume that :math:`\sigma_\mathrm{r}^2(r) \rightarrow \sigma_\mathrm{r}^2(r) - (2/3) \epsilon(r)`, where :math:`\epsilon(r)` is the specific heating energy. If ``false`` then radial velocity dispersion is computed by numerically solving the Jeans equation. * ``[tolerateEnclosedMassIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[tolerateVelocityDispersionFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to compute the velocity dispersion. * ``[tolerateVelocityMaximumFailure]`` (boolean; default ``.false.``) — If true, tolerate failures to find the radius of the peak in the rotation curve. * ``[toleratePotentialIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to compute the potential. * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[fractionRadiusFinalSmall]`` (real; default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (real; default ``1.0d-3``) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting. .. _physics-darkMatterProfileDMOHeatedMonotonic: ``darkMatterProfileDMOHeatedMonotonic`` --------------------------------------- A dark matter profile DMO class in which builds :galacticus-class:`massDistributionSphericalHeatedMonotonic` objects to account for heating of some other dark matter profile. **Methods** * ``computeSolution`` — Compute a solution for the heated profile. **Parameters** * ``[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. * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles. .. _physics-darkMatterProfileDMOIsothermal: ``darkMatterProfileDMOIsothermal`` ---------------------------------- A dark matter profile DMO class in which builds :galacticus-class:`massDistributionIsothermal` objects to implement isothermal density profiles, normalized such that the total mass of the :term:`node` is enclosed with the virial radius. .. _physics-darkMatterProfileDMOMultiple: ``darkMatterProfileDMOMultiple`` -------------------------------- A dark matter profile DMO class in which the density profiles of the host halo and the satellite halo can be set separately to any other ``darkMatterProfileDMO`` available. .. _physics-darkMatterProfileDMONFW: ``darkMatterProfileDMONFW`` --------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionNFW` objects to implement the :term:`NFW` density profile :cite:p:`navarro_universal_1997`, normalized such that the total mass of the :term:`node` is enclosed with the virial radius and with the scale length :math:`r_\mathrm{s} = r_\mathrm{virial}/c` where :math:`c` is the halo concentration (see :galacticus-class:`darkMatterProfileConcentration`). **(Default implementation)** **Methods** * ``radiusEnclosingDensityTabulate`` — Tabulate the radius enclosing a given density as a function of density and core radius. * ``radiusEnclosingMassTabulate`` — Tabulate the radius enclosing a given mass as a function of density and core radius. * ``energyTabulate`` — Tabulate the energy as a function of concentration and core radius. * ``densityScaleFree`` — The density of the profile in units where the mass and scale length are both 1. * ``massEnclosedScaleFree`` — The mass enclosed of the profile in units where the mass and scale length are both 1. * ``storeDensityTable`` — Store the tabulated radius-enclosing-density to file. * ``restoreDensityTable`` — Attempt to restore the tabulated radius-enclosing-density from file, returning true if successful. * ``storeMassTable`` — Store the tabulated radius-enclosing-mass to file. * ``restoreMassTable`` — Attempt to restore the tabulated radius-enclosing-mass from file, returning true if successful. * ``storeEnergyTable`` — Store the tabulated energy to file. * ``restoreEnergyTable`` — Attempt to restore the tabulated energy from file, returning true if successful. * ``suffix`` — Return a file name suffix (containing a source code digest. **Parameters** * ``[velocityDispersionUseSeriesExpansion]`` (boolean; default ``.true.``) — If ``true``, radial velocity dispersion is computed using series expansion. .. _physics-darkMatterProfileDMOPenarrubia2010: ``darkMatterProfileDMOPenarrubia2010`` -------------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionZhao1996` to implement the :cite:t:`penarrubia_impact_2010` density profile. **Parameters** * ``[alpha]`` (real) — The parameter :math:`\alpha` of the :cite:t:`zhao_analytical_1996` dark matter density profile. * ``[beta]`` (real) — The parameter :math:`\beta` of the :cite:t:`zhao_analytical_1996` dark matter density profile. * ``[betaStripped]`` (real; default ``5.0d0``) — The parameter :math:`\beta_\mathrm{stripped}` of the :cite:t:`penarrubia_impact_2010` dark matter density profile. This is the :math:`\beta` exponent of the :cite:t:`zhao_analytical_1996` dark matter density profile for cases where significant stripping of the profile has occurred. * ``[gamma]`` (real) — The parameter :math:`\gamma` of the :cite:t:`zhao_analytical_1996` dark matter density profile. * ``[muRadius]`` (real) — The parameter :math:`\mu` of the :cite:t:`penarrubia_impact_2010` tidal track for :math:`r_\mathrm{max}`. * ``[etaRadius]`` (real) — The parameter :math:`\eta` of the :cite:t:`penarrubia_impact_2010` tidal track for :math:`r_\mathrm{max}`. * ``[muVelocity]`` (real) — The parameter :math:`\mu` of the :cite:t:`penarrubia_impact_2010` tidal track for :math:`V_\mathrm{max}`. * ``[etaVelocity]`` (real) — The parameter :math:`\eta` of the :cite:t:`penarrubia_impact_2010` tidal track for :math:`V_\mathrm{max}`. .. _physics-darkMatterProfileDMOSIDMCoreNFW: ``darkMatterProfileDMOSIDMCoreNFW`` ----------------------------------- Cored-NFW dark matter halo profiles to approximate the effects of SIDM based on the model of :cite:t:`jiang_semi-analytic_2023` are built via :galacticus-class:`massDistributionSphericalSIDMCoreNFW` objects. **Methods** * ``radiusCore`` — Computes the core radius of halo. **Parameters** * ``[factorRadiusCore]`` (real; default ``0.45d0``) — The factor :math:`\alpha` appearing in the definition of the core radius, :math:`r_\mathrm{c}=\alpha r_1` where :math:`r_1` is the radius at which an SIDM particle has had, on average, 1 interaction. .. _physics-darkMatterProfileDMOSIDMIsothermal: ``darkMatterProfileDMOSIDMIsothermal`` -------------------------------------- Dark matter halo profiles for self-interacting dark matter following the "isothermal" model of :cite:t:`jiang_semi-analytic_2023` are built via the :galacticus-class:`massDistributionSphericalSIDMIsothermal` mass distribution class. .. _physics-darkMatterProfileDMOSIDMParametric: ``darkMatterProfileDMOSIDMParametric`` -------------------------------------- Dark matter halo profiles for self-interacting dark matter following the "SIDM parametric" model of :cite:t:`yang_parametric_2024` are built via the :galacticus-class:`massDistributionSIDMParametricProfile` class. **Parameters** * ``[beta]`` (real; default ``4.0d0``) — The value :math:`\beta` in a SIDMParametric-model mass distribution. .. _physics-darkMatterProfileDMOSolitonNFW: ``darkMatterProfileDMOSolitonNFW`` ---------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionSolitonNFW` objects to implement the :term:`FDM` profile. The core-halo mass relation and core radius are computed following :cite:t:`chan_diversity_2022`, while the core density normalization follows :cite:t:`schive_understanding_2014`. **Methods** * ``computeProperties`` — Compute properties of the mass distribution. * ``calculationReset`` — Reset memoized calculations. **Parameters** * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion. * ``[scatterFractional]`` (real; default ``0.5d0``) — The fractional scatter in the solitonic core-halo mass relation (default corresponds to a 50% fractional scatter). .. _physics-darkMatterProfileDMOSolitonNFWHeated: ``darkMatterProfileDMOSolitonNFWHeated`` ---------------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionSolitonNFWHeated` objects to implement the :term:`FDM` profile. The inner region follows the soliton solution, while the outer region transitions to a heated NFW envelope. The core-halo mass relation and core radius are computed following :cite:t:`chan_diversity_2022`, while the core density normalization follows :cite:t:`schive_understanding_2014`. **Methods** * ``computeProperties`` — Compute properties of the mass distribution. * ``calculationReset`` — Reset memoized calculations. **Parameters** * ``[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. * ``[tolerateEnclosedMassIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to find the mass enclosed as a function of radius. * ``[tolerateVelocityMaximumFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate failures to find the radius of the maximum circular velocity. * ``[toleratePotentialIntegrationFailure]`` (boolean; default ``.false.``) — If ``true``, tolerate numerical failures when computing the gravitational potential of the heated soliton-NFW dark matter profile (e.g. due to extreme heating), allowing the calculation to proceed with a fallback result. * ``[velocityDispersionApproximate]`` (boolean; default ``.true.``) — If ``true``, radial velocity dispersion is computed using an approximate method in which we assume that :math:`\sigma_\mathrm{r}^2(r) \rightarrow \sigma_\mathrm{r}^2(r) - (2/3) \epsilon(r)`, where :math:`\epsilon(r)` is the specific heating energy. If ``false`` then radial velocity dispersion is computed by numerically solving the Jeans equation. * ``[toleranceRelativeVelocityDispersion]`` (real; default ``1.0d-6``) — The relative tolerance to use in numerical solutions for the velocity dispersion. * ``[toleranceRelativeVelocityDispersionMaximum]`` (real; default ``1.0d-3``) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion. * ``[fractionRadiusFinalSmall]`` (real; default ``1.0d-3``) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted. * ``[toleranceRelativePotential]`` (real; default ``1.0d-3``) — The relative tolerance used in numerical ODE solutions for the gravitational potential of the heated soliton-NFW composite profile. * ``[scatterFractional]`` (real; default ``0.5d0``) — The fractional scatter in the solitonic core-halo mass relation (default corresponds to a 50% fractional scatter). .. _physics-darkMatterProfileDMOTruncated: ``darkMatterProfileDMOTruncated`` --------------------------------- Truncated dark matter halo profiles are built via the :galacticus-class:`massDistributionSphericalTruncated` mass distribution class. **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. **Parameters** * ``[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. * ``[radiusFractionalTruncateMinimum]`` (real; default ``2.0d0``) — The minimum radius (in units of the virial radius) to begin truncating the density profile. * ``[radiusFractionalTruncateMaximum]`` (real; default ``4.0d0``) — The maximum radius (in units of the virial radius) to finish truncating the density profile. .. _physics-darkMatterProfileDMOTruncatedExponential: ``darkMatterProfileDMOTruncatedExponential`` -------------------------------------------- Exponentially truncated dark matter halo profiles :cite:t:`kazantzidis_2006` are constructed via the :galacticus-class:`massDistributionSphericalTruncatedExponential` mass distribution class. **Parameters** * ``[nonAnalyticSolver]`` (string; one of ``fallThrough``, ``numerical``; default ``fallThrough``) — Selects how solutions are computed when no analytic solution is available. * ``[radiusFractionalDecay]`` (real; default ``1.0d0``) — The truncation scale radius expressed as a fraction of the virial radius; the exponentially truncated dark matter profile decays as :math:`\exp(-r/r_\mathrm{trunc})` for :math:`r > r_\mathrm{trunc} =` ``[radiusFractionalDecay]`` :math:`\times r_\mathrm{virial}`, suppressing the profile at large radii. .. _physics-darkMatterProfileDMOZhao1996: ``darkMatterProfileDMOZhao1996`` -------------------------------- A dark matter profile DMO class which builds :galacticus-class:`massDistributionZhao1996` objects. **Methods** * ``timeFreefallTabulate`` — Tabulate the freefall time as a function of radius in a scale-free Zhao1996 mass distribution. **Parameters** * ``[alpha]`` (real) — The parameter :math:`\alpha` of the Zhao1996 profile. * ``[beta]`` (real) — The parameter :math:`\beta` of the Zhao1996 profile. * ``[gamma]`` (real) — The parameter :math:`\gamma` of the Zhao1996 profile.