Version history

1.0.0 (planned changes)

  • GW power spectrum for low wavenumbers by using the formulae by Giombi et al., 2024.

  • More polished documentation and examples.

  • Improve unit testing by using more comprehensive reference data, which are stored externally as HDF5. Test whether Git LFS on GitLab would be a suitable storage.

  • Improve integration with Cobaya and add examples.

0.9.0

These modifications were Mika’s master’s thesis.

  • Restructure the project

  • Provide an object-oriented interface for bubbles and spectra

  • Replace the fluid profile solver with a new implementation

  • Add support for equations of state beyond the bag model - Temperature-dependent degrees of freedom and sound speed

  • Add conversion to the gravitational wave frequencies and amplitudes today (\(\Omega_\text{gw,0}\)): include the omgw0 branch by Chloe Hopling

  • Add analysis utilities

  • Improve error handling

  • Improve documentation and publish it on Read the Docs

  • Improve compatibility for macOS on ARM

  • Improve packaging for PyPI and Docker

  • Update dependencies

  • License the project with the MIT license

  • Fix various bugs

0.0.1

These modifications were Mika’s summer project in 2021.

  • Improve code structure by splitting pttools.bubble and pttools.ssmtools to multiple submodules.

  • Improve code quality.
    • Lint each commit automatically with Pylint.

    • Improve compliance with PEP8.

  • Add support for other integrators in addition to scipy.integrate.odeint() such as scipy.integrate.solve_ivp() and NumbaLSODA.

  • Speed up the simulations with Numba and NumbaLSODA.
    • Full GW power spectrum calculations: 5x for 1 CPU, 7x for 4 CPUs

    • Sine transform: Nx for N CPU cores (trivially parallelisable, minus some overhead)

    • ODE integration: 20x faster than scipy.integrate.odeint() with pure Python

  • Add unit testing.
  • Package PTtools with setuptools so that it can be installed with pip. - This prepares the project for being published on PyPI.

  • Add example scripts for running on Slurm clusters.

  • Add Sphinx documentation (the one you’re currently reading).

Previous development

2020-06

Bubble

  • Small improvements to docstrints.

  • Start introducing checks for physical (\(v_\text{wall}, \alpha_n\)): check_wall_speed, check_physical_parameters

SSMtools

  • use analytic formula for high-k sin transforms. Should eliminate spurious high-k signal in GWPS from numerical error.

  • sin_transform now handles array z, simplifying its calling elsewhere

  • resample_uniform_xi function introduced to simply coding for sin_transform of lam

  • Allow calls to power spectra and spectral density functions with 2-component params list, i.e. params = [v_wall, alpha_n] (parse_params) exponential nucleation with parameters (1,) assumed.

  • reduced NQDEFAULT from 2000 to 320, to reduce high-k numerical error when using numerical sin transform

Planned changes

Bubble

  • Include bubble nucleation calculations of beta (from \(V(T,\phi)\))

SSMtools

  • Check default nucleation type for nu function.