Skip to content

Releases: cmbant/CAMB

1.0.3

14 Feb 10:52
Compare
Choose a tag to compare

Misc bug fixes, and support for passing BBN interpolation table name as bbn_predictor in set_cosmology.

1.0 January 2019

30 Jan 14:40
Compare
Choose a tag to compare

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

August 2018

24 Aug 11:59
Compare
Choose a tag to compare
  • Option to use HMCode 2015 version (thanks Alex Mead)
  • accurate_massive_neutrino_transfers option if accurate neutrino transfer functions needed at late time
  • Output text file precision increased
  • Warning if accurate_BB=T but other options not set sensibly for accurate lensing BB
  • Python CAMB wrapper:
    • On linux system now builds with ifort if available (~35% faster)
    • More efficient and new vector support for angular_diameter_distance and related background functions
    • bbn module generalisation to allow more general table interpolation and vector arguments; added PRIMAT table (thanks Cyril Pitrou)
    • Improvements for default settings in various cases
    • get_background_time_evolution can now get T_b, the baryon temperature
    • save_cmb_power_spectra convenience function
    • Changes for Cobaya compatibility (thanks Jesus Torrado)
    • get_matter_power_interpolator has extrap_kmap to efficiently get tails by extrapolation
    • get_matter_power_interpolator now also available as method of results object for optimization purposes
    • mathutils module with convenience functions like Wigner 3j, pseudo-CL coupling, and fast Gauss-Legendre and x^T C^{-1} x evaluation
    • Doc and example notebook improvements/additional examples and warnings

August 2017

17 Aug 14:26
Compare
Choose a tag to compare
  • HMCode bug fix and speed up (thanks Alex Mead)
  • Refactoring in equations.f90 so all scalar source outputs now computed in derivs function; support for custom source functions (as used by python camb.symbolic module)
  • Python CAMB:
    • Added camb.symbolic module using sympy, to get equations, convert between gauges, and produce and compile CAMB code from analytic results in different gauges. See the demo notebook demonstrating how to use this, set custom sources, plot perturbation evolution and calculate angular power spectra of different things.
    • Add camb.emission_angle module to get BB power from emission angle and time delay (1706.02673)
    • Added camb.postborn module to get the field rotation power spectrum and associated BB power (1605.05662)
    • Support for BBN-consistency values of Y_He by interpolation from table; new tables from Parthenope supplied (thanks Ofelia Pisanti)
    • H_of_z functions now support arrays of redshifts
    • Add nonlinear parameter to model.set_matter_power
    • AccurateReionization is now switched on by default
    • CMB_outputscale and raw_cl options to python CMB power spectra output functions to get CL or DL, and use different units
    • Added get_fsigma8() function
    • Python 3.6 compatibility
    • "pip install camb" now working cleanly
    • Makefile improvements to build pycamb using gfortran even if ifort present (can use "make COMPILER=gfortran" to force gfortran)
    • Bug fixes

January 2017

27 Jan 10:00
Compare
Choose a tag to compare
  • Python CAMB wrapper correlations module:
    • Transform between CL and CMB correlation functions
    • Lensed power spectra and correlation functions from unlensed spectra and lensing power spectrum (useful for delensing)
    • Matrix of derivatives of lensed power spectra with respect to lensing power and unlensed CL
  • Added halofit_casarini=7 for PKequal dark energy fitting (thanks Luciano Casarini; arXiv:0810.0190, arXiv:1601.07230)
  • Fixed compilation issue with gfortran 6.3

November 2016

09 Nov 10:28
Compare
Choose a tag to compare
  • CAMB_SetNeutrinoHierarchy function and python wrapper neutrino_hierarchy option for set_cosmology function (to configure to use two eigenstate approximation to normal or inverted hierarchies)
  • Various misc small bug fixes, improvements and compiler compatibility changes

May 2016

20 May 11:20
Compare
Choose a tag to compare