Skip to content

1.0 January 2019

Compare
Choose a tag to compare
@cmbant cmbant released this 30 Jan 14:40
· 286 commits to master since this release

This is a major new release, with CAMB now configured mainly as a Python package (wrapping modern Fortran for fast numerics). See the example notebook for examples of usage and now comprehensive documentation.

Major new features (in Python and Fortran) include:

Python changes:

  • set_cosmology now supports more general exact thetastar as well as H0 and cosmomc_theta.
  • read_ini and run_ini functions
  • Reworked python-fortran interface using metaclass and decorators, supporting allocatable arrays and class instances and directly import and call of Fortran class methods
  • Support multiple CAMBdata result instances, and results object can be called safely in any order (removing most global variables)
  • CAMBparams read-only properties for omegam, N_eff, omegab, omegac, omaganu, h
  • T_CMB changes handled consistently
  • set_params supports options for changing dark energy, initial power and non-linear model classes
  • set_params can set CAMBparam members if not already used as an argument (and things like InitPower.ns via an input string)
  • Fields support named enumerations, name-length fields for arrays, fortran-compatible boolean and help
    docs include help for field values (auto-generated via metaclass)
  • Faster and array versions of various background functions
  • SecondOrderPK non-linear model class available from Python
  • Optional support for CosmoRec and HyRec RecombinationModel classes (need to compile with them linked)
  • Updated BBN model default to Parthenope 2017 as Planck 2018 analysis
  • "setup.py make" command to re-build the Fortran library, which also works on Windows if gfortran is installed.

General changes

  • Changed CAMBparams parameters to be physical density parameters ombh2, omch3, omnuh2 (+omk)
  • Modest speed improvement from using higher order series solutions for background neutrino density combined with linear rather than log spline.
  • Uses splined a(t) for perturbation evolution rather than evolving for each perturbation mode; tensor spectrum results now much faster
  • More accurate background calculations with partial parallelism
  • Finer every-L sampling at L=11-15 (small change in EE). Updated c_l interpolation template.
  • min_l and custom source functions now set as parts of CAMBparams
  • Account for radiation when setting dark energy density from matter densities and omk
  • Smoother default reionization history parameters around helium second reionization
  • Use matter temperature evolution from recfast (still harmlessly wrong - as before - from reionization onwards)
  • scalarCovCls.dat and _array outputs for lensing potential now deflection angle
  • Halofit default updated to HMcode to match Planck 2018 analysis
  • Added TAxionEffectiveFluid example specific dark energy class implementation
  • high_accuracy_default option removed (is now the default)
  • Git repository now uses submodule for forutils

Underlying Fortran changes:

  • Fortran 2003 Object-oriented code restructuring; Fortran code structure now closer to the python (see class trees). [this is a breaking change]
  • Now requires gfortran 6 or ifort 14 or higher (ifort 18.0.1 or higher recommended)
  • Fix for auto-kmax when using lensing from command line