CIFOG is a versatile MPI-parallelised semi-numerical tool to perform simulations of the Epoch of Reionization. From a set of evolving cosmological gas density and ionizing emissivity fields, it computes the time and spatially dependent ionization of neutral hydrogen (HI), neutral (HeI) and singly ionized helium (HeII) in the intergalactic medium (IGM). The code accounts for HII, HeII, HeIII recombinations, and provides different descriptions for the photoionization rate that are used to calculate the residual HI fraction in ionized regions.
This tool has been designed to be coupled to semi-analytic galaxy formation models or hydrodynamical simulations. The modular fashion of the code allows the user to easily introduce new descriptions for recombinations and the photoionization rate.
ASTRAEUS is a MPI-parallelised semi-numerical tool to perform simulations of early galaxies and the intergalactic medium (IGM) during the Epoch of Reionization. It self-consistently derives the evolution of galaxies and the reionization of the IGM based on the merger trees and density fields of a DM-only N-body simulation. ASTRAEUS models gas accretion, star formation, SN feedback, the time and spatial evolution of the ionized regions, accounting for recombinations, HI fractions and photoionization rates within ionized regions, and radiative feedback. The reionization part in ASTRAEUS is performed by CIFOG.
Polyspectrum is a MPI-parallelised code that computes polyspectra from a 3D grid of values, using the method described in Watkinson et al. (2017) To date this code supports the computation of powerspectra and bispectra, however it can be easily extended to higher orders. A comparison to an analytical model is available here.
PCF (Parallel Correlation Function)
PCF is a MPI-parallelised library that allows to compute the two-point correlation functions between a set of points. It supports the calculations of 3D and angular correlation functions using the Landy-Szalay estimator. Data and random points are distributed over domains, and pairs are calculated within and across domains.
Source code and instructions for compilation and execution can be found here.
An overview of all my publicly available codes can be found on my github page .