Skip to main content

holodeck: Massive black hole (MBH) binary simulator for pulsar timing array signals.

Project description

holodeck

build codecov Documentation Status

Massive Black-Hole Binary Population Synthesis for Gravitational Wave Calculations ≋●≋●≋

holodeck logo

This package provides a comprehensive framework for MBH binary population synthesis. The framework includes modules to perform population synthesis using a variety of methodologies from semi-analytic models, to cosmological hydrodynamic simulations, and even observationally-derived galaxy merger catalogs.

Getting Started

(1) Read the getting started guide.
(2) Install holodeck following the Installation instructions below. (3) Explore the package demonstration notebooks.

Installation

The holodeck framework is currently under substantial, active development. Stable versions are now available with pip install holodeck-gw (see holodeck on pypi). However, recent versions and many development tools will not generally be available with pip or conda install.

holodeck requires python >= 3.9 (with support for: 3.9, 3.10, 3.11). The recommended installation is:

(0) OPTIONAL & recommended: create and activate a new anaconda environment to isolate your build:

conda create --name holo311 python=3.11; conda activate holo311

Note that you will need to activate this environment every time you want to use holodeck. If you're not familiar with anaconda, take a look at their official Getting started guide. To use your anaconda environment with jupyter notebooks, make sure to add this environment to your ipython kernels:

conda install -c conda-forge ipykernel
python -m ipykernel install --user --name=holo311

(1) Clone the holodeck repository, and move into the repo directory:

git clone https://github.com/nanograv/holodeck.git; cd holodeck

(2) Install the required external packages specified in the requirements file:

pip install -r requirements.txt

OPTIONAL: install development requirements::

pip install -r requirements-dev.txt

(3) Build the required c libraries from holodeck cython code:

python setup.py build_ext -i

(4) Perform a development/editable local installation:

python setup.py develop

The 'editable' installation allows the code base to be modified, and have those changes take effect when using the holodeck module without having to rebuild/reinstall it. Note that any changes to the cython library files do still require a rebuild by running steps (3) and (4) above.

MPI

For some scripts (particularly for generating libraries), an MPI implementation is required (e.g. openmpi), along with the mpi4py package. This is not included as a requirement in the requirements.txt file as it significantly increases the installation complexity, and is not needed for many holodeck use cases. If you already have an MPI implementation installed on your system, you should be able to install mpi4py with anaconda: conda install mpi4py. To see if you have mpi4py installed, run python -c 'import mpi4py; print(mpi4py.__version__)' from a terminal.

macos users: if you are using homebrew on macos, you should be able to simply run: brew install mpi4py which will include the required openmpi implementation.

Quickstart

(1) Read the Getting Started Guide.
(2) Explore the package demonstration notebooks in holodeck/notebooks.

Documentation

Full package documentation for holodeck is available on readthedocs.

Contributing & Development

Contributions are not only welcome but encouraged, anywhere from new modules/customizations to bug-fixes to improved documentation and usage examples. Please see Development & Contributions.

Copyright

Copyright (c) 2024, NANOGrav

The holodeck package uses an MIT license.

Attribution & Referencing

A dedicated paper on holodeck is currently in preparation, but the package is also described in the recent astrophysics analysis from the NANOGrav 15yr dataset.

@ARTICLE{2023ApJ...952L..37A,
      author = {{Agazie}, Gabriella and {et al} and {Nanograv Collaboration}},
      title = "{The NANOGrav 15 yr Data Set: Constraints on Supermassive Black Hole Binaries from the Gravitational-wave Background}",
      journal = {\apjl},
         year = 2023,
      month = aug,
      volume = {952},
      number = {2},
         eid = {L37},
      pages = {L37},
         doi = {10.3847/2041-8213/ace18b},
archivePrefix = {arXiv},
      eprint = {2306.16220},
primaryClass = {astro-ph.HE},
      adsurl = {https://ui.adsabs.harvard.edu/abs/2023ApJ...952L..37A},
}

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

holodeck-gw-1.5.2.tar.gz (72.4 MB view details)

Uploaded Source

Built Distributions

holodeck_gw-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

holodeck_gw-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl (72.7 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

holodeck_gw-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

holodeck_gw-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl (72.7 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

holodeck_gw-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (73.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

holodeck_gw-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl (72.7 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

File details

Details for the file holodeck-gw-1.5.2.tar.gz.

File metadata

  • Download URL: holodeck-gw-1.5.2.tar.gz
  • Upload date:
  • Size: 72.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.3

File hashes

Hashes for holodeck-gw-1.5.2.tar.gz
Algorithm Hash digest
SHA256 bdffc3772361d6e7930b9de75e9b7233c83f309a6a2fc4cbd7770f9b08b08c62
MD5 075a333efc1b642b7f475d252fa0edc5
BLAKE2b-256 035acecd9babf24820087feed829a0b3a443b4dd4b5337b606bcff49e644555d

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b42736c325575184a432a84a5abb0a59864581f4366ad33650438301b148ded
MD5 2310442a519272b7e661518490853f14
BLAKE2b-256 0c1b6bfa44a95441b64d60244a603a6e68fafacda8d8b064cecdbbd041435f30

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f93f4dcc20420f3541ef1e92cfd5eb2b7cc490b8f5ee7443bbaae86ff2beae5c
MD5 444faf3a84b02804dc99a002f32f6e8d
BLAKE2b-256 5df9459d636e52915c0c4428a3bf4a35aa715599d99c33db8edecec7e86253eb

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8bfc3213aba527c0d6a9a13361cabaac8599b63bfe1cb4fc02c23ff2a19f19ce
MD5 e614aa4ddbb2898177605c1d87f8dd69
BLAKE2b-256 6eecb4591df4c60a9339646bd0680c49e049217f9a456c0012d3050bfb660912

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 86a027310545f3402f868d1fdcc72fcb1f221a9754493a06f8b19b9c8c9abe1f
MD5 437fb71834b6b1b81e6e0f9c87371140
BLAKE2b-256 d1828151b9ae543db8bf0a367605327329ace5e7bf735119332bb71457f25dea

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4056dfc298e3a24d064fa3a7320b44451f25cd88d791771716c05c574af83a64
MD5 25771fdded532dc5a1850ce16e55ea14
BLAKE2b-256 412c051710900caf7f3ff5c3ab979b32800c72e348c0112049039a98202f4e48

See more details on using hashes here.

File details

Details for the file holodeck_gw-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for holodeck_gw-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 42f463b9c2318561256c45e61a9e9ff98a0f5238e12059a0afe712cb55518bab
MD5 5314fcd40ebf5d0b3f67b2d142d87677
BLAKE2b-256 eba6238d6ee100c8721d77965a607fa0a2c29d5f69bfac58a51888bcc0cad051

See more details on using hashes here.

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