Surrogate Final BH properties
Switch branches/tags
Nothing to show
Clone or download
Latest commit 1324cbc Nov 23, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Make omega_switch an optional param Sep 13, 2018
images Change cover image Nov 23, 2018
surfinBH version 1.0.1 Nov 23, 2018
.gitignore update .gitignore Sep 8, 2018
.gitmodules Add .travis.yml Aug 26, 2018
.travis.yml Remove jupyter stuff from .travis Sep 28, 2018
LICENSE Add README_developers Aug 26, 2018 Try not specifying versions for numpy, scipy, h5py Sep 12, 2018

github PyPI 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] Vijay Varma, Davide Gerosa, François Hébert, Leo C. Stein and Hao Zhang, arxiv:1809.09125.

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 is compatible with both python2 and python3. This package lives on GitHub and is tested every day with Travis CI. 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

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

>>> ['surfinBH3dq8', 'surfinBH7dq2']

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

fit_name = 'surfinBH7dq2'

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

>>> 'arxiv:1809.09125'

Load the fit

This only needs to be done once at the start of your script.

fit = surfinBH.LoadFits(fit_name)
>>> Loaded surfinBH7dq2 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:


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.

You can find the list of contributors here.


The code is developed and maintained by Vijay Varma. Please, report bugs to