PyCosmo: An Integrated Cosmological Boltzmann Solver
  As wide-field surveys yield ever more precise measurements, cosmology has
entered a phase of high precision requiring highly accurate and fast
theoretical predictions. At the heart of most cosmological model predictions is
a numerical solution of the Einstein-Boltzmann equations governing the
evolution of linear perturbations in the Universe. We present PyCosmo, a new
Python-based framework to solve this set of equations using a special pur- pose
solver based on symbolic manipulations, automatic generation of C++ code and
sparsity optimisation. The code uses a consistency relation of the field
equations to adapt the time step and does not rely on physical approximations
for speed-up. After reviewing the system of first-order linear homogeneous
differential equations to be solved, we describe the numerical scheme
implemented in PyCosmo. We then compare the predictions and performance of the
code for the computation of the transfer functions of cosmological
perturbations and compare it to existing cosmological Boltzmann codes. We find
that we achieve comparable execution times for comparable accuracies. While
PyCosmo does not yet have all the features of other codes, our approach is
complementary to existing cosmological Boltzmann solvers and can be used as an
independent test of their numerical solutions. The symbolic representation of
the Einstein-Boltzmann equation system in PyCosmo provides a convenient
interface for implementing extended cosmological models. We also discuss how
the PyCosmo framework can also be used as a general framework to compute
cosmological quantities as well as observables for both interactive and
high-performance batch jobs applications. Information about the PyCosmo package
and future code releases are available at
http://www.cosmology.ethz.ch/research/software-lab.html.
