Table of Contents
Fetching ...

CMBEASY:: an Object Oriented Code for the Cosmic Microwave Background

Michael Doran

TL;DR

cmbeasy tackles the need for flexible, testable CMB anisotropy calculations by re-engineering the cmbfast framework into a modular, object-oriented code in C++. It introduces core components (Cosmos, Perturbation, ScalarIntegrator) and supports gauge-invariant perturbations and quintessence via QuintCosmos and Quintessence, plus a Qt GUI for user interaction. The implementation maintains or exceeds the accuracy of cmbfast (better than ~0.5%) while enabling easy substitution of cosmological models and new physics, accelerating development for high-precision CMB predictions. This design positions cmbeasy as a practical platform for exploring Planck-era data and beyond, with extensible pathways to include lensing, reionization, and cross-correlations.

Abstract

We have ported the cmbfast package to the C++ programming language to produce cmbeasy, an object oriented code for the cosmic microwave background. The code is available at www.cmbeasy.org. We sketch the design of the new code, emphasizing the benefits of object orientation in cosmology, which allow for simple substitution of different cosmological models and gauges. Both gauge invariant perturbations and quintessence support has been added to the code. For ease of use, as well as for instruction, a graphical user interface is available.

CMBEASY:: an Object Oriented Code for the Cosmic Microwave Background

TL;DR

cmbeasy tackles the need for flexible, testable CMB anisotropy calculations by re-engineering the cmbfast framework into a modular, object-oriented code in C++. It introduces core components (Cosmos, Perturbation, ScalarIntegrator) and supports gauge-invariant perturbations and quintessence via QuintCosmos and Quintessence, plus a Qt GUI for user interaction. The implementation maintains or exceeds the accuracy of cmbfast (better than ~0.5%) while enabling easy substitution of cosmological models and new physics, accelerating development for high-precision CMB predictions. This design positions cmbeasy as a practical platform for exploring Planck-era data and beyond, with extensible pathways to include lensing, reionization, and cross-correlations.

Abstract

We have ported the cmbfast package to the C++ programming language to produce cmbeasy, an object oriented code for the cosmic microwave background. The code is available at www.cmbeasy.org. We sketch the design of the new code, emphasizing the benefits of object orientation in cosmology, which allow for simple substitution of different cosmological models and gauges. Both gauge invariant perturbations and quintessence support has been added to the code. For ease of use, as well as for instruction, a graphical user interface is available.

Paper Structure

This paper contains 15 sections, 3 figures.

Figures (3)

  • Figure 1: The visibility $g \equiv \dot \kappa \exp(\kappa(\tau)-\kappa(\tau_0))$ as a function of conformal time $\tau$ in $\textrm{Mpc}$. Its peak at about $\tau \approx 300\,\textrm{Mpc}$ defines the epoch of last scattering. Before the visibility function peaks, photons are very likely to scatter again until the Universe becomes translucent. After the peak, photons do not scatter at a substantial rate. It is thus the balance between frequent scattering and sufficiently low optical depth that will give the largest contribution towards the anisotropy today. And this fact is exactly encoded in $g$.
  • Figure 2: Graphical user interface (GUI) for cmbeasy.
  • Figure 3: Temperature anisotropy spectrum for $h=0.65,\ \Omega_{0}^{\Lambda} =0.6,\ \Omega_{0}^{\rm b} h^2 =0.02,\ \Omega_{0}^{\rm c} = 1 - \Omega_{0}^{\Lambda} - \Omega_{0}^{\rm b}$ obtained from cmbfast. The relative deviation $\Delta C_l / C_l$ of cmbeasy's synchronous (long dashed line) and gauge invariant (solid line) solution with respect to the original cmbfast spectrum are also given. The accordance of all spectra is always better than $1\%$. In the gauge invariant case, both the background and perturbation evolution as well as the $C_l$ integration are entirely independent of the cmbfast code. However, they use the same thermal history algorithm that should in principle be independently implemented for cross checks.