nanoCMB: A minimal CMB power spectrum calculator in Python

Fuente: arXiv
Saved in:
Bibliographic Details
Main Author: Moss, Adam
Format: Preprint
Published: 2026
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912929641660416
author Moss, Adam
author_facet Moss, Adam
contents We present nanoCMB, a minimal but accurate calculator for the unlensed CMB temperature and polarisation angular power spectra ($C_\ell^{TT}$, $C_\ell^{EE}$, $C_\ell^{TE}$) of flat $Λ$CDM cosmologies. Written in $\sim$1400 lines of readable Python, the code implements the full line-of-sight integration method: RECFAST recombination, coupled Einstein--Boltzmann perturbation equations in synchronous gauge with a tight-coupling approximation, precomputed spherical Bessel function tables, and optimally constructed non-uniform grids in wavenumber and conformal time. Despite its brevity, nanoCMB achieves sub-percent agreement with CAMB across the multipole range $2 \le \ell \le 2500$, running in $\sim$10 seconds on a modern laptop. The entire calculation lives in a single, easily modifiable Python script, designed as a pedagogical bridge between textbook treatments and research-level Boltzmann solvers, with every approximation and numerical choice made explicit. We describe the physics, equations, and computational methods in detail, with code snippets illustrating each stage of the calculation. The code is publicly available at https://github.com/adammoss/nanoCMB.
format Preprint
id arxiv_https___arxiv_org_abs_2602_23466
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle nanoCMB: A minimal CMB power spectrum calculator in Python
Moss, Adam
Cosmology and Nongalactic Astrophysics
We present nanoCMB, a minimal but accurate calculator for the unlensed CMB temperature and polarisation angular power spectra ($C_\ell^{TT}$, $C_\ell^{EE}$, $C_\ell^{TE}$) of flat $Λ$CDM cosmologies. Written in $\sim$1400 lines of readable Python, the code implements the full line-of-sight integration method: RECFAST recombination, coupled Einstein--Boltzmann perturbation equations in synchronous gauge with a tight-coupling approximation, precomputed spherical Bessel function tables, and optimally constructed non-uniform grids in wavenumber and conformal time. Despite its brevity, nanoCMB achieves sub-percent agreement with CAMB across the multipole range $2 \le \ell \le 2500$, running in $\sim$10 seconds on a modern laptop. The entire calculation lives in a single, easily modifiable Python script, designed as a pedagogical bridge between textbook treatments and research-level Boltzmann solvers, with every approximation and numerical choice made explicit. We describe the physics, equations, and computational methods in detail, with code snippets illustrating each stage of the calculation. The code is publicly available at https://github.com/adammoss/nanoCMB.
title nanoCMB: A minimal CMB power spectrum calculator in Python
topic Cosmology and Nongalactic Astrophysics
url https://arxiv.org/abs/2602.23466