ExSHalos

ExSHalos#

This library implements ExSHalos and many other utilities for cosmological analysis:

  • Measurement of the power/bi/tri-spectra for any number of tracers in a box;

  • Population of halos with galaxies using a HOD and split of galaxies for the creation of multi-tracer catalogues;

  • Creation of density grid and catalogue of particles created by LPT;

  • Computation of shifted Lagrangian operators;

  • Computation of EFTofLSS, for multi-tracers, using CLASS-PT;

  • Computation of simple theoretical quantities (e.g. growth function, growth rate, mass function, …).

At this point, only a python library is exported, but all code is written in C.

This library follows the functional programing paradigm! There are no classes, random operators nor custom types.

Installation#

You can download the package with:

git clone https://github.com/Voivodic/ExSHalos.git

Once you have all depences, installing ExSHalos is as simple as:

cd ExSHalos/
pip install .

For more detailed installation instructions check installation

Quick start#

Using the python interface for ExSHalos is as simple as:

import numpy as np
import pyexshalos as exh
import pylab as pl

# Load a linear matter power spectrum
k, Pk = np.loadtxt("matter_power_spectrum.dat", unpack = True)

# Create the halo catalogue using exshalos
halos = exh.mock.Generate_Halos_Box_from_Pk(k, Pk, nd = 256, Lc = 4.0, Om0 = 0.31)

# Measure the power spectrum
grid = exh.simulation.Compute_Density_Grid(halos["posh"], nd = 256, L = 1024.0)
Ph = exh.simulation.Compute_Power_Spectrum(grid, L = 1024.0)

# Plot the power spectrum
pl.errorbar(Ph["k"], Ph["Pk"], yerr = Ph["Pk"]/np.sqrt(Ph["Nk"]), lw = 3)

pl.xscale("log")
pl.yscale("log")
pl.xlabel("k [$h/$Mpc]", fontsize=15)
pl.ylabel("P(k)  [Mpc/$h/$]$^{3}$", fontsize=15)

pl.savefig("Ph_example.pdf")