Dark Matter Halo Mass Accretion Histories

Class providing dark matter halo mass accretion histories (MAHs), i.e. the mass of a halo’s main progenitor as a function of time or redshift. The MAH encodes how rapidly a halo assembled its mass and is used to set the structural properties of halos via concentration models, to compute merger rates, and to track the formation redshift of halos.

Default implementation: darkMatterHaloMassAccretionHistoryWechsler2002

Methods

timedouble precision

Returns the cosmological time (in Gyr) at which the main progenitor of the halo in node first reached the specified halo mass, found by root-finding on the mass accretion history.

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

  • double precision , intent(in ) :: mass

massdouble precision

Returns the halo mass (in \(\mathrm{M}_\odot\)) of the main progenitor of the halo in node at the specified cosmological time, evaluated from the parametric mass accretion history model.

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

  • double precision , intent(in ) :: time

massAccretionRatedouble precision

Returns the halo mass accretion rate (in \(\mathrm{M}_\odot\) Gyr\(^{-1}\)) of the main progenitor of the halo in node at the specified cosmological time, computed as the time derivative of the mass accretion history.

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

  • double precision , intent(in ) :: time

darkMatterHaloMassAccretionHistoryCorrea2015

Dark matter halo mass accretion histories using the Correa et al. (2015) algorithm.

Parameters

  • [A] (default 887.0d0) — The parameter \(A\) appearing in eqn. (17) of Correa et al. (2015).

darkMatterHaloMassAccretionHistoryDiemer2020

Dark matter halo mass accretion histories computed using the fitting function of Diemer (2020).

darkMatterHaloMassAccretionHistoryHearin2021

Computes dark matter halo mass accretion histories using the differentiable rolling power-law model of Hearin et al. (2021), in which the mass growth rate transitions smoothly between early- and late-time power laws. The early- and late-time indices are set by [powerLawIndexEarly] and [powerLawIndexLate], the transition rate by [rateRollOver], and the time of peak mass by [timeMaximum].

Methods

  • powerLawIndex — Return the power law index at the given time.

  • powerLawIndexDerivative — Return the derivative of the power law index with respect to time.

  • timeZeroLogarithmic — Return the \(\log_{10}(t_0)\) parameter.

  • massMaximum — Return the maximum mass in the mass accretion history.

  • sigmoid — The sigmoid interpolation function.

  • powerLawIndexEarly_ — Return the early-time power law index.

  • powerLawIndexLate_ — Return the late-time power law index.

  • rateRollOver_ — Return the roll-over rate.

  • timeMaximum_ — Return the time of maximum mass.

Parameters

  • [powerLawIndexEarly] — The power law index governing halo mass growth at early times in the Hearin et al. (2021) rolling power-law MAH model; positive values correspond to a rapidly assembling halo at high redshift.

  • [powerLawIndexLate] — The power law index governing halo mass growth at late times in the Hearin et al. (2021) rolling power-law MAH model; negative values correspond to halos that have ceased mass growth or are losing mass via tidal stripping.

  • [rateRollOver] — The roll-over rate parameter \(k\) in the Hearin et al. (2021) MAH model, controlling how rapidly the power law index transitions from its early-time to late-time value; larger \(k\) gives a sharper transition.

  • [timeMaximum] — The cosmological time (in Gyr) at which the halo reaches its peak mass in the Hearin et al. (2021) MAH model, marking the transition between mass assembly and mass loss regimes.

darkMatterHaloMassAccretionHistoryHearin2021Stochastic

Computes dark matter halo mass accretion histories using the rolling power-law model of Hearin et al. (2021) with stochastic sampling of the early- and late-time power-law indices from population distributions. The fraction of late-forming halos at low and high halo mass is set by [fractionLateLow] and [fractionLateHigh], and the roll-over rate by [rateRollOver].

Methods

  • sample — Sample parameters for the given node from the distribution function.

  • fractionLate — Return the fraction of late-forming halos.

Parameters

  • [fractionLateLow] (default 0.35d0) — The fraction of late-forming halos in the low halo mass limit.

  • [fractionLateHigh] (default 0.45d0) — The fraction of late-forming halos in the high halo mass limit.

  • [rateRollOver] (default 3.5d0) — The roll-over rate parameter \(k\) in the stochastic Hearin et al. (2021) MAH model, controlling how rapidly the power law index transitions from its early-time to late-time value across the population.

  • [meanUEarlyLowEarlyForming] (default meanDefault(massLow%ID,formationEarly%ID,parameterUEarly%ID)) — The mean low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [meanUEarlyHighEarlyForming] (default meanDefault(massHigh%ID,formationEarly%ID,parameterUEarly%ID)) — The mean high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [meanUEarlyLowLateForming] (default meanDefault(massLow%ID,formationLate%ID,parameterUEarly%ID)) — The mean low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [meanUEarlyHighLateForming] (default meanDefault(massHigh%ID,formationLate%ID,parameterUEarly%ID)) — The mean high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [meanULateLowEarlyForming] (default meanDefault(massLow%ID,formationEarly%ID,parameterULate%ID)) — The mean low-mass limit of \(\log_{10}\) late-time power law index for early-forming halos.

  • [meanULateHighEarlyForming] (default meanDefault(massHigh%ID,formationEarly%ID,parameterULate%ID)) — The mean high-mass limit of \(\log_{10}\) late-time power law index for early-forming halos.

  • [meanULateLowLateForming] (default meanDefault(massLow%ID,formationLate%ID,parameterULate%ID)) — The mean low-mass limit of \(\log_{10}\) late-time power law index for late-forming halos.

  • [meanULateHighLateForming] (default meanDefault(massHigh%ID,formationLate%ID,parameterULate%ID)) — The mean high-mass limit of \(\log_{10}\) late-time power law index for late-forming halos.

  • [meanLog10TimeZeroLowEarlyForming] (default meanDefault(massLow%ID,formationEarly%ID,parameterLog10TimeZero%ID)) — The mean low-mass limit of \(\log_{10}\) \(t_0\) for early-forming halos.

  • [meanLog10TimeZeroHighEarlyForming] (default meanDefault(massHigh%ID,formationEarly%ID,parameterLog10TimeZero%ID)) — The mean high-mass limit of \(\log_{10}\) \(t_0\) for early-forming halos.

  • [meanLog10TimeZeroLowLateForming] (default meanDefault(massLow%ID,formationLate%ID,parameterLog10TimeZero%ID)) — The mean low-mass limit of \(\log_{10}\) \(t_0\) for late-forming halos.

  • [meanLog10TimeZeroHighLateForming] (default meanDefault(massHigh%ID,formationLate%ID,parameterLog10TimeZero%ID)) — The mean high-mass limit of \(\log_{10}\) \(t_0\) for late-forming halos.

  • [choleskyUEarlyUEarlyLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterUEarly%ID,parameterUEarly%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyUEarlyHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterUEarly%ID,parameterUEarly%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyUEarlyLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterUEarly%ID,parameterUEarly%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyUEarlyUEarlyHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterUEarly%ID,parameterUEarly%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyUEarlyULateLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterUEarly%ID,parameterULate%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyULateHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterUEarly%ID,parameterULate%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyULateLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterUEarly%ID,parameterULate%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyUEarlyULateHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterUEarly%ID,parameterULate%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyUEarlyLog10TimeZeroLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterUEarly%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyLog10TimeZeroHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterUEarly%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyUEarlyLog10TimeZeroLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterUEarly%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyUEarlyLog10TimeZeroHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterUEarly%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyULateULateLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterULate%ID,parameterULate%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyULateULateHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterULate%ID,parameterULate%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyULateULateLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterULate%ID,parameterULate%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyULateULateHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterULate%ID,parameterULate%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyULateLog10TimeZeroLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterULate%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyULateLog10TimeZeroHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterULate%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyULateLog10TimeZeroLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterULate%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyULateLog10TimeZeroHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterULate%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyLog10TimeZeroLog10TimeZeroLowEarlyForming] (default choleskyDefault(massLow%ID,formationEarly%ID,parameterLog10TimeZero%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyLog10TimeZeroLog10TimeZeroHighEarlyForming] (default choleskyDefault(massHigh%ID,formationEarly%ID,parameterLog10TimeZero%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for early-forming halos.

  • [choleskyLog10TimeZeroLog10TimeZeroLowLateForming] (default choleskyDefault(massLow%ID,formationLate%ID,parameterLog10TimeZero%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element low-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

  • [choleskyLog10TimeZeroLog10TimeZeroHighLateForming] (default choleskyDefault(massHigh%ID,formationLate%ID,parameterLog10TimeZero%ID,parameterLog10TimeZero%ID)) — The Cholesky matrix element high-mass limit of \(\log_{10}\) early-time power law index for late-forming halos.

darkMatterHaloMassAccretionHistoryMergerTreeBranching

Dark matter halo mass accretion histories computed from merger tree branching rates.

darkMatterHaloMassAccretionHistoryWechsler2002

A dark matter halo mass accretion history class in which the mass accretion history is given by (Wechsler et al., 2002):

\[M(t) = M(t_0) \exp \left( - 2 a_\mathrm{c} \left[ {a(t_0)\over a(t)}-1 \right] \right),\]

where \(t_0\) is some reference time and \(a_\mathrm{c}\) is a characteristic expansion factor defined by Wechsler et al. (2002) to correspond to the formation time of the halo (using the formation time definition of Bullock et al. 2001).

(Default implementation)

Methods

  • calculationReset — Reset memoized calculations.

  • expansionFactorAtFormation — Compute the formation expansion factor.

Parameters

  • [formationRedshiftCompute] (default .true.) — If true, compute formation redshift automatically for Wechsler et al. (2002) halo mass accretion histories.

  • [formationRedshift] — The formation redshift to use in Wechsler et al. (2002) halo mass accretion histories.

darkMatterHaloMassAccretionHistoryZhao2009

A dark matter halo mass accretion history class which uses the algorithm given by Zhao et al. (2009) to compute mass accretion histories. In particular, Zhao et al. (2009) give a fitting function for the quantity \(\mathrm{d} \ln \sigma(M)/\mathrm{d} \ln \delta_\mathrm{c}(t)\) for the dimensionless growth rate in a mass accretion history at time \(t\) and halo mass \(M\). This is converted to a dimensionful growth rate using

\[{\mathrm{d} M \over \mathrm{d} t} = \left({\mathrm{d} \ln \sigma(M) \over \mathrm{d} \ln M}\right)^{-1} \left({\mathrm{d} \delta_c(t) \over \mathrm{d} t}\right) \left( {M \over \delta_\mathrm{c}(t)} \right) \left({\mathrm{d} \ln \sigma(M) \over \mathrm{d} \ln \delta_\mathrm{c}(t)}\right).\]

This differential equation is then solved numerically to find the mass accretion history.