Halo mass function
Pylians provides the routine MF_theory
to compute the halo mass function of a given model. The arguments of this function are:
k_in, Pk_in, OmegaM, Masses, author, bins=10000, z=0, delta=200.0
k
. 1D numpy array with the value of the linear matter power spectrum wavenumbers.Pk
. 1D numpy array with the amplitude of the linear matter power spectrum on the wavenumbersk
.OmegaM
. Value of \(\Omega_{\rm m}\).Masses
. 1D numpy array with the value of the halo masses over which compute the halo mass function.author
. The model for the halo mass function. Options are:ST
,Tinker
,Tinker10
,Crocce
,Jenkins
,Warren
,Watson
,Watson_FoF
,Angulo
.bins
. In order to carry out the integrals, the k bins need to be sorted and equally spaced in log10. This parameter determines the number of bins to use. The more the better, but a very large number will have very little impact. Default 10000.z
. Redshift at which to estimate the halo mass function. Only needed for theTinker
,Tinker10
, andCrocce
mass functions.delta
. The overdensity value. Default is 200. Only needed forTinker
andTinker10
.
Note
For cosmologies with massive neutrinos, \(\Omega_{\rm m}\) should be set to \(\Omega_{\rm c}+\Omega_{\rm b}\) and the linear power spectrum should be the CDM+baryons linear power spectrum; see e.g. 1311.1212 and 1311.1514.
An example of how to use this routine is this:
import numpy as np
import mass_function_library as MFL
# halo mass function parameters
f_Pk = 'Pk_linear_z=0.txt' #file with linear Pk
OmegaM = 0.3175
Masses = np.logspace(11, 15, 100) #array with halo masses
author = 'ST' #Sheth-Tormen halo mass function
bins = 10000 #number of bins to use for Pk
z = 0.0 #redshift; only used for Tinker, Tinker10 and Crocce
delta = 200.0 #overdensity; only for Tinker and Tinker10
# read linear matter Pk
k, Pk = np.loadtxt(f_Pk, unpack=True)
# compute halo mass function
HMF = MFL.MF_theory(k, Pk, OmegaM, Masses, author, bins, z, delta)
variance
Pylians provides the routine sigma
that can be used to compute \(\sigma_R\), defined as
where \(W(k,R)\) is the Fourier transform of a top-hat function with radius \(R\):
The most standard applicaiton of this routine is to compute the value of \(\sigma_8\) given a linear power spectrum:
import numpy as np
import mass_function_library as MFL
# read linear power spectrum
k, Pk = np.loadtxt('My_linear_Pk.txt', unpack=True)
# compute the value of sigma_8
sigma_8 = MFL.sigma(k, Pk, 8.0)