gwModels
This package is intended to host a variety of data-driven and phenomenological models for the gravitational radiation (waveforms) emitted from binary black hole mergers. For questions, suggestions or collaborations, please feel free to drop an email to tousifislam24@gmail.com. Detailed documentation is available at https://tousifislam.com/gwModels/
Conventions
Throughout the package, we adopt the following conventions for binary black hole parameters:
| Symbol | Description | Range |
|---|---|---|
q |
Mass ratio $m_1/m_2$ (body 1 is always the more massive) | $q \geq 1$ |
a1, a2 |
Dimensionless spin magnitudes | $[0, 1]$ |
chi1, chi2 |
Dimensionless spin vectors [chi1x, chi1y, chi1z] |
— |
chi1z, chi2z |
Spin components along orbital angular momentum | $[-1, 1]$ |
theta1, theta2 |
Zenith angle between spin and orbital angular momentum | — |
phi1, phi2 |
Azimuthal angle of spin projection onto the orbital plane | — |
delta_phi |
Azimuthal angle difference between spin projections | — |
e_ref |
Eccentricity at reference | — |
ano_ref |
Anomaly at reference | — |
Getting the package
This package requires Python 3 and gwtools.
From PyPI
pip install gwModels # core (numpy, scipy, matplotlib, gwtools)
pip install gwModels[surrogates] # + gwsurrogate
pip install gwModels[lal] # + lalsuite
pip install gwModels[seob] # + pyseobnr
pip install gwModels[kicks] # + scikit-learn, torch, nflows (remnant kick models)
pip install gwModels[all] # all optional dependencies
From source
git clone https://github.com/tousifislam/gwModels
cd gwModels
pip install -e .
Data files
Model data files are stored in the gwModels/data/ directory. After cloning from source, verify all data files are present:
python gwmodels_setup_data.py
Available Models
1. Waveform Frameworks
Frameworks for converting quasi-circular waveforms into eccentric waveforms using known quadrupolar eccentric waveforms.
| Model | Description | Reference | Tutorial |
|---|---|---|---|
| gwNRHME | Non-spinning quasi-circular HM waveform → eccentric | 2403.15506 | 1_1 |
| gwNRXHME | Non-precessing quasi-circular HM waveform → eccentric | 2502.02739 | 1_1 |
2. Eccentric Higher-Mode Waveforms
Eccentric waveform models obtained by combining circular surrogates with an eccentric model through gwNRHME.
| Model | Components | Reference | Tutorial |
|---|---|---|---|
| NRHybSur3dq8-gwNRHME | NRHybSur3dq8 + SEOBNRv5EHM | 2408.02762 | 2_1 |
| BHPTNRSur1dq1e4-gwNRHME | BHPTNRSur1dq1e4 + SEOBNRv5EHM | 2408.02762 | 2_2 |
3. Eccentricity Estimation
| Model | Description | Reference | Tutorial |
|---|---|---|---|
| eccentricity_estimation | Computes $e_{\xi}$, $e_{\omega}$, $e_{\rm gw}$ | 2502.02739 | 3_1 |
4. Dynamics: Eccentricity Evolution
| Model | Type | Parameter Range | Reference | Tutorial |
|---|---|---|---|---|
| gwEccEvNS | NR-based approximate | Non-spinning | 2502.02739 | 4_1 |
| gwEccEvNSv2 | Analytical | Non-spinning | 2604.17868 | 4_2 |
| gwEccEvolve_NoSpinq4 | SVD surrogate + GPR | $1 \leq q \leq 4$, $0.003 \leq e_0 \leq 0.443$ | 2604.17868 | 4_3 |
5. Remnant Properties: Final Mass, Spin, and Kick
gwModelRem family (unified remnant models)
A single framework covering aligned-spin, precessing and eccentric binaries, plus the point-particle limit, from Islam, Wadekar & Khanna (2026) (2608.00934). All fitted coefficients are inline in the source.
| Model | Regime | Inputs | Outputs | Valid Range | Extra Deps | Reference | Tutorial |
|---|---|---|---|---|---|---|---|
| gwModelRemS | Aligned-spin, quasi-circular | $q, \chi_{1z}, \chi_{2z}$ | $M_f, \chi_f, L_{\rm peak}, M\omega_{\rm peak}, v_{\rm kick}$ | $1 \leq q \leq 1000$ | — | 2608.00934 | 6_1 |
| gwModelRemP | Precessing, quasi-circular | $q, a_i, \theta_i, \phi_i$ at $r=8M$ | $M_f, |\chi_f|, \theta_f, L_{\rm peak}$ | $q \leq 1000$, $S_\perp \leq 0.93$ | — | 2608.00934 | 6_2 |
| gwModelRemSE | Eccentric, non-precessing | $q, \chi_{iz}, e_{\rm ref}, \ell_{\rm ref}$ at $t=-2500M$ | $M_f, \chi_f, v_{\rm kick}, L_{\rm peak}$ | $q \leq 4$, $e_0 \leq 0.25$, non-spinning | — | 2608.00934 | 6_3 |
| gwModelRemPE | Eccentric, precessing | $q, a_i, \theta_i, \phi_i$ at $r=8M$; $e_{\rm ref}, \ell_{\rm ref}$ at $t=-2500M$ | $M_f, |\chi_f|, \theta_f, L_{\rm peak}$ | $q \leq 4$, $e_0 \leq 0.25$ | — | 2608.00934 | 6_4 |
| gwModelRemP_flow | Precessing recoil distribution | $q, a_i, \theta_i, \phi_i$ at $r=8M$ | $P(v_{\rm kick})$ | $q \leq 1000$ | torch, nflows |
2608.00934 | 6_5 |
| gwModelEMRI | Point-particle limit | $q, \chi, \theta_{\rm inc}, e_{\rm sep}$ | $M_f, \chi_f$ | $q \gg 1000$ | — | 2608.00934 | -- |
import numpy as np
import gwModels
Mf, chif, Lpeak, wpeak, vkick = gwModels.remnants.gwModelRemS(3.0, 0.5, -0.2)
Mf, af, theta_f, Lpeak = gwModels.remnants.gwModelRemP(
2.0, 0.7, 0.3, np.pi/3, np.pi/4, 0.0, 0.0)
flow = gwModels.remnants.gwModelRemP_flow()
median, p5, p95 = flow.predict(2.0, 0.7, 0.3, np.pi/3, np.pi/4, 0.0, 0.0)
Per-quantity functions are also available: gwModelRemS_mf, gwModelRemS_chif,
gwModelRemS_Lpeak, gwModelRemS_omega_peak, gwModelRemS_kick, and the
corresponding gwModelRemP_* and gwModelRemSE_* entry points.
Two caveats worth reading before use:
- gwModelRemPE applies the gwModelRemSE corrections to a precessing baseline, treating eccentricity and precession as independent at leading order. This is the intended construction, but the factorization has not been checked against precessing eccentric NR, of which very little exists, so treat its eccentric corrections with the same caution as gwModelRemSE.
- gwModelRemSE is provisional. The circular limit is exact, but at $e_{\rm ref} > 0$ the correction does not yet improve on the quasi-circular baseline on NR data (neutral to a few percent worse inside its calibration domain). Do not extrapolate past $e_{\rm ref} \sim 0.3$, where the anomaly modulation becomes an order of magnitude larger than the residual it corrects.
- gwModelEMRI's separatrix solver does not always converge, failing for
about 6% of a grid over $(\chi, \theta_{\rm inc}, e)$, worst near polar
inclination at high spin. It warns by default; pass
return_converged=Truefor the mask. Equatorial orbits always converge.
The gwModelRemS recoil is a refit of gwModel_kick_q200 on an expanded
dataset, and gwModelRemP_flow supersedes gwModel_kick_prec_flow. Both
earlier models remain available and unchanged.
Kick velocity models
| Model | Type | Valid Range | Extra Deps | Reference | Tutorial |
|---|---|---|---|---|---|
| gwModel_kick_q200 | Analytical (aligned-spin) | $1 \leq q \leq 1000$ | — | 2511.11536 | 5_1 |
| gwModel_kick_q200_GPR | GPR (aligned-spin) | $1 \leq q \leq 1000$ | scikit-learn |
2511.11536 | 5_1 |
| gwModel_kick_prec_flow | Normalizing flow (precessing) | $q \leq 100$ | torch, nflows |
2511.11536 | 5_1 |
| HLZ_2014_aligned_spin | Analytical (aligned-spin) | — | — | 1406.7295 | 5_2 |
| bbh_final_kick_precessing_CLZM2007 | Analytical (precessing) | — | — | Gonzalez+ 2007, Campanelli+ 2007 | 5_2 |
Final mass and spin models
| Model | Quantity | Spin Type | Reference | Tutorial |
|---|---|---|---|---|
| bbh_final_mass_precessing_BMR2012 | Final mass | Precessing | Barausse, Morozova & Rezzolla (2012) | 5_2 |
| bbh_final_spin_precessing_HBR2016 | Final spin | Precessing | Hofmann, Barausse & Rezzolla (2016) | 5_2 |
| bbh_final_mass_non_precessing_UIB2016 | Final mass | Aligned-spin | 1611.00332 | 5_2 |
| bbh_final_spin_non_precessing_UIB2016 | Final spin | Aligned-spin | 1611.00332 | 5_2 |
Issue tracker
Known bugs are recorded in the project bug tracker: https://github.com/tousifislam/gwModels/issues
License
This code is distributed under the MIT License. Details can be found in the LICENSE file.
Maintainer
Tousif Islam
Citation guideline
If you make use of the gwModels framework, please cite the relevant papers:
@article{Islam:2024rhm,
author = "Islam, Tousif",
title = "{Straightforward mode hierarchy in eccentric binary black hole mergers and associated waveform model}",
eprint = "2403.15506",
archivePrefix = "arXiv",
primaryClass = "astro-ph.HE",
month = "3",
year = "2024"
}
@article{Islam:2024tcs,
author = "Islam, Tousif",
title = "{Study of eccentric binary black hole mergers using numerical relativity and an inspiral-merger-ringdown model}",
eprint = "2403.03487",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
month = "3",
year = "2024"
}
@article{Islam:2024zqo,
author = "Islam, Tousif and Khanna, Gaurav and Field, Scott E.",
title = "{Adding higher-order spherical harmonics in non-spinning eccentric binary black hole merger waveform models}",
eprint = "2408.02762",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
month = "8",
year = "2024"
}
@article{Islam:2025oiv,
author = "Islam, Tousif and Venumadhav, Tejaswi",
title = "{Post-Newtonian theory-inspired framework for characterizing eccentricity in gravitational waveforms}",
eprint = "2502.02739",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
month = "2",
year = "2025"
}
@article{Islam:2026blk,
author = "Islam, Tousif and others",
title = "{Including higher-order modes in a quadrupolar eccentric numerical relativity surrogate using universal eccentric modulation functions}",
eprint = "2604.17868",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
month = "4",
year = "2026"
}
@article{Islam:2025drw,
author = "Islam, Tousif and Wadekar, Digvijay",
title = "{Accurate models for recoil velocity distribution in black hole mergers with comparable to extreme mass-ratios and their astrophysical implications}",
eprint = "2511.11536",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
doi = "10.1103/4jvv-qg4h",
journal = "Phys. Rev. D",
volume = "113",
number = "10",
pages = "104017",
year = "2026"
}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gwmodels-0.2.0.tar.gz.
File metadata
- Download URL: gwmodels-0.2.0.tar.gz
- Upload date:
- Size: 5.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64123d449f0968f5fafc4d4a8772e8053172b3d996228f0265c320e8ebc9e0a7
|
|
| MD5 |
dc8bf68170c52a4b453924f943fdbeeb
|
|
| BLAKE2b-256 |
07b8234e5e8829b7de792788093bd15dafba78733d16ba587ae8112095f05322
|
File details
Details for the file gwmodels-0.2.0-py3-none-any.whl.
File metadata
- Download URL: gwmodels-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.9 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.10.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2df045f78e106f21c558270c865421335c58487714a99f9a0a0c8f989852b3af
|
|
| MD5 |
e8a69bb7cbd9217a60577cdeb8c19d8b
|
|
| BLAKE2b-256 |
890f4341d9f60653e366f66a2a8338166cc684251c31e670e5a5f9ca91e59fef
|