Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Dynamics of precessing black-hole binaries

Project Description


Author Davide Gerosa


Copyright Copyright (C) 2016 Davide Gerosa

Licence CC BY 4.0

Version 1.0.2


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:


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

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.


precession has been used in the following published papers:


v1.0.0 (stable)


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

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.

Release History

This version
History Node


History Node


History Node


History Node


History Node

Download Files

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

File Name & Hash SHA256 Hash Help Version File Type Upload Date
(45.7 kB) Copy SHA256 Hash SHA256
Source Nov 9, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting