Recent Releases of camb

camb - 1.6.1

  • Workaround for gfortran compiler memory leak bug affecting runs with tensors, thanks @eatdust for report (info and fixed gfortran tracking at https://github.com/cmbant/CAMB/issues/176)
  • Updated for min Python 3.10 and latest setuptools
  • Added formatting ruff, pre-commit hook and vscode formatting options

- Fortran
Published by cmbant 8 months ago

camb - 1.6.0

  • doc clarifications
  • Improved AI help assistant with full python doc knowledge
  • Parameter to set max reionization redshift (thanks @mraveri , https://github.com/cmbant/CAMB/pull/166)
  • Minor compatibility/parameter warning tweaks
  • Initialize sharedeltaneff back to False when used from, e.g. in case starting from copy of .ini file

- Fortran
Published by cmbant 10 months ago

camb - 1.5.7

  • Change PPF switch parameter to give closer to fluid model in extreme modes; changes results, but very similar near LCDM (no unit tests fail)
  • Minor doc/compatibility updates

- Fortran
Published by cmbant over 1 year ago

camb - 1.5.5

  • Added pre-compiled binary wheels for pip installation
  • Doc updates including new section on code modification
  • Minor fixes/tidies

- Fortran
Published by cmbant over 1 year ago

camb - 1.5.3

  • CAMBparams can now be saved and restored using repr/eval or pickle in standard cases
  • Allow DE fluid w(a) table models with w<-1 as long as do not cross -1
  • Removed camb.py
  • Misc tidies and compatibility fixes

- Fortran
Published by cmbant about 2 years ago

camb - 1.5.1

  • Refactor reionization models allowing setting the model via python; added sample ExpReionization alternative to default tanh. Examples added to example notebook.
  • Removed dependency on distutils ready for Python 12

- Fortran
Published by cmbant over 2 years ago

camb - 1.5.0

  • Fixed bug calculating Cl from time sources that affected iterated use in Cobaya
  • Increase max transfer redshifts to 256
  • Added minlloglsampling parameter to setaccuracy (to set lowest multipole at which sparse log-L sampling is used)
  • Added sample transfer function animations to the end of the example notebook

- Fortran
Published by cmbant over 2 years ago

camb - 1.4.0

  • Updated numerical constants, use latest definitions for Megaparsec, and calculate times in Julian giga-years
  • Updated default nnu to 3.044 (from 3.046)
  • Updated default BBN model (for helium abundance) to PRIMAT2021
  • Support general bias(k,z) for source window functions
  • Fix for HMcode-2020 feedback at low k
  • Fix getmatterpower_spectrum for cross-spectra
  • Allow read_ini to load directly from a URL
  • Minor code tidies

These changes do change numerical results, but only at a level that is irrelevant for near-future observations. But some of the higher-precision unit tests also had to be updated.

- Fortran
Published by cmbant about 3 years ago

camb - 1.3.5

  • angulardiameterdistance2 fix and allow for vector arguments
  • Support vector arguments for physicaltime, physicaltimea1a2 and conformaltimea1_a2
  • Fixes and error checking for some obscure corner cases
  • More robust to passing in non-contiguous or 32 bit vector arguments

- Fortran
Published by cmbant about 4 years ago

camb - 1.3.2

  • Source window functions now support bias(z) from Python interface (see sample notebook)
  • getpartiallylensed_cls allows A_lens as function of L
  • getlensedgradient_cls optionally supports using custom lensing spectrum input
  • Added updated PRIMAT BBN interpolation table PRIMATYpDHErrorMC2021.dat (thanks Cyril Pitrou)
  • Added HMCode unit tests (thanks Alex Mead)
  • Minor compatibility fixes

- Fortran
Published by cmbant almost 5 years ago

camb - 1.3.0

- Fortran
Published by cmbant about 5 years ago

camb - 1.2.0

  • Quintessence dark energy support updated (from very old) and merged. Example implementation of early dark energy. In general, new models require deriving a new inherited quintessence class in Fortran and Python.
  • Lensing and f_NL bispectrum code updated to work with latest version (no Python interface)
  • Bug fixes for get_sigmaR and other small bug fixes/additional warnings.

- Fortran
Published by cmbant about 5 years ago

camb - 1.1.3

- Fortran
Published by cmbant almost 6 years ago

camb - 1.1.2

- Fortran
Published by cmbant almost 6 years ago

camb - 1.1.1

  • Support setting zrei from set_cosmology
  • Splined initial power spectrum now uses end values when out of range
  • Add transfer function time sources examples to notebook
  • Removed Python 2 support, code updates for Python 3.6+ (see python2 branch for old Python 2 version)

- Fortran
Published by cmbant about 6 years ago

camb - 1.1

  • Support for calculating only time source transfer functions, and then power spectra later. This allows calculating non-linear lensing results for different initial power spectrum and non-linear model parameters without recomputing the time transfer functions.
  • Fix for Python raw lensing cross CMB output
  • Allow kperlogint to give denser k sampling even when used with non-linear lensing

- Fortran
Published by cmbant about 6 years ago

camb - 1.0.12

  • Support for wider range of input parameter values and more error propagation to Python
  • Added khunit option to get[non]linearmatterpower_spectrum
  • getmatterpower_interpolator will now do log(-pk) interpolation for negative spectra
  • Fix to assign Neff when omnuh2=0 (thanks @tilmantroester)
  • Doc improvements for matter power variables, conda install, mathutils
  • Fix for #66, #67
  • Tweak to meta class to allow introspection of CAMB's Python classes to work
  • Setting thetastar does not initialize reionization model or pk/windows (optimization, avoid errors)

- Fortran
Published by cmbant about 6 years ago

camb - 1.0.9

  • Fix for getmatterpower_interpolator extrapolation #61
  • Fix for zstar calculation with tensors #62
  • Tweaks for non-linear warnings and error handling

- Fortran
Published by cmbant over 6 years ago

camb - 1.0.8

  • Avoid re-computations when getting non-linear power spectrum
  • Propagate errors in HMCode to python exceptions and small tweaks
  • Bug fix for very small neutrino masses and debug compilation
  • Fix for setting lmax in Python for some non-flat models

- Fortran
Published by cmbant over 6 years ago

camb - 1.0.7

  • HM_code updates for numerical stability, speed, fix for linear massive neutrino growth (thanks A. Mead; can change results and significantly faster)
  • Fix for Mac ifort compatibility (thanks C. Kreisch)

- Fortran
Published by cmbant over 6 years ago

camb - 1.0.6

  • fix for z_drag with high matter densities and for P(k) without reionization
  • fix memory leak freeing python result objects
  • forutils compatibility update
  • Exposes HM code baryon parameters to python

- Fortran
Published by cmbant over 6 years ago

camb - 1.0.5

  • Added getlensedgradient_cls function for flat-sky non-perturbative lensing reconstruction responses
  • Fix HMCode bug for w/=-1 models
  • Fix k^2 factor in 21cm transfer function output
  • Misc minor bug fixes, code and doc tidies

- Fortran
Published by cmbant over 6 years ago

camb - 1.0.4

Fix bugs in Fortran Makefile and gettotalcls.

- Fortran
Published by cmbant almost 7 years ago

camb - 1.0.3

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

- Fortran
Published by cmbant about 7 years ago

camb - 1.0 January 2019

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
  • highaccuracydefault 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

- Fortran
Published by cmbant about 7 years ago

camb - August 2018

  • 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

    - Fortran
    Published by cmbant over 7 years ago

camb - August 2017

  • 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)
    • Hofz functions now support arrays of redshifts
    • Add nonlinear parameter to model.setmatterpower
    • 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

- Fortran
Published by cmbant over 8 years ago

camb - January 2017

  • 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

- Fortran
Published by cmbant about 9 years ago

camb - November 2016

  • CAMBSetNeutrinoHierarchy function and python wrapper neutrinohierarchy 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

- Fortran
Published by cmbant over 9 years ago

camb - May 2016

- Fortran
Published by cmbant almost 10 years ago