General
- Python 2 support removed, now requires Python 3.6+. Uses `dict` rather
than `OrderedDict`.
- Significant internal refactoring including support for multiple inter-dependent theory
codes.
- Greatly reduced Python overhead timing, faster for fast likelihoods.
- New base classes `CobayaComponent` and `ComponentCollection`, with support for
standalone instantiation of all `CobayaComponent`.
- `.yaml` can now reference class names rather than modules, allowing multiple classes in
one module.
- `.yaml` default files are now entirely at the class level, with no `kind:module:`
embedding.
- inheritance of yaml and class attributes (with normal dict update, so e.g. all inherited
nuisance parameters can be removed using `params:`). Each class can either define
a `.yaml` or class attributes, or neither, but not both.
- The `.theory` member of likelihoods is now `Provider` class instance.
- Global `stop_at_error` option to stop at error in any component.
- Fix for more accurate timing with Python 3.
- Updates for GetDist 1.x.
- Module version information stored and checked.
- `cobaya-run --no-mpi` option to enable testing without mpi even on nodes with mpi4py
installed.
- `cobaya-run-job` command to make a single job script and submit.
- docs include inheritance diagrams for key classes.
- renames `path_install` to `packages_path`, `-m` command line options to `-p`.
- `cobaya-install` saves the installation folder in a local config file. It does not need
to be specified later at running, reinstalling, etc.
Use `cobaya-install --show-packages-path` to show current one.
- Added `cobaya-install --skip keyword1 keyword2 ...` to skip components according to a
list of keywords.
- Added citation info of Cobaya
paper: [arXiv:2005.05290](https://arxiv.org/abs/2005.05290)
- Lots of other minor fixes and enhancements.
Likelihoods and Theories
- Support for external likelihoods and theories, referenced by fully qualified package
name.
- Allow referencing likelihood class names directly (`module.ClassName`).
- Ability to instantiate `Likelihood` classes directly outside Cobaya (for testing of
external likelihoods or use in other packages).
- Inherited likelihoods inherit `.yaml` file from parent if no new one is defined.
- Theories and likelihoods specify requirements and define derived products with general
dependencies. `get_requirements()` function replaces `add_theory()`.
- `needs()` method renamed to `must_provide()`, and can now return a dictionary of
requirements conditional on those passed.
- `requires` and `provides` yaml keywords to specify which of ambiguous components handles
specific requirements.
- three initialization methods: `initialize` (from `__init__`), `initialize_with_params` (
after parameter assignment) and `initialize_with_provider` (once all configured).
- `Likelihood` now inherits from `Theory`, with general cached compute and `deque` states.
- `Likelihood` and `Theory` can be instantiated from `{external: class}`.
- Derived parameters in likelihood `.yaml` can be explicitly tagged with `derived:True`.
- Renamed `renames` of likelihood to `aliases` (to avoid clash with `renames` for
parameters).
- Added automatic aggregated chi2 for likelihoods of the same `type`.
- More documentation for how to make internal and external likelihood classes.
- Support for `HelperTheory` classes to do sub-calculations for any `Theory` class with
separate nuisance parameters and speeds.
- `classmethod` `get_class_options()` can be used to generate class defaults dynamically
based on input parameters.
- Added tests: `test_dependencies.py`, `test_cosmo_multi_theory.py`.
- External likelihood functions: changed how derived parameters are specified and
returned, and how externally-provided quantities are requested and obtained at run
time (see docs).
Samplers
- Samplers can now be initialized passing an already initialized model.
- Return value of `cobaya-run` now `(updated_info, sampler_instance)`. Sampler products
can be retrieved as `sampler_instance.products()`.
- Sampler method now sets cache size.
- Automatic timing of likelihood and theory components to determine speed before
constructing optimized blocking.
- Amount of oversampling can now be changed for MCMC and PolyChord, and it is taken into
account at block sorting.
- Better dealing with files created during sampling: now all are identified and removed
when `--force` used (using regexps).
- Added `cobaya-run --test` option that just initializes model and sampler.
MCMC
- Added progress tracking (incl. acceptance rate), and a plotting tool for it.
- Dragging now exploits blocks within slow and fast groups.
PolyChord
- Updated to PolyChord 1.17.1.
- Changed naming convention for raw output files, and added `getdist`
-compatible `.paramnames`.
- Many defaults changes and useful documentation (Thanks Will Handley
williamjameshandley).
Minimize
- Support for auto-covmat as for mcmc.
- Fix for different starting points starting from existing chains using mpi.
- Fixes for bounds and rounding errors.
- Steps set from diagonal of inverse of covariance (still no use of correlation structure)
.
- Warnings for differences between mpi starting points.
Cosmology
- Added `matter_power_spectrum` theory output for `z,k,P(k)` unsplined arrays.
- Fixed several bugs with `Pk_interpolator` (e.g. conflicts between likelihoods).
- `Pk_interpolator` calling arguments now different.
- Added `sigma_R` for linear rms fluctuation in sphere of radius `R`.
- Fixed problems with getting same background array theory results from different
likelihoods.
- renamed `H` (array of `H(z)`) to `Hubble`.
- Boltzmann codes now consistent with varying `T_CMB`.
- changed `use_planck_names` to more general `use_renames` etc.
- DES likelihood now use numba if installed to give nearly twice faster performance.
- GUI input file generator allows to inspect auto-selected covariance matrices.
CAMB
- Calculation using transfer functions for speed up when only initial power spectrum and
non-linear model parameters changed (even for non-linear lensing).
- Optimizations for which quantities computed.
- Option to request `CAMBdata` object from CAMB to access computed results directly.
- Fix for getting source windows power spectra.
- `external_primordial_pk` flag to optionally use a separate Cobaya Theory to return to
the (binned) primordial power spectrum to CAMB.
- exposes all possible input/output parameters by introspection, making it easier to
combine with other Theory classes using same parameter names.
CLASSY
- Updated to 2.9.3.
- Many small fixes.