Symbolic implementation of extensions of the PyCosmo Boltzmann solver
Abstract
PyCosmo is a Python-based framework for the fast computation of cosmological model predictions. One of its core features is the symbolic representation of the Einstein-Boltzmann system of equations. Efficient C/C++ code is generated from the SymPy symbolic expressions making use of the sympy2c package. This enables easy extensions of the equation system for the implementation of new cosmological models. We illustrate this with three extensions of the PyCosmo Boltzmann solver to include a dark energy component with a constant equation of state, massive neutrinos and a radiation streaming approximation. We describe the PyCosmo framework, highlighting new features, and the symbolic implementation of the new models. We compare the PyCosmo predictions for the ΛCDM model extensions with CLASS, both in terms of accuracy and computational speed. We find a good agreement, to better than 0.1% when using high-precision settings and a comparable computational speed. Links to the Python Package Index (PyPI) page of the code release and to the PyCosmo Hub, an online platform where the package is installed, are available at: https://cosmology.ethz.ch/research/software-lab/PyCosmo.html.
- Publication:
-
Astronomy and Computing
- Pub Date:
- July 2022
- DOI:
- arXiv:
- arXiv:2112.08395
- Bibcode:
- 2022A&C....4000603M
- Keywords:
-
- Cosmology;
- Dark energy;
- Cosmological neutrinos;
- Symbolic and algebraic manipulation;
- Solvers;
- Astrophysics - Cosmology and Nongalactic Astrophysics
- E-Print:
- 35 pages including 5 figures and 3 tables. Link to $\texttt{PyCosmo}$ package: https://cosmology.ethz.ch/research/software-lab/PyCosmo.html