Skip to main content

hi_class: Horndeski in the Cosmic Linear Anisotropy Solving System

hi_class extends the CLASS Boltzmann code to cover Horndeski and related scalar-tensor models of dark energy and modified gravity. It is based on CLASS by Julien Lesgourgues, with major inputs from Thomas Tram and others.

Authors

  • Emilio Bellini
  • Ignacy Sawicki
  • Miguel Zumalacarregui

Installation

From PyPI/TestPyPI

pip install hiclassy

This installs the Python wrapper and builds the C core. You need a working C compiler (e.g. gcc) and, optionally, OpenMP support for parallel execution.

From source

make clean
make class

To build the Python wrapper, run:

make

If compilation fails, check the Makefile for compiler, optimization flags, and OpenMP settings.

Quick start

Use the Python interface:

from hiclassy import HiClass

The HiClass object is the equivalent of the Class object for standard Class. All methods and attributes, plus additional HiClass specific, are shared between the two. Then, the usage of the two should be equivalent.

If you want to use the C executable instead, you can run:

./class explanatory.ini

Parameter documentation and examples are available in hi_class.ini and explanatory.ini, plus the example files in gravity_models/.

Citing hi_class

If you use hi_class, please cite:

  • M. Zumalacarregui, E. Bellini, I. Sawicki, J. Lesgourgues, P. Ferreira, "hi_class: Horndeski in the Cosmic Linear Anisotropy Solving System", JCAP 1708 (2017) no.08, 019, http://arxiv.org/abs/arXiv:1605.06102
  • E. Bellini, I. Sawicki, M. Zumalacarregui, "hi_class: Background Evolution, Initial Conditions and Approximation Schemes", http://arxiv.org/abs/arXiv:1909.01828

Please also cite the relevant CLASS papers, including:

Plotting utilities

The package includes the Class Plotting Utility CPU.py for plotting Cl's, P(k), and related outputs, including model comparisons. Run:

python CPU.py --help

A MATLAB helper is available in plot_CLASS_output.m.

Development

We recommend developing from the GitHub repository:

https://github.com/emiliobellini/hi_class_public

For hi_class-specific updates, see this repository and the gravity_models/ examples.

Support

For support, please open an issue in the repository or refer to the documentation at http://hiclass-code.net.

Weyl power and growth conventions

Write W = (phi + psi)/2 and Q_W(k,z) = k**4 P_W(k,z). HiClass returns Q_W in 1/Mpc, with k in 1/Mpc. It is the power spectrum of k**2 W, not the dimensionless power per logarithmic interval.

The clients emu_like and hi_fast accept q in h/Mpc and retain the historical numerical normalization S_W(q,z) = h**3 Q_W(h*q,z) for compatibility with existing datasets. This is not matter power in (Mpc/h)**3; new emu_like Weyl headers label it h^3/Mpc. Ratio targets additionally divide by their stored reference spectrum.

For every species, f = (1/2) d ln P / d ln a = -(1+z)/(2P) dP/dz. For Weyl, P denotes the rescaled Weyl power; its growth can be negative. Both clients differentiate HiClass power with second-order differences and dz = 1e-3. They use a forward stencil near z=0. emu_like also uses a backward stencil at the native upper time boundary; hi_fast reserves coverage for its upper stencil. The fixed h normalization cancels in f.

Weyl requires a HiClass build exposing pk_weyl, pk_weyl_lin, get_pk_weyl, and get_pk_weyl_lin. Both clients request wPk automatically. emu_like follows the configured nonlinear setting and rejects nonlinear Weyl requests; hi_fast explicitly uses linear power. The unchanged get_Weyl_pk_and_k_and_z remains a comparison accessor, not the source of client-side extrapolation.

Below the native k_min, the leading-order prescription is Q_W(k,z) = (k/k_min)**n_s Q_W(k_min,z). It assumes a k-independent Weyl source at leading order and a single adiabatic analytic primordial power law with alpha_s = beta_s = 0. Other primordial setups remain usable within the native grid but are rejected below k_min. There is no high-k or redshift extrapolation, and k must be strictly positive. Agreement between implementations does not by itself establish this asymptotic approximation's accuracy for every modified-gravity model.

Regenerating datasets updates targets and reference tables; existing trained emulator weights are not changed by these code updates.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hiclassy-3.4.0.0.tar.gz (6.6 MB view details)

Uploaded Source

File details

Details for the file hiclassy-3.4.0.0.tar.gz.

File metadata

  • Download URL: hiclassy-3.4.0.0.tar.gz
  • Upload date:
  • Size: 6.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.15

File hashes

Hashes for hiclassy-3.4.0.0.tar.gz
Algorithm Hash digest
SHA256 8658d4a8bbcd3e19d6c2625ea1ce1a4321c316004c24f96090b43bb45293f413
MD5 d02ef33335e026d715365cbf43272df4
BLAKE2b-256 65ca90c6c2a1bed259978dc830ed916b850ec7d84eefb6b0b3555ca1ab7ea3c0

See more details on using hashes here.

Release history Release notifications | RSS feed

3.4.0.1

1 file

This release

3.4.0.0 This release

1 file

3.3.4.5

1 file

3.3.4.4

1 file

3.3.4.3

1 file

3.3.4.2

1 file

3.3.4.1

1 file

3.3.4.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page