py21cmsense.theory

A module defining an interface for theoretical predictions, eg. power spectra.

This is simply so that one can calculate sample variance values for a particular theoretical model, with a uniform interface.

To register a class as a theory power spectrum, simply make it a subclass of TheoryModel. You must define two things on the class: (1) a class attribute “use_littleh” which says whether the function that evaluates the power spectrum expects the wavenumber in h/Mpc or 1/Mpc, and (2) a __call__ method, which takes in a float redshift and an array of wavenumbers, and returns Delta^2 as an astropy Quantity with units mK^2.

Classes

EOS2016Bright()

Theory model from EOS2016 Bright Galaxies.

EOS2016Faint()

Theory model from EOS2016 Faint Galaxies.

EOS2021()

Theory model from EOS2021 (https://arxiv.org/abs/2110.13919).

Legacy21cmFAST()

Simple 21cmFAST-based theory model explicitly for z=9.5, from 21cmSense v1.

TheoryModel()

Abstract base class for theory models.

TheorySpline()

Base class for theory models that are defined by a spline over (z,k).