Skip to content

hersle/SymBoltz.jl

Repository files navigation

SymBoltz.jl

Documentation Code paper Build status License

SymBoltz.jl is a Julia package for solving the linear Einstein-Boltzmann equations in cosmology. It is:

  • Symbolic-numeric: Models are specified with symbolic equations in a simple, convenient and extensible high-level format, then automatically compiled to fast numerical functions that are solved.
  • Approximation-free: Full equations are solved at all times without tight-coupling, ultrarelativistic fluid and radiation-streaming approximations (TCA, UFA and RSA) using efficient implicit ODE integrators.
  • Differentiable: Get derivatives of any output (e.g. power spectra) with respect to any input (e.g. cosmological parameters) using automatic differentiation (exact to numerical precision and does not need step size tuning).

Installation

Install Julia, launch julia and run:

using Pkg; Pkg.add("SymBoltz")

Documentation

Visit the documentation pages to get started with tutorials and examples.

Gallery

bilde

Citation

If you use SymBoltz in your work, please cite this paper:

@article{SymBoltz,
  title = {{SymBoltz.jl}: a symbolic-numeric, approximation-free and differentiable linear {Einstein-Boltzmann} solver},
  author = {Herman Sletmoen},
  year = {2025},
  journal = {arXiv},
  eprint = {2509.24740},
  archiveprefix = {arXiv},
  primaryclass = {astro-ph.CO},
  doi = {10.48550/arXiv.2509.24740},
  url = {http://arxiv.org/abs/2509.24740},
}

About

A symbolic-numeric, approximation-free and differentiable linear Einstein-Boltzmann solver

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published