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, andCroccemass functions.delta. The overdensity value. Default is 200. Only needed forTinkerandTinker10.
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)