Halos
Profile
Fourier-space profile: the Fourier transform ρ(k) of a spherically symmetric profile is given by:
where \(j_{0}(kr)\) is the order-0 spherical Bessel function.
Projected 2D profile: this is the profile integrated along the line-of-sight direction:
Note that this can be rewritten in terms of the Fourier-space profile:
where \(J_{n}\) is the order-\(n\) cylindrical (or standard) Bessel function.
Cumulative surface density: this is the average projected profile within a circle of radius \(r\) around the center of the halo:
This can also be rewritten in terms of the Fourier profile as:
NFW Profle
The NFW profile has the form:
where \(\rho_s\) and \(r_s\) are the inner density and the scale radius. The latter is related to the spherical overdensity radius \(r_\Delta\) through the concentration parameter: \(r_\Delta = c \, r_s\). See Navarro et al. (1997) for further details.
The mass of the NFW profile is not well-defined, since its integral diverges at large \(r\). For this reason, it is common to consider the truncated profile, which is assumed to be zero for \(r > r_\Delta\). In that case, the normalization \(\rho_s\) is given by:
By default, this profile is truncated at \(r = r_\Delta(M)\). Analytical solutions exist for \(\rho(k)\), \(\Sigma(r)\), and \(\Sigma(<r)\) in the case of the NFW profile.
The Fourier-space version of the NFW profile is also provided. This uses sine and cosine integrals to analytically transform the profile into Fourier space:
where \(\gamma\approx 0.57721566490\) is the Euler–Mascheroni constant. For large values of \(x\) (\(x > 10\)), we adopt the following approximation to make sure that the integrals are stable:
Hernquist Profile
The Hernquist profile has a similar form to the NFW profile but is steeper at larger radii:
where \(r_s\) is related to the comoving spherical overdensity halo radius \(r_\Delta(M)\) through the concentration parameter \(c(M)\) as
and the normalization \(\rho_0\) is
By default, this profile is truncated at \(r = r_\Delta(M)\). See Hernquist (1990) for further details.
Einasto
Einasto (1965) profile.
where \(r_s\) is related to the comoving spherical overdensity halo radius \(r_\Delta(M)\) through the concentration parameter \(c(M)\) as
and the normalization \(\rho_0\) is
where \(\gamma\) is the lower incomplete gamma function.
The index \(\alpha\) can be a free parameter or dependent on halo mass and redshift. In the latter case, we use the parameterization of Diemer & Kravtsov (2014).
Concentration
Bhattacharya et al. (2013)
The concentration parameter depends on the growth factor \(g(z)\). The peak height of perturbations is given by:
where:
- \(\nu\) is the peak height.
- \(\sigma_{M}\) is the variance of the density field at mass scale \(M\).
The concentration parameter is:
where:
- \(c(M, z)\) is the concentration parameter.
-
\(A, B, C\) are empirical constants, depending on the mass definition:
- Virial mass, \(M_{\text{vir}}\): \(A = 7.7, B = 0.9, C = -0.29\)
- 200 mean density, \(M_{200m}\): \(A = 9.0, B = 1.15, C = -0.29\)
- 200 critical density, \(M_{200c}\): \(A = 5.9, B = 0.54, C = -0.35\)
The final concentration is computed as:
See Bhattacharya et al. (2013) for further details.
Diemer et al. (2015)
The Lagrangian radius \(R\) of a halo is computed from its mass, \(M\). The characteristic wavenumber associated with the halo is:
where:
- \(k_R\) is the characteristic wavenumber.
- \(\kappa = 1.0\) is a dimensionless parameter (default).
The slope of the logarithmic matter power spectrum is:
where \(P(k)\) is the linear matter power spectrum. The slope is evaluate at the computed \(k_R\).
The peak height of density fluctuations is:
The baseline concentration is:
The transition peak height \(\nu_0\) is:
where:
- \(\phi_0 = 6.58\), \(\phi_1 = 1.27\) are empirical parameters.
- \(\eta_0 = 7.28\), \(\eta_1 = 1.56\) are empirical parameters.
The concentration is given by:
where:
- \(\alpha = 1.08\), \(\beta = 1.77\) are power-law exponents.
- The function interpolates between low-\(\nu\) and high-\(\nu\) behavior.
See Diemer et al. (2015) for further details.
Duffy et al. (2008)
The concentration-mass relation from Duffy et al. (2008) is given by:
where:
- \(c(M, z)\) is the halo concentration.
- \(M_{\text{pivot}}\) is a reference mass set to \(2 \times 10^{12} h^{-1} M_{\odot}\).
- \(a\) is the scale factor.
- \(A, B, C\) are empirical parameters that depend on the mass definition:
- Virial mass (\(M_{\text{vir}}\)): \(A = 7.85, B = -0.081, C = -0.71\)
- 200 mean density (\(M_{200m}\)): \(A = 10.14, B = -0.081, C = -1.01\)
- 200 critical density (\(M_{200c}\)): \(A = 5.71, B = -0.084, C = -0.47\)
Klypin et al. (2011)
The concentration-mass relation from Klypin et al. (2011) is given by:
where:
- \(c(M, z)\) is the halo concentration.
- \(M\) is the halo mass (in solar masses).
- \(M_{\text{pivot}}\) is a reference mass:
- h is the dimensionless Hubble parameter.
This equation describes how the concentration of dark matter halos varies with mass, but it does not explicitly depend on redshift.
Prada et al. (2012)
The concentration-mass relation from Prada et al. (2012) is given by:
where
and the modified variance is:
where
and
- \(a = \frac{1}{1+z}\) is the scale factor,
- \(\Omega_{\text{de}}\) and \(\Omega_m\) are the dark energy and matter density parameters,
- \(\sigma_M\) is the mass variance,
- \(b_0(x)\) and \(b_1(x)\) are computed using:
The expression for \(c_{\min}\) is:
The model parameters are:
- \(c_0 = 3.681\), \(c_1 = 5.033\), \(\alpha = 6.948\), \(x_0 = 0.424\)
- \(i_0 = 1.047\), \(i_1 = 1.646\), \(\beta = 7.386\), \(x_1 = 0.526\)
This formulation accounts for the evolution of halo concentration based on mass variance and redshift.
Ishiyama et al. (2021)
The concentration-mass relation from Ishiyama et al. (2021) is given by:
where:
The peak height is given by:
where:
- \(\delta_c\) is the critical overdensity for collapse and
- \(\sigma_M\) is the mass variance.
The effective spectral index is:
\(\alpha_{\text{eff}}\) is the growth rate factor and the scaling factors are given by:
\(G^{-1}(\nu)\) is the inverse of \(G(x)\), obtained by root finding, given \(n_{\text{eff}}\) and \(V\):
where \(a_0, a_1, b_0, b_1, c_{\alpha}\) are model parameters based on mass definition, relaxation state, and method. This formulation accounts for the mass variance, spectral index, and structure growth in determining the halo concentration.
Halo Mass Function
The halo mass function is defined as
where \(n\) is the number density of halos of a give mass \(M\) associated with the rms variance of the matter density field, \(\sigma^{2}_{M}\), at a given redshift. \(f\) is a fitting function. The most important function is to precompute \(\sigma_{M}\) as function of mass and scale factor. To initialise a mass function, we can simply do
A list of the following mass functions are supported.
Angulo et al. (2012)
The expression as derived by Angulo et al. (2012) is
where \(\sigma_{M}\) is the variance of the linear density field within a top-hat filter containing mass \(M\).
Bocquet et al. (2016)
As described by Bocquet et al. (2016), the halo mass function is given by:
where:
- \(\sigma_{M}\) is the standard deviation of the linear density field at mass scale \(M\).
- \(A, a, b, c\) are redshift-dependent parameters.
Redshift Dependence of Parameters
The parameters evolve with redshift as:
where \((A_0, a_0, b_0, c_0, A_z, a_z, b_z, c_z)\) depend on the overdensity definition. See Table 2 in Bocquet et al. (2016) for the fitted parameters.
Converting \(M_{200c}\) to \(M_{200m}\)
The correction factors are:
where:
Applying this correction:
Converting \(M_{500c}\) to \(M_{200m}\)
The correction factors are:
where:
Applying this correction:
Despali et al. (2016)
The function \(f(\sigma_{M})\) is computed as:
where:
- \(\nu'\) is the ellipsoidal collapse correction factor:
- \(\delta_c\) is the critical density threshold for collapse, computed using the Nakamura & Suto (1997) prescription.
- \(\sigma_{M}\) is the variance of the linear density field at mass \(M\).
- \(A(x)\), \(a(x)\), and \(p(x)\) are polynomial functions of the logarithmic ratio of halo overdensity to virial overdensity:
The polynomial functions are given by:
The coefficients \(A_0, A_1, a_0, a_1, a_2, p_0, p_1, p_2\) depend on whether ellipsoidal collapse corrections are applied.
Ellipsoidal collapse corrections
- \(A_0 = 0.3953\), \(A_1 = -0.1768\)
- \(a_0 = 0.7057\), \(a_1 = 0.2125\), \(a_2 = 0.3268\)
- \(p_0 = 0.2206\), \(p_1 = 0.1937\), \(p_2 = -0.04570\)
No ellipsoidal collapse corrections
- \(A_0 = 0.3292\), \(A_1 = -0.1362\)
- \(a_0 = 0.7665\), \(a_1 = 0.2263\), \(a_2 = 0.4332\)
- \(p_0 = 0.2488\), \(p_1 = 0.2554\), \(p_2 = -0.1151\)
Tinker et al. (2008)
The multiplicity function \(f(\sigma_{M})\) in the Tinker et al. (2008) mass function is given by:
where:
- \(\sigma_{M}\) is the variance of the density field on the mass scale.
- \(\Delta\) is the matter overdensity corresponding to a given mass definition.
- \(\hat{\delta}\equiv\log_{10} \Delta\) is used for interpolating fitting parameters.
The fitting parameters are interpolated based on the logarithm of the overdensity:
where:
- \(a\) is the scale factor.
- \(\alpha, \beta, \gamma, \Phi\) are interpolated from tabulated values in the original paper.
Tinker et al. (2010)
The function \(f(\sigma_{M})\) in the Tinker et al. (2010) mass function is given by:
where the functional form of \(f(\nu)\) is:
Definitions of Parameters:
- \(\nu\) is the peak height, defined as:
where \(\delta_c\) is the critical density for spherical collapse, and \(\sigma_{M}\) is the variance of the density field.
- The overdensity \(\Delta\) is converted to the matter overdensity \(\Delta_m\), and its logarithm is used for interpolating fitting parameters:
- The fitting parameters are interpolated based on the logarithm of the overdensity:
where \(a\) is the scale factor.
Redshift Evolution Correction
If redshift evolution normalization is applied, the amplitude \(A\) is corrected by:
where:
- \(z = \frac{1}{a} - 1\) is the redshift,
- \(p = p(\hat{\delta})\),
- \(q = q(\hat{\delta})\).
Final Expression
Watson et al. (2013)
The Watson et al. (2013) mass function provides separate parameterizations for Friends-of-Friends (FoF) and Spherical Overdensity (S.O.) mass definitions.
Friends-of-Friends (FoF) Mass Function
For the FoF mass function, the function \(f(\sigma_{M})\) is given by:
where the fitting parameters are:
- \(A = 0.282\)
- \(a = 2.163\)
- \(b = 1.406\)
- \(c = 1.210\)
Spherical Overdensity (S.O.) Mass Function
For the S.O. mass function, the parameters evolve with redshift, and an additional correction factor is applied for overdensities other than \(178\). The base mass function is:
where the parameters are:
For \(z = 0\) (\(a = 1\)):
- \(A = 0.194\)
- \(a = 1.805\)
- \(b = 2.267\)
- \(c = 1.287\)
For \(z > 6\) (\(a < \frac{1}{7}\)):
- \(A = 0.563\)
- \(a = 3.810\)
- \(b = 0.874\)
- \(c = 1.453\)
For intermediate redshifts:
where \(\Omega_m(a)\) is the matter density fraction at scale factor \(a\).
Overdensity Correction Factor
For overdensities \(\Delta \neq 178\), a correction factor \(\Gamma\) is applied:
where \(\hat{\Delta} \equiv\frac{\Delta}{178}\) and
The final S.O. mass function is:
where \(f_{\text{base}}(\sigma_{M})\) is the base mass function.
Final Expression
For a given overdensity definition:
This function models the fraction of mass collapsed into halos at a given mass scale.
Sheth et al. (1999)
The Sheth et al. (1999) mass function is given by:
where:
- \(\nu\) is the peak height:
- \(\delta_c\) is the critical overdensity for collapse.
- \(\sigma_{M}\) is the mass variance.
- \(A = 0.21615998645\) is the normalization constant.
- \(p = 0.3\) is the slope parameter.
- \(\lambda = 0.707\) is the scaling factor.
If use_custom_delta_c is set to True, then \(\delta_c\) follows the fit from Nakamura & Suto (1997). Otherwise, it uses the Einstein-de Sitter (EdS) approximation.
Press & Schechter (1974)
The Press & Schechter (1974) mass function is given by:
where:
- \(\nu\) is the peak height, defined as:
- \(\delta_c\) is the critical overdensity for collapse, which can be obtained from the Einstein-de Sitter (EdS) approximation.
Jenkins et al. (2001)
The Jenkins et al. (2001) mass function is given by:
where:
- \(A = 0.315\) is the amplitude.
- \(\gamma = 0.61\) is the shape parameter.
- \(\alpha = 3.8\) is the steepness parameter.
- \(\sigma_{M}\) is the standard deviation of the linear density field.
Halo Bias Function
Similar to CCL, we implement the following four halo bias functions:
- Sheth & Tormen (1999)
- Sheth et al. (2001)
- Tinker et al. (2010)
- Bhattacharya et al. (2011)
Sheth & Tormen (1999)
The halo bias equation used in the Sheth & Tormen (1999) model is given by:
where
- \(\nu=\frac{\delta_{c}}{\sigma_{M}}\) is the peak height,
- \(\delta_{c}\) is the critical density contrast for spherical collapse,
- \(\sigma_{M}\) is the variance of mass fluctuations,
- \(a=0.707\) is a scaling factor and
- \(p=0.3\) is a power-law index.
Sheth et al. (2001)
The halo bias equation used in the Sheth et al. (2001) model is given by:
where
and
- \(\nu=\frac{\delta_{c}}{\sigma_{M}}\) is the peak height,
- \(\delta_{c}\) is the critical density contrast for spherical collapse,
- \(\sigma_{M}\) is the mass variance,
- \(a=0.707\) is a scaling factor,
- \(b=0.5\) and \(c=0.6\) are fitting parameters.
Tinker et al. (2010)
The halo bias formula from Tinker et al. 2010 is based on the following equation:
where
- \(\delta_{c}\) is the critical density contrast,
- \(\sigma_{M}\) is the mass variance for the halo of mass \(M\),
- \(A\), \(B\), \(C\), \(a\), \(b\), and \(c\) are parameters derived from fitting to simulations. See Table 2 in the paper for the definitions of these quantities.
Bhattacharya et al. (2011)
The halo bias equation used in Bhattacharya et al. (2011) model is given by
where - \(\nu = \frac{\delta_{c}}{\sigma_{M}}\) is the peak height, - \(\delta_{c}\) is the critical density contrast for spherical collapse, - \(\sigma_{M}\) is the variance of mass functions, - \(A(a)\) is the scale dependent factor: $$ A(a) = A_{0}a^{A_{z}} $$ with \(A_{0}=0.788\) and \(A_{z}=0.01\). - the quantity \(B(\nu, a)\) is given by:
- \(p=0.807\) and \(q=1.795\) are fitting parameters.
See Equation 18 in the paper.
Computes the variance of the linear density field (sigma_R) for a given smoothing scale R and scale factor a.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cosmo
|
Cosmology
|
Cosmological parameter object. |
required |
R
|
float
|
Smoothing radius in comoving Mpc. |
required |
a
|
float
|
Scale factor. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
float |
float
|
The square root of the variance sigma(R). |
Source code in jax_cosmo/halos/hmbase.py
Computes the variance of the matter density field (sigma) for given halo masses and scale factors.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
log_halomass
|
ndarray
|
Logarithm of halo masses. |
required |
a
|
Union[float, ndarray]
|
Scale factor(s). |
required |
interpolator
|
Interpolator2D
|
Precomputed interpolator for sigma. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
jnp.ndarray: The computed sigma values. |
Source code in jax_cosmo/halos/hmbase.py
Computes the derivative of sigma with respect to log mass.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
log_halomass
|
ndarray
|
Logarithm of halo masses. |
required |
a
|
Union[float, ndarray]
|
Scale factor(s). |
required |
interpolator
|
Interpolator2D
|
Precomputed interpolator for sigma. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
jnp.ndarray: The computed derivative values. |
Source code in jax_cosmo/halos/hmbase.py
Computes the variance of the matter density field (sigma) on a grid of mass and scale factor values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cosmo
|
Cosmology
|
Cosmology object containing necessary cosmological parameters. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Interpolator2D |
A 2D interpolator object that allows evaluation of sigma at arbitrary mass and scale factor values. |
Notes
- The function constructs a 2D grid in log-mass and scale factor space.
- It computes sigma using the sigmaR function at each grid point.
- The final result is a bicubic 2D interpolator for efficient queries.