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.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.6
- add optional nonlinear parameter to setforlmax
- add 21cm transfer variable names to python; add example notebook example
- recfast compatibility with very different T_0
- Minor code and doc fixes/warnings
- Fortran
Published by cmbant over 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
- Added HMCode 2020 and now default (thanks Alex Mead, arXiv:2009.01858)
- Raise error for w+wa>0 in dark energy models
- Added getlensedclswithspectrum and getpartiallylensed_cls for partially delensed and Alens-scaled lensed spectra
- Added correlation function and partial delensing examples to example notebook
- 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
- Correct getvalidnumerical_params
- Sympy 1.6 compatibility
- mathutils functions for polarization Pseudo-CL couplings and better doc
- Fortran
Published by cmbant almost 6 years ago
camb - 1.1.2
- get_sigmaR function
- getvalidnumerical_params to get list of valid parameter names
- Misc bug fixes
- Updated forutils to work around some recent gfortran version memory leak bugs
- 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.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.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.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:
Integrated CAMB sources, for CMB, CMB lensing, lensing convergence, number counts and 21cm including all linear velocity and GR effects; SplinedSourceWindow and GaussianWindow classes for setting SourceWindows array describing additional sources.
New setinitialpower_function and setinitialpower_table functions to set initial power spectra from arbitrary python function or sampled arrays
DarkEnergy, InitialPower, NonLinearModel, ReionizationModel and RecombinationModel classes that can be dynamically assigned to CAMBparams object fields.
Easily switch Dark Energy model between fluid and PPF, and support for setting custom w(z) evolution
Python command line camb script. Functions to load .ini file settings from python scripts.
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
- Added support for HMCODE Halofit version (halofit_version=5; thanks Alex Mead); Takahashi remains the default as before
- Python CAMB
- camb.getmatterpower_interpolator function to get 2D spline object for evaluating P(k,z); See the sample notebook for an example of how to use this to calculate a lensing spectrum
- Result object functions to get unsplined matter power (getlinearmatterpowerspectrum,getnonlinearmatterpowerspectrum)
- Result object function to get redshift from conformal time (redshiftatcomovingradialdistance)
- camb.sethalofitversion to set halofit version;
- Option to set cosmomctheta rather than H0 (thanks Marius Millea)
- Wigner 3j function for convenience (camb.bispectrum.threej).
- Fortran
Published by cmbant almost 10 years ago