SIGWAY¶
SIGWAY (Scalar-Induced Gravitational Wave AnalYsis) computes the stochastic gravitational-wave background induced at second order by primordial curvature perturbations — scalar-induced gravitational waves (SIGWs). It is under active development by the LISA Cosmology Working Group; if you use it, please cite arXiv:2501.11320.
You build a spectrum from three interchangeable pieces, composed into one model:
flowchart LR
P["𝒫<sub>ζ</sub>(k)<br/>primordial spectrum"] --> G(["OmegaGW"])
K["kernel<br/>source era"] --> G
I["integrator<br/>(s, t) quadrature"] --> G
G --> O["Ω<sub>GW</sub>(f)"]
The whole pipeline is written in JAX: every model is
jit-compiled and differentiable, so a Fisher forecast is one .jacobian call away.
What it can do¶
- Analytic power spectra. Hand
AnalyticPerturbationsany closed-form \(\mathcal{P}_\zeta(k)\) — a log-normal peak, broken power law, flat-with-cutoff, oscillatory multifield template, … — and get \(\Omega_{\mathrm{GW}}(f)\). Cheap and fully differentiable. - Inflation from first principles.
SingleFieldPerturbationswraps the Mukhanov–Sasaki solver (SingleFieldSolver): give it an inflaton potential \(V(\phi)\) and it integrates the background and the mode equations to produce \(\mathcal{P}_\zeta\) — e.g. ultra-slow-roll quasi-inflection-point models. - Binned / model-independent reconstruction.
Binned_P_zetarepresents \(\mathcal{P}_\zeta\) as free amplitudes in \(k\)-bins — a template-free way to fit or forecast the spectrum, exposing the sameparameter_names/jacobianinterface as everything else. - Different cosmological eras. Switch the source era by swapping the kernel:
RadiationKernel(radiation domination) orInstantEMDKernel(an early matter-dominated era ending in a sudden transition to radiation). - Built for inference. Models are
jit-compiled and differentiable: one ordered parameter vector plus a.jacobian(forward-mode autodiff, with finite differences for non-smooth knobs such as a source cutoff) gives Fisher forecasts directly. - Composable & extensible.
OmegaGWsimply composes a perturbations object, a kernel and an integrator — each a small base class you can subclass to add new physics or a new quadrature.
Where to start¶
- Installation — get it running.
- Simple example — the minimum to get a spectrum.
- Advanced example — a tour of the components.
- Theory & modelling — the physics, and which knob means what.