/bayRing

Primary LanguagePythonMIT LicenseMIT

pypi version license DOI

bayRing

Description

Inference package targeting ringdown modeling of numerical relativity waveforms, using a Bayesian method based on stochastic sampling for parameters extraction.

Relies on pyRing for waveform interfacing, on qnm for QNM frequencies computations and on cpnest/raynest for sampling.

Installation

Currently requires the hm_nc_fit branch of pyRing.

Tagged versions can be installed through: pip install bayRing.

The source code can be installed through:

pip install -r requirements.txt
pip install .

An alternative to the latter instruction is python setup.py install.

Usage

  • The general execution syntax is: bayRing --config-file config.ini

  • bayRing --help allows to explore all the available options and default values.

Examples

Available in the config_files directory, see the corresponding README file.

To run the simplest example:

cd config_files
bayRing --config-file config_SXS_0305_Kerr_220_quick.ini

Citing

When referencing bayRing in your publications, please cite the software Zenodo release:

    @software{carullo_gregorio_2023_8284026,
    author       = {Carullo, Gregorio and De Amicis, Marina and Redondo-Yuste, Jaime},
    title        = {bayRing},
    month        = aug,
    year         = 2023,
    publisher    = {Zenodo},
    version      = {1.0.0},
    doi          = {10.5281/zenodo.8284026},
    url          = {https://doi.org/10.5281/zenodo.8284026},
    howpublished = "\href{https://github.com/GCArullo/bayRing}{github.com/GCArullo/bayRing}",
    }

Contributing

If you have a request for an additional feature, spot any mistake or find any problem with using the code, please open an issue.

To develop the code, we follow a standard {create a branch/fork-apply your edits-submit a merge request} workflow.

For additional questions, feedback and suggestions feel free to reach by email to gregorio.carullo@ligo.org. Thanks for taking time to contribute to the code, your help is greatly appreciated!

How to add a new waveform

  1. Add the model to the list of available templates here.
  2. Add any model-specific structures or compatibility checks here.
  3. Declare prior default bounds for model calibration parameters here.
  4. Add the model-specific parser structure here.
  5. Construct the waveform template here.
  6. Add the call to the waveform template here.
  7. Add an example configuration file, similar to e.g. this.

How to add a new NR catalog

  1. Add the catalog to the list of available ones here.
  2. Add any catalog-specific structures or compatibility checks here.
  3. Add a parser structure for simulations parameters here.
  4. Add a metadata entry here.
  5. Add a reading structure for the metadata and the waveform here.
  6. Add a call to waveform and metadata inside the NR simulation class here.
  7. Add a method to estimate the NR error (resolution, extrapolation etc.) here.
  8. Add an example configuration file here.

An example of a new catalog implementation can be found in this merge request.