Skip to main content

Surrogate Final BH properties.

Project description

github PyPI version Conda Version DOI license Build Status

Welcome to surfinBH!


surfinBH provides surrogate final Black Hole properties for mergers of binary black holes (BBH).

These fits are described in the following papers:
[1] V. Varma, D. Gerosa, L. C. Stein, F. Hébert and H. Zhang, arxiv:1809.09125.

[2] V. Varma, S. E. Field, M. A. Scheel, J. Blackman, D. Gerosa, L. C. Stein, L. E. Kidder, H. P. Pfeiffer, arxiv:1905.09300.

[3] M. Boschini, D. Gerosa, V. Varma, et al., arXiv:2307.03435

If you find this package useful in your work, please cite reference [1] 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 compatible with 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

From source

git clone
cd surfinBH
git submodule init
git submodule update
python install

If you do not have root permissions, replace the last step with python install --user


All of these can be installed through pip or conda.


import surfinBH

See list of available fits

>>> ['NRSur3dq8Remnant', 'surfinBH7dq2', 'NRSur7dq4Remnant', 'NRSur7dq4EmriRemnant']

Pick your favorite fit and get some basic information about it.

fit_name = 'NRSur7dq4Remnant'

>>> 'Fits for remnant mass, spin and kick veclocity for generically precessing BBH systems up to mass ratio 4.'

>>> 'arxiv:1905.09300'

Load the fit

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:

Current fits
Older fits


We also provide a tool to visualize the binary black hole scattering process, see binary black hole explorer. Here's an example:

Making contributions

See this README for instructions on how to make contributions to this package.


The code is maintained by Vijay Varma. You can find the list of contributors here. Please report bugs by raising an issue on our GitHub repository.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

surfinBH-1.2.3.tar.gz (29.1 kB view hashes)

Uploaded source

Built Distribution

surfinBH-1.2.3-py3-none-any.whl (33.5 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page