GLoW, hi_class and related projects

Scientific Software

Two open-source codes anchor the group's work: GLoW for wave-optics gravitational lensing, and hi_class for cosmology in general scalar–tensor theories. Both are documented and used beyond our own papers.

GLoW

Gravitational Lensing of Waves · Used in 18 publications.

GLoW computes the amplification factor for gravitational waves propagating through a gravitational lens, in the wave-optics regime where diffraction and interference matter. It handles general matter distributions (not only the handful of symmetric lenses with closed-form solutions) by combining contour-integration and time-domain methods with careful treatment of the singular Fermat potential, and it is fast enough to sit inside a parameter-estimation loop. It is the engine behind our analyses of stochastic diffraction, of weakly lensed gravitational waves, and of GW231123 as a magnified and diffracted merger.

git clone https://github.com/glow-astro/GLoW
cd GLoW
pip install .

Requires numpy and scipy; the optional C backend also needs GSL. See the repository README for details.

Paper
Villarrubia-Rojo et al., arXiv:2409.04606
Cite
the paper and the repository, plus the method papers for the algorithms you use
Examples
notebooks in the repository
Contributors
Héctor Villarrubia-Rojo (lead developer), Stefano Savastano, Lyla Choi, Srashti Goyal, Liang Dai, Giovanni Tambalo, Miguel Zumalacárregui.
  • Python
  • wave optics
  • gravitational-wave lensing
  • open source

hi_class

Horndeski in the Cosmic Linear Anisotropy Solving System · Used in 99 publications.

hi_class extends the CLASS Einstein–Boltzmann solver to general Horndeski scalar–tensor theories, producing accurate cosmological observables (CMB spectra, matter power spectra, background evolution) for essentially any dark-energy or modified-gravity model in that class. Fast and stable enough for Markov-chain analyses and interfaced with MontePython, it is used to confront gravity theories with cosmological data, and was behind our work on Galileon solutions to the Hubble tension and on the observational future of scalar–tensor cosmology.

git clone https://github.com/hiclass-code/hi_class_public
cd hi_class_public/class
make clean; make   # `make class` builds without the Python wrapper

Builds like CLASS, and includes the classy Python wrapper. Test the build with ./class explanatory.ini.

The wiki covers installation, running and how to specify a model, either through a covariant Lagrangian or through the EFT α-functions. explanatory.ini documents every input parameter.

Papers
Zumalacárregui et al., JCAP 08 (2017) 019; Bellini, Sawicki & Zumalacárregui, JCAP 02 (2020) 008
Cite
both hi_class papers, plus the CLASS references (at minimum arXiv:1104.2933)
Examples
explanatory.ini, plus course material on the Talks & Outreach page
Contributors
Miguel Zumalacárregui, Emilio Bellini, Ignacy Sawicki, Julien Lesgourgues, Pedro G. Ferreira.
  • C
  • Python wrapper
  • Einstein–Boltzmann
  • dark energy
  • open source

The GLoW code logo was designed by Ana Carvalho.

Code accompanying papers

Repositories that reproduce the results of a specific paper: figures, numbers and the analysis behind them.

Further public repositories are on my GitHub page.

Resources for students

Tools I recommend to people starting out in this field.

Einstein–Boltzmann solvers

CLASS is my solver of choice for cosmological predictions, and the basis of hi_class. The CAMB online tool is a quick way to get spectra without installing anything.

Tensor calculus

Two excellent Mathematica packages: xAct handles symbolic differential geometry in full generality but takes real effort to learn; RGTC is easy to pick up but limited to tensor computations in a fixed coordinate system.

Course material

Lecture notes and exercises for hi_class and MontePython, prepared for graduate schools, are collected on the Talks & Teaching page.