Bayesian analysis of black hole ringdowns in gravitational-wave data.
Project description
ringdown
Bayesian analysis of black hole ringdowns. The original paper that inspired this code package is Isi, et al. (2019); a full description of the code and method can be found in Isi & Farr (2021).
Installation
This package is pip installable:
pip install ringdown
For the latest and greatest version, you can install directly from the git repo:
pip install git+https://github.com/maxisi/ringdown.git
Complete Environments
A complete conda environment that includes all the prerequisites (and more!) to install ringdown
can be found in environment.yml
in the current directory:
conda env create -f environment.yml
conda activate ringdown
pip install ringdown
will leave the shell in an environment that includes jupyterlab
ready to explore the ringdown
package.
The environment.yml
file enables running ringdown
in JupyterHub services like MyBinder by pointing MyBinder at this repository or clicking the button at the top of this README.
Examples and tips
See the example gallery in the docs for several examples. You can download the Jupyter notebooks featured in the docs from the docs/examples
.
Performance notes
In order to run Jax on a CPU with four cores and use double precision, you can do the following at the top of your script:
# disable numpy multithreading to avoid conflicts
# with jax multiprocessing in numpyro
import os
os.environ["OMP_NUM_THREADS"] = "1"
# import jax and set it up to use double precision
from jax import config
config.update("jax_enable_x64", True)
# import numpyro and set it up to use 4 CPU devices
import numpyro
numpyro.set_host_device_count(4)
numpyro.set_platform('cpu')
To run on a GPU with single precision you can instead do:
# import jax and set it up to use double precision
from jax import config
config.update("jax_enable_x64", False)
# import numpyro and set it up to use 4 CPU devices
import numpyro
numpyro.set_platform('gpu')
You will see significant performance enhancements when running ona GPU with 32-bit precision. If you have multiple GPUs, numpyro
can use them in parallel to run different chains, just as with CPUs. Sampling one chain for a GW150914-like system takes O(s) on an Nvidia A100 GPU.
⚠️ Caveat emptor: depending on the autocovariance function (ACF), using float32
can cause numerical problems when computing the likelihood; ringdown will automatically rescale the strain in an attempt to prevent this, but you should use this feature at your own risk.
Citations
We ask that scientific users of this code cite the corresponding Zenodo entry (see blue DOI badge above), as well as Isi & Farr (2021):
@article{Isi:2021iql,
author = "Isi, Maximiliano and Farr, Will M.",
title = "{Analyzing black-hole ringdowns}",
eprint = "2107.05609",
archivePrefix = "arXiv",
primaryClass = "gr-qc",
reportNumber = "LIGO-P2100227",
month = "7",
year = "2021"
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ringdown-1.0.0.tar.gz
.
File metadata
- Download URL: ringdown-1.0.0.tar.gz
- Upload date:
- Size: 89.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1446b14b3eaaa8aab2791fe7711eccdbd24c9752af6fd10dc87faeaade3ab477 |
|
MD5 | 44bf60e94fb38c2e276f2f79dd856e4d |
|
BLAKE2b-256 | f24f1cd405e2faa52ad39c8c5d4ac173e1b0d541c5219e379ceffc8079aa667f |
File details
Details for the file ringdown-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: ringdown-1.0.0-py3-none-any.whl
- Upload date:
- Size: 93.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 154a5e46e92e86db0fc8782836a240eebc69e294d3d59ffd8eafa8688632f459 |
|
MD5 | 49a6cc4f844fa0bdca97d318caf2e5f8 |
|
BLAKE2b-256 | 000e22b5165a4ebd4d890f6acb2de242baca440df9baeea06ba21804948e3077 |