surfinBH provides surrogate final Black Hole properties for mergers of binary black holes (BBH).
These fits are described in the following papers:
 V. Varma, D. Gerosa, L. C. Stein, F. Hébert and H. Zhang, arxiv:1809.09125.
 V. Varma, S. E. Field, M. A. Scheel, J. Blackman, D. Gerosa, L. C. Stein, L. E. Kidder, H. P. Pfeiffer, arxiv:1905.09300.
 M. Boschini, D. Gerosa, V. Varma, et al., arXiv:2307.03435
If you find this package useful in your work, please cite reference  and, if available, the relevant paper describing the particular model. Please also cite this package, see the DOI badge at the top of this page for BibTeX keys.
This package lives on GitHub, is
python3, and is tested every week. You can see the current
build status of the master branch at the top of this page.
surfinBH is available through PyPI:
pip install surfinBH
surfinBH is available on conda-forge:
conda install -c conda-forge surfinbh
git clone email@example.com:vijayvarma392/surfinBH.git cd surfinBH git submodule init git submodule update python setup.py install
If you do not have root permissions, replace the last step with
python setup.py install --user
All of these can be installed through pip or conda.
- scikit-learn (at least 0.19.1)
- lalsuite (at least 6.70)
- NRSur7dq2 (only for surfinBH7dq2)
print(list(surfinBH.fits_collection.keys())) >>> ['NRSur3dq8Remnant', 'surfinBH7dq2', 'NRSur7dq4Remnant', 'NRSur7dq4EmriRemnant']
Pick your favorite fit and get some basic information about it.
fit_name = 'NRSur7dq4Remnant' surfinBH.fits_collection[fit_name].desc >>> 'Fits for remnant mass, spin and kick veclocity for generically precessing BBH systems up to mass ratio 4.' surfinBH.fits_collection[fit_name].refs >>> 'arxiv:1905.09300'
This only needs to be done once at the start of your script. If the fit data is not already downloaded, this will also download the data.
fit = surfinBH.LoadFits(fit_name) >>> Loaded NRSur7dq4Remnant fit.
The evaluation of each fit is different, so be sure to read the documentation. This also describes the frames in which different quantities are defined.
We also provide ipython examples for usage of different fits:
NRSur7dq4Remnant (Ref. )
NRSur7dq4EmriRemnant (Ref. )
NRSur3dq8Remnant (called surfinBH3dq8 in Ref. )
- surfinBH7dq2 (Ref. . Superseded by NRSur7dq4Remnant)
We also provide a tool to visualize the binary black hole scattering process, see binary black hole explorer. Here's an example:
See this README for instructions on how to make contributions to this package.