Table of Contents
Fetching ...

ABCMB: A Python+JAX Package for the Cosmic Microwave Background Power Spectrum

Zilu Zhou, Cara Giovanetti, Hongwan Liu

TL;DR

ABCMB is a complete code capturing important effects to linear order in $\Lambda{\rm CDM}$ cosmology, which computes the CMB power spectrum and includes effects like lensing, polarization, massive neutrinos, and a state-of-the-art treatment of BBN and recombination.

Abstract

We present ABCMB, a differentiable Einstein-Boltzmann solver for the cosmic microwave background (CMB). ABCMB is a complete code capturing important effects to linear order in $Λ{\rm CDM}$ cosmology. It computes the CMB power spectrum and includes effects like lensing, polarization, massive neutrinos, and a state-of-the-art treatment of BBN and recombination. ABCMB has sub-percent-level agreement with CLASS and can be run on a GPU with competitive, and sometimes even faster, run times. It is refactored compared to previous codes and takes advantage of object-oriented programming to improve extensibility, meaning new physics can be added to it without the need for modifying source files. ABCMB provides accurate and stable gradients to the user, making Fisher analyses straightforward, and enabling the use of efficient gradient-based sampling methods.

ABCMB: A Python+JAX Package for the Cosmic Microwave Background Power Spectrum

TL;DR

ABCMB is a complete code capturing important effects to linear order in cosmology, which computes the CMB power spectrum and includes effects like lensing, polarization, massive neutrinos, and a state-of-the-art treatment of BBN and recombination.

Abstract

We present ABCMB, a differentiable Einstein-Boltzmann solver for the cosmic microwave background (CMB). ABCMB is a complete code capturing important effects to linear order in cosmology. It computes the CMB power spectrum and includes effects like lensing, polarization, massive neutrinos, and a state-of-the-art treatment of BBN and recombination. ABCMB has sub-percent-level agreement with CLASS and can be run on a GPU with competitive, and sometimes even faster, run times. It is refactored compared to previous codes and takes advantage of object-oriented programming to improve extensibility, meaning new physics can be added to it without the need for modifying source files. ABCMB provides accurate and stable gradients to the user, making Fisher analyses straightforward, and enabling the use of efficient gradient-based sampling methods.
Paper Structure (43 sections, 57 equations, 15 figures, 3 tables)

This paper contains 43 sections, 57 equations, 15 figures, 3 tables.

Figures (15)

  • Figure 1: A code block diagram for ABCMB. Control is managed by abcmb.main.Model, which dispatches a BBN calculation, the computation of background quantities (including recombination), the evolution of perturbations, and the integration of those perturbations to compute a CMB power spectrum. The user will rarely have cause to call these submodules directly, apart from perhaps the HyRex module which can be run standalone. Instead these submodules return desired outputs through abcmb.main.Model to the user.
  • Figure 2: Gradients of matter and CMB power spectra with respect to $N_{\rm eff}$. The blue dashed curves were computed with helium abundance interpolated from the CLASS default BBN table, and the red solid curves used the LINX prediction for the abundance given $N_{\rm eff}$ with a different reaction network. The right panels of each spectrum gradient shows the absolute difference between the two approaches, with identical units and normalization as the left panels where applicable.
  • Figure 3: Gradients of matter and CMB power spectra with respect to the baryon density $\omega_{\rm b}$. The blue dashed curves were computed with with helium abundance interpolated from the CLASS default BBN table, and the red solid curves used the LINX prediction for the abundance given $\omega_{\rm b}$ with a different reaction network. As in fig. \ref{['figure:linx_gradients_neff']}, the right panels of each spectrum gradient shows the absolute difference between the two approaches, with identical units and normalization as the left panels where applicable.
  • Figure 4: Maximum residual comparison between HyRex and HYREC-2 for $x_e$, the free electron fraction across redshift. We make 50 comparisons using randomly generated values for the $\Lambda {\rm CDM}$ parameters $\{h, \omega_b, \omega_{\rm cdm}\}$ in the range specified in table \ref{['tab:test_params']}, and report the maximum error occurred at each redshift across all runs. The two codes agree to $<0.1\%$, with better agreement at early times more relevant for the CMB.
  • Figure 5: Residuals in the linear matter power spectrum computed as $|{\rm CLASS}-{\rm ABCMB}|/{\rm CLASS}$. We make 50 comparisons using randomly generated values for the 6 $\Lambda {\rm CDM}$ parameters, and report the maximum error at each wavenumber $k$ across all runs. The range of the parameters sampled can be found in table \ref{['tab:test_params']}. The red curve denotes $\Lambda {\rm CDM}$ with massless neutrinos only, while the blue curve contains one massive neutrino. The errors are comparable in the two models, with accuracy at the 2 permille level at $k=0.5\ {\rm Mpc}^{-1}$, where non-linear corrections are already important. The level of accuracy on these small scales indicate that the percent level suppression by neutrino mass is well captured in ABCMB.
  • ...and 10 more figures