Davide Gerosa

Precession: Dynamics of spinning black-hole binaries with python

Check me out on github.com/dgerosa/precession.

precession is an open-source Python module to study the dynamics of precessing black-hole binaries in the post-Newtonian regime. The code provides a comprehensive toolbox to (i) study the evolution of the black-hole spins along their precession cycles, (ii) perform gravitational-wave driven binary inspirals using both orbit-averaged and precession-averaged integrations, and (iii) predict the properties of the merger remnant through fitting formulae obtained from numerical relativity simulations. precession is a ready-to-use tool to add the black-hole spin dynamics to larger-scale numerical studies such as gravitational-wave parameter estimation codes, population synthesis models to predict gravitational-wave event rates, galaxy merger trees and cosmological simulations of structure formation. precession provides fast and reliable integration methods to propagate statistical samples of black-hole binaries from/to large separations where they form to/from small separations where they become detectable, thus linking gravitational-wave observations of spinning black-hole binaries to their astrophysical formation history. The code is also a useful tool to compute initial parameters for numerical relativity simulations targeting specific precessing systems.

This code is released to the community under the Creative Commons Attribution International license. Essentially, you may use precession as you like but must make reference to our work. When using precession in any published work, please cite the paper describing its implementation:

  • PRECESSION: Dynamics of spinning black-hole binaries with python. D. Gerosa, M. Kesden. PRD 93 (2016) 124066. arXiv:1605.01067

precession is an open-source code distributed under git version-control system on

API documentation can be generated automatically in html format from the code docstrings using pdoc, and is uplodad to a dedicated branch of the git repository

Further information and scientific results are available at:

INSTALLATION

precession works in python 2.x and has been tested on 2.7.10. It can be installed through pip:

pip install precession

Prerequisites are numpy, scipy and parmap, which can be all installed through pip. Information on all code functions are available through Pyhton's built-in help system

import precession
help(precession.function)

Several tests and tutorial are available in the submodule precession.test. A detailed description of the functionalies of the code is provided in the scientific paper arXiv:1605.01067, where examples are also presented.

RESULTS

precession has been used in the following published papers:

RELEASES

DOI

v1.0.0 Stable version released together with the first arxiv submission of arXiv:1605.01067.

v1.0.2 Clarifications on typos in Eq. (36) and (37) of arXiv:1605.01067. See help(precession) for more information.

v1.0.3 Python 3 now supported (hurray!). By default, finalspin now returns more updated result by Hofmann, Barausse and Rezzolla 2016.

CREDITS

The code is developed and maintained by Davide Gerosa. Please, report bugs to

[email protected]

I am happy to help you out!

Thanks: M. Kesden, U. Sperhake, E. Berti, R. O'Shaughnessy, A. Sesana, D. Trifiro', A. Klein, J. Vosmera and X. Zhao.

PRECESSION is an open-source python module to study the dynamics of precessing black-hole binaries in the post-Newtonian regime. The code provides a comprehensive toolbox to (i) study the evolution of the black-hole spins along their precession cycles, (ii) perform gravitational-wave driven binary inspirals using both orbit-averaged and precession-averaged integrations, and (iii) predict the properties of the merger remnant through fitting formulae obtained from numerical relativity simulations. PRECESSION is a ready-to-use tool to add the black-hole spin dynamics to larger-scale numerical studies such as gravitational-wave parameter estimation codes, population synthesis models to predict gravitational-wave event rates, galaxy merger trees and cosmological simulations of structure formation. PRECESSION provides fast and reliable integration methods to propagate statistical samples of black-hole binaries from/to large separations where they form to/from small separations where they become detectable, thus linking gravitational-wave observations of spinning black-hole binaries to their astrophysical formation history. The code is also a useful tool to compute initial parameters for numerical relativity simulations targeting specific precessing systems.

Key links:

D. Gerosa, M. Kesden.
PRECESSION :Dynamics of spinning black-hole binaries with python.
arXiv:1605.01067,  PRD 93 (2016) 124066.

Credits

The code is developed and maintained by Davide Gerosa. Please, report bugs to me: [email protected].
This work is licensed under the CC BY 4.0 licence. Essentially, you can use PRECESSION as you like, but must make reference to our work. If you publish a paper using this code, please drop me an email, so that it can be included in this webpage.
Thanks:  E. Berti, M. Kesden, U. Sperhake, R. O’Shaughnessy, D. Trifiro’, A. Klein, J. Vosmera and X. Zhao.

Results

PRECESSION has been used in the following published papers:

Installation

PRECESSION is uploaded in the Python Package Index PyPI. To install the code from PyPI type

pip install precession

To upgrade from a previous version use

pip install -U precession

If you are new to python or you don’t have pip, have a look at this guide I wrote. Alternatively, you can download the source of the latest version from  GitHub.

The code has been tested on python 2.7 and currently is not compatible with python 3. The python libraries numpy, scipymatplotlib and parmap are specified as essential prerequisites. They can all be installed using pip. If these packages are missing in your system, pip will try to install them when installing PRECESSION. Packages such as scipy are far more complex than PRECESSION: if the installation fail, please refer to their webpage.

Usage

To start using the code, enter a python console and type

import precession

The submodule precession.test provides examples and introductory tutorial to start using the code.

import precession.test

A minimal working example, where a single PN inspiral is performed, can be executed typing

precession.test.minimal()

Various other tests are described in the paper above.

Documentation

A detailed API documentation is regularly uploaded to a dedicated branch of the git repository and is available online. The python built-in help function also provides information on the module and its functions.

help(precession.FUNCTION)

Releases

10.5281/zenodo.51027   v1.0.0 (stable)