gwfast

A Fisher information matrix python package for GW detector networks.

https://github.com/cosmostatgw/gwfast

Science Score: 49.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

automatic-differentiation fisher-information gravitational-waves jax python
Last synced: 6 months ago · JSON representation

Repository

A Fisher information matrix python package for GW detector networks.

Basic Info
  • Host: GitHub
  • Owner: CosmoStatGW
  • License: gpl-3.0
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 54.5 MB
Statistics
  • Stars: 46
  • Watchers: 2
  • Forks: 18
  • Open Issues: 4
  • Releases: 1
Topics
automatic-differentiation fisher-information gravitational-waves jax python
Created about 4 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

License: GPL v3 DOI Documentation Status PyPI version ascl:2212.001INSPIRE INSPIRE

alt text

gwfast

Fisher Information Matrix package for GW cosmology, written in Python and based on automatic differentiation.

The detail of implementations and results can be found in the papers arXiv:2207.02771 and arXiv:2207.06910.

Waveforms are also separatley released as WF4Py.

Developed by Francesco Iacovelli and Michele Mancarella.

Code Organization

The organisation of the repository is the following:

``` gwfast/gwfast/ gwfastGlobals.py Physical constants, positions and duty cycles of existing detectors gwfastUtils.py Auxiliary functions: angles and time conversions, ... waveforms.py Abstract class WaveFormModel; different sublasses for each wf model - TaylorF2, IMRPhenomD, ... signal.py A class to compute the GW signal in a single detector (L shaped or triangular), the SNR and the Fisher matrix fisherTools.py Covariance matrix and functions to perform sanity checks on the Fisher - condition number, inversion error, marginalization, localization area, plotting tools network.py A class to model a network of detectors with different locations population/ Modules to perform Fisher forecasts on the accuracy of the reconstruction of the hyperparameters for a population of sources stochastic/ Module to copute useful quantities related to stochastic gravitational wave searches

gwfast/psds/ Some detector Power Spectral Densities

gwfast/WFfiles/ Text files needed for waveform computation

gwfast/run/ Scripts to run in parallel on catalogs

gwfast/docs/ Code documentation in Sphinx

```

Summary

Documentation

gwfast has its documentation hosted on Read the Docs here, and it can also be built from the docs directory.

Installation

To install the package without cloning the git repository, and a CPU-only version of JAX

pip install --upgrade pip pip install gwfast

or

pip install --upgrade pip pip install --upgrade "jax[cpu]" pip install git+https://github.com/CosmoStatGW/gwfast

To install a JAX version for GPU or TPU proceed as explained in https://github.com/google/jax#installation.

If willing to use numerical differentiation, a patch has to be applied to numdifftools. This can be done by running the following command while being in the environment gwfast has been installed into

patch $(python -c "import site; print(site.getsitepackages()[0])")"/numdifftools/limits.py" $(python -c "import site; print(site.getsitepackages()[0])")"/gwfast/.patch/patch_ndt_complex_0-9-41.patch

Usage

All details are reported in the accompanying paper arXiv:2207.06910 and some examples are in the gwfast_tutorial notebook. Open In Colab

To initialise a waveform object simply run, e.g.

python mywf = waveforms.IMRPhenomD() (more details on the waveforms are available in their dedicated git repository WF4Py)

and to build a signal object

python MyDet = signal.GWSignal(mywf, psd_path= 'path/to/Detector/psd', detector_shape = 'L', det_lat=43.6, det_long=10.5, det_xax=115.)

More signal objects can be used to form a network

python myNet = network.DetNet({'Det1':MyDet1, 'Det2':MyDet2, ...})

Then computing SNRs and Fisher matrices is as easy as

python SNRs = myNet.SNR(events) FisherMatrs = myNet.FisherMatr(events) where events is a dictionary containing the parameters of the chosen events.

Finally, to compute the covariance matrices it is sufficient to

python CovMatr(FisherMatrs, events)

For a list of features implemented after the publication of arXiv:2207.06910 see the NEW_FEATURES file and the new_features_tutorial notebook Open In Colab

Citation

If using this software, please cite this repository and the papers arXiv:2207.02771 and arXiv:2207.06910. Bibtex:

@article{Iacovelli:2022bbs, author = "Iacovelli, Francesco and Mancarella, Michele and Foffa, Stefano and Maggiore, Michele", title = "{Forecasting the Detection Capabilities of Third-generation Gravitational-wave Detectors Using GWFAST}", eprint = "2207.02771", archivePrefix = "arXiv", primaryClass = "gr-qc", doi = "10.3847/1538-4357/ac9cd4", journal = "Astrophys. J.", volume = "941", number = "2", pages = "208", year = "2022" }

@article{Iacovelli:2022mbg, author = "Iacovelli, Francesco and Mancarella, Michele and Foffa, Stefano and Maggiore, Michele", title = "{GWFAST: A Fisher Information Matrix Python Code for Third-generation Gravitational-wave Detectors}", eprint = "2207.06910", archivePrefix = "arXiv", primaryClass = "astro-ph.IM", doi = "10.3847/1538-4365/ac9129", journal = "Astrophys. J. Supp.", volume = "263", number = "1", pages = "2", year = "2022" }

Owner

  • Name: CosmoStatGW
  • Login: CosmoStatGW
  • Kind: organization

A collection of public tools for cosmology with gravitational waves. Maintained by the GW group at the DPT of Theoretical Physics of the University of Geneva

GitHub Events

Total
  • Issues event: 5
  • Watch event: 9
  • Issue comment event: 3
  • Push event: 7
  • Pull request event: 2
  • Fork event: 5
Last Year
  • Issues event: 5
  • Watch event: 9
  • Issue comment event: 3
  • Push event: 7
  • Pull request event: 2
  • Fork event: 5

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JonathanMushkin (1)
  • nsteinle (1)
  • Felipe-4 (1)
  • haukekoehn (1)
Pull Request Authors
  • SSL32081 (2)
  • harshalc03 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 20 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 2
pypi.org: gwfast

A fisher matrix python package for GW studies

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 20 Last month
Rankings
Dependent packages count: 7.5%
Stargazers count: 13.4%
Forks count: 13.4%
Average: 26.0%
Dependent repos count: 69.6%
Maintainers (2)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • astropy *
  • h5py *
  • matplotlib *
  • mpmath *
  • numdifftools *
  • numpy *
  • schwimmbad *
  • scipy *
setup.py pypi
  • astropy *
  • h5py *
  • matplotlib *
  • mpmath *
  • numdifftools *
  • numpy *
  • schwimmbad *
  • scipy *
docs/docs_requirements.txt pypi
  • docutils ==0.17.1
  • myst-parser ==0.18.1
  • nbsphinx ==0.8.10
  • readthedocs-sphinx-search ==0.1.2
  • sphinx ==5.3.0
  • sphinx-argparse ==0.4.0
  • sphinx-copybutton ==0.5.1
  • sphinx_rtd_theme ==1.1.1
pyproject.toml pypi
  • matplotlib * develop
  • astropy ~6.0.0
  • docutils ^0.17.1
  • h5py ^3.2.1
  • jax >=0.4.26, <=0.4.30
  • lalsuite *
  • mpmath ^1.2.1
  • myst-parser ^0.18.1
  • nbsphinx >=0.8.10
  • numdifftools ==0.9.41
  • numpy <=1.26.4
  • python >=3.9
  • readthedocs-sphinx-search ^0.1.2
  • schwimmbad ^0.3.2
  • scipy >=1.6.3
  • sphinx 5.3.0
  • sphinx-copybutton ^0.5.1
  • sphinx_rtd_theme >=1.1.1
  • teobresums *