Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gwBOB/gen_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ def get_qnm(chif,Mf,l,m,n=0,sign=1):
Parameters
----------
chif : float
Dimensionless final spin magnitude (|chi|).
Dimensionless final spin magnitude (chi).
Mf : float
Final black-hole mass (geometric units).
l : int
Expand Down
52 changes: 36 additions & 16 deletions joss/paper.bib
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
@article{mcwilliams2019analytical,
title={Analytical black-hole binary merger waveforms},
author={McWilliams, Sean T},
journal={Physical review letters},
journal={Physical Review Letters},
volume={122},
number={19},
pages={191102},
year={2019},
doi = {10.1103/PhysRevLett.122.191102},
publisher={APS}
}
@misc{kankani2025,
author = "Anuj Kankani and Sean T. McWilliams",
note = "in preparation",
year = "2025",
@article{kankani2025,
title={BOB the (Waveform) builder: Optimizing analytical black-hole binary merger waveforms},
author={Kankani, Anuj and McWilliams, Sean T},
journal={arXiv preprint arXiv:2510.25012},
doi = {10.48550/ARXIV.2510.25012},
year={2025}
}
@article{SEOBNR,
title={Improved effective-one-body model of spinning, nonprecessing binary black holes for the era of gravitational-wave astrophysics with advanced detectors},
Expand All @@ -21,6 +24,7 @@ @article{SEOBNR
number={4},
pages={044028},
year={2017},
doi = {10.1103/PhysRevD.95.044028},
publisher={APS}
}
@article{SEOBNRv5,
Expand All @@ -31,6 +35,7 @@ @article{SEOBNRv5
number={12},
pages={124035},
year={2023},
doi = {10.1103/PhysRevD.108.124035},
publisher={APS}
}

Expand All @@ -42,16 +47,19 @@ @article{TEOB1
number={10},
pages={104052},
year={2018},
doi = {10.1103/PhysRevD.98.104052},
publisher={APS}
}
@misc{TEOB2,
title={Effective-one-body waveform model for non-circularized, planar, coalescing black hole binaries: the importance of radiation reaction},
author={Alessandro Nagar and Rossella Gamba and Piero Rettegno and Veronica Fantini and Sebastiano Bernuzzi},
year={2024},
eprint={2404.05288},
archivePrefix={arXiv},
primaryClass={gr-qc},
url={https://arxiv.org/abs/2404.05288},
@article{TEOB2,
title={Effective-one-body waveform model for noncircularized, planar, coalescing black hole binaries: The importance of radiation reaction},
author={Nagar, Alessandro and Gamba, Rossella and Rettegno, Piero and Fantini, Veronica and Bernuzzi, Sebastiano},
journal={Physical Review D},
volume={110},
number={8},
pages={084001},
year={2024},
doi = {10.1103/PhysRevD.110.084001},
publisher={APS}
}

@article{surr1,
Expand All @@ -62,6 +70,7 @@ @article{surr1
number={6},
pages={064045},
year={2019},
doi = {10.1103/PhysRevD.99.064045},
publisher={APS}
}
@article{surr2,
Expand All @@ -72,6 +81,7 @@ @article{surr2
number={12},
pages={121102},
year={2015},
doi = {10.1103/PhysRevLett.115.121102},
publisher={APS}
}
@article{sxs_cat1,
Expand All @@ -82,6 +92,7 @@ @article{sxs_cat1
number={19},
pages={195006},
year={2019},
doi = {10.1088/1361-6382/ab34e2},
publisher={IOP Publishing}
}
@article{sxs_cat2,
Expand All @@ -92,6 +103,7 @@ @article{sxs_cat2
number={24},
pages={241104},
year={2013},
doi = {10.1103/PhysRevLett.111.241104},
publisher={APS}
}
@misc{sxs_cat3,
Expand All @@ -101,6 +113,7 @@ @misc{sxs_cat3
eprint={2505.13378},
archivePrefix={arXiv},
primaryClass={gr-qc},
doi = {10.1088/1361-6382/adfd34},
url={https://arxiv.org/abs/2505.13378}
}
@article{nrpy,
Expand All @@ -111,6 +124,7 @@ @article{nrpy
number={6},
pages={064036},
year={2018},
doi = {10.1103/PhysRevD.97.064036},
publisher={APS}
}
@article{gw150914,
Expand All @@ -121,11 +135,17 @@ @article{gw150914
number={6},
pages={061102},
year={2016},
doi = {10.1103/PhysRevLett.116.061102},
publisher={APS}
}
@article{BOBIMR,
title={Spinning Effective-to-Backwards One Body ($$\backslash$texttt $\{$SEBOB$\}$ $): combining Effective One-Body inspirals and Backwards One-Body merger-ringdowns for aligned spin black hole binaries},
title={Combining effective one-body inspirals and backwards one-body merger-ringdowns for aligned spin black hole binaries},
author={Mahesh, Siddharth and McWilliams, Sean T and Etienne, Zachariah},
journal={arXiv preprint arXiv:2508.20418},
year={2025}
journal={Physical Review D},
volume={112},
number={12},
pages={124065},
year={2025},
doi = {10.1103/67c8-1rv3},
publisher={APS}
}
14 changes: 11 additions & 3 deletions joss/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,21 @@ The Backwards-One-Body (BOB) model provides an analytical and physically motivat

`gwBOB` provides researchers with a robust and user-friendly Python package, eliminating the need for researchers to build their own custom implementations of BOB. The package allows researchers to easily configure and switch between different flavors of BOB, enabling them to choose the version best suited for their specific research problem. Its interface simplifies initialization by supporting both public NR catalogs [@sxs_cat1; @sxs_cat2; @sxs_cat3] and user provided NR data. Additionally, users can manually specify initial conditions or obtain them directly from NR data. For validation, the package includes built in utilities to streamline comparisons, enabling systematic validation of BOB against both entire NR catalogs and other semi-analytical waveform models. Furthermore, ``gwBOB`` includes additional routines for model comparison, such as one for inferring the remnant black hole's final mass and spin by minimizing the mismatch between a BOB waveform and a target waveform. This capability is particularly useful for quantitative comparisons with models constructed from a sum of quasinormal modes. By integrating utilities for initializing, configuring and validating the model, ``gwBOB`` provides the first complete open-source framework for incorporating any flavor of BOB into research workflows, dramatically reducing the complexity and time required for researchers to utilize the model.

# Related Work
``gwBOB`` is the first publicly available package that allows users to rapidly construct a large variety of BOB flavors and validate them against NR waveforms. As part of the [nrpy](https://github.com/nrpy/nrpy) [@nrpy] code, a full inspiral-merger-ringdown model, using SEOBNRv5 [@SEOBNRv5] for the inspiral and a specific flavor of BOB for the merger-ringdown [@BOBIMR], is available. This package was used extensively in [@kankani2025] to study the accuracy of various flavors of BOB and provide comparisons to NR waveforms and semi-analytical waveform models.
# State of the field
``gwBOB`` is the first publicly available package that allows users to rapidly construct a large variety of BOB flavors and validate them against NR waveforms. As part of the [nrpy](https://github.com/nrpy/nrpy) [@nrpy] code, a full inspiral-merger-ringdown model, using SEOBNRv5 [@SEOBNRv5] for the inspiral and a specific flavor of BOB for the merger-ringdown [@BOBIMR], is available. While this approach focuses on computationally efficiency, and incoporating a specific flavor of BOB into data analysis pipelines, ``gwBOB`` is designed on analyzing BOB as a stand-alone merger ringdown waveform, allowing for a construction of a wide variety of flavors and comparisons to NR waveforms.

# Documentation
# Software Design
``gwBOB`` is designed to drastically simplify the construction and validation of BOB, abstracting away the complexity of implementing BOB from the end user. Because BOB can be developed in various flavors, and the underlying complexity of the equations can change significantly based on the flavor chosen, the primary design goal was to have the user's code be more reflective of a parameter file, specifying the flavor and comparison to make. To achieve this goal, ``gwBOB`` prioritizes research flexibility and ease of use over absolute computational efficiency. When a BOB object is instantiated, several gravitational wave quantities are precomputed and stored. While this increases the initialization time, it drastically simplifies the process of switching between flavors of BOB and comparing to NR waveforms. This design decision is reflective of the most common use case of ``gwBOB``, the generation of various flavors of BOB and comparison against a numerical relativity catalog, which typically consist of a few hundred to thousand waveforms. This stands in contrast to waveform models that are designed for parameter estimation pipelines, where millions of waveforms must be generated and computational efficiency is the utmost priority. ``gwBOB`` was intentionally optimized for the former workflow rather than the latter. However, recognizing the diverse applications of BOB, the core equations required to construct BOB are decoupled from the high level user interface. This allows users to easily integrate BOB into their own custom workflows, where performance may be a stronger priority. In particular, we provide NumPy, SymPy and JAX compatible implementations of the BOB equations, allowing users to choose the backend that best suits their own specific research problem (e.g., combining the analytical nature of BOB with the autodifferentiation capabilities of JAX). While ``gwBOB`` primarily utilizes the SXS catalog [@sxs_cat1; @sxs_cat2; @sxs_cat3] for NR initial data and waveform comparisons, it also supports user provided NR data allowing for a wide variety of use cases.

# Research Impact Statement
This package has been used for the comprehensive analysis of BOB done in [@kankani2025]. In addition, this package is being actively used by multiple researchers to generate BOB waveforms for various research problems.

# Documentation
``gwBOB`` is distributed through PyPI and hosted on [GitHub](https://github.com/AnujKankani/BackwardsOneBody). Documentation is hosted on [readthedocs](https://backwardsonebody.readthedocs.io/en/latest/).

# AI Usage Disclosure
AI tools including ChatGPT and Gemini were used to assist with code review, documentation, and a limited amount of code generation. These tools were also used to review and suggest edits for this paper. This code was primarily developed by human authors, and all AI outputs were reviewed and approved by the authors.

# Acknowledgements

AK and STM were supported in part by NSF CAREER grant PHY-1945130 and NASA grants 22-LPS22-0022 and 24-2024EPSCoR-0010. This research was made possible by the NASA West Virginia Space Grant Consortium, Grant \# 80NSSC20M0055. The authors acknowledge the computational resources provided by the WVU Research Computing Thorny Flat HPC cluster, which is funded in part by NSF OAC-1726534.
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "gwBOB"
version = "1.0.1"
version = "1.0.2"
description = "A Backwards-One-Body Gravitational Waveform Package"
readme = { file = "README.md", content-type = "text/markdown" }
authors = [
Expand Down
Loading