Skip to main content
QUICK REVIEW

[Paper Review] The Cosmic Linear Anisotropy Solving System (CLASS) I: Overview

Julien Lesgourgues|arXiv (Cornell University)|Apr 14, 2011
Cosmology and Gravitation TheoriesPhysics and Astronomy9 references489 citations
TL;DR

CLASS is a new, user-friendly, and highly accurate Boltzmann code for cosmological perturbation theory, designed to compute cosmic microwave background (CMB) anisotropies and matter power spectra with improved modularity, error handling, and flexibility. It achieves high precision through structured error reporting and modular design, and is faster than existing codes like CAMB and CMBFAST, making it ideal for parameter estimation in modern cosmology.

ABSTRACT

The Cosmic Linear Anisotropy Solving System (CLASS) is a new accurate Boltzmann code, designed to offer a more user-friendly and flexible coding environment to cosmologists. CLASS is very structured, easy to modify, and offers a rigorous way to control the accuracy of output quantities. It is also incidentally a bit faster than other codes. In this overview, we present the general principles of CLASS and its basic structure. We insist on the friendliness and flexibility aspects, while accuracy, physical approximations and performances are discussed in a series of companion papers.

Motivation & Objective

  • To develop a new Boltzmann code that improves upon existing codes in user-friendliness, flexibility, and accuracy control.
  • To address the limitations of legacy codes like CMBFAST and CMBEASY, which are no longer maintained and have outdated recombination algorithms.
  • To provide an independent, self-consistent codebase to validate the absolute accuracy of cosmological predictions, especially for post-Planck data.
  • To enable efficient parameter space exploration by reducing computation time per call while maintaining high precision.
  • To support complex cosmological models, including massive neutrinos, non-cold dark matter, tensor modes, and lensing, through extensible modular design.

Proposed method

  • Implementing a modular C-based architecture with clear separation of concerns, using a macro-based error-handling system (class_call, class_test) for robust and traceable error reporting.
  • Using a line-of-sight integration method for CMB anisotropy calculations, similar to CMBFAST, but with improved numerical stability and precision control.
  • Allowing input via human-readable .ini and .pre files for cosmological parameters and accuracy settings, respectively, with default values for quick startup.
  • Supporting multiple gauge choices (synchronous gauge operational in v1.0; Newtonian gauge in development), and flexible initial condition handling for adiabatic and isocurvature modes.
  • Enabling parallelization via OpenMP with a single compilation flag, improving performance on multi-core systems.
  • Embedding a renormalization algorithm in the nonlinear module for future implementation of non-linear approximations like HALOFIT.

Experimental results

Research questions

  • RQ1How can a new Boltzmann code be designed to be significantly more user-friendly and maintainable than existing codes like CAMB and CMBFAST?
  • RQ2What architectural and programming practices can ensure high accuracy and traceable error reporting in cosmological simulation codes?
  • RQ3Can a new code achieve comparable or better performance than established codes while supporting more complex cosmological models?
  • RQ4How can precision settings be unified and calibrated independently to enable reliable accuracy control across different cosmological scenarios?
  • RQ5To what extent can a modular, extensible codebase support future extensions like cosmic shear power spectra or improved non-linear structure formation models?

Key findings

  • CLASS v1.0 supports the computation of CMB TT, TE, EE, BB, and lensed spectra, as well as matter power spectra and transfer functions for multiple species.
  • The code includes massive neutrinos, non-cold dark matter relics with tunable phase-space distributions, and optional tensor modes and cosmological constant.
  • Error messages are automatically generated and chained via macros, providing detailed, line-numbered debugging information across function calls.
  • The code is compatible with major compilers and supports OpenMP for parallel execution, improving performance on multi-core systems.
  • The modular design allows users to selectively enable or disable components (e.g., isocurvature modes, tensor modes) via input files without recompilation.
  • The code is designed for integration with parameter extraction tools like CosmoMC, MultiNest, and CosmoPMC, enabling efficient Bayesian inference in cosmology.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.