{"id":38685930,"url":"https://github.com/cosmostatgw/wf4py","last_synced_at":"2026-01-17T10:23:34.649Z","repository":{"id":156336928,"uuid":"491562945","full_name":"CosmoStatGW/WF4Py","owner":"CosmoStatGW","description":"Gravitational waves waveform models in pure Python language","archived":false,"fork":false,"pushed_at":"2023-01-17T17:40:33.000Z","size":49850,"stargazers_count":18,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-10T05:51:45.139Z","etag":null,"topics":["gravitational-waves","waveforms"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CosmoStatGW.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-05-12T15:09:15.000Z","updated_at":"2025-08-17T08:15:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"b35a4cc8-947b-4635-b58d-47740f09d797","html_url":"https://github.com/CosmoStatGW/WF4Py","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CosmoStatGW/WF4Py","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmoStatGW%2FWF4Py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmoStatGW%2FWF4Py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmoStatGW%2FWF4Py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmoStatGW%2FWF4Py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CosmoStatGW","download_url":"https://codeload.github.com/CosmoStatGW/WF4Py/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CosmoStatGW%2FWF4Py/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28506379,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T06:57:29.758Z","status":"ssl_error","status_checked_at":"2026-01-17T06:56:03.931Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gravitational-waves","waveforms"],"created_at":"2026-01-17T10:23:34.514Z","updated_at":"2026-01-17T10:23:34.587Z","avatar_url":"https://github.com/CosmoStatGW.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![DOI](https://zenodo.org/badge/doi/10.5281/zenodo.18914.svg)](http://dx.doi.org/10.5281/zenodo.7060240) [![Documentation Status](https://readthedocs.org/projects/wf4py/badge/?version=latest)](https://wf4py.readthedocs.io/en/latest/?badge=latest)\n# WF4Py\nUser-friendly package implementing GW waveform models in pure python, thus enabling parallelization over multiple events at a time. All the waveforms are accurately checked with their implementation in [LALSuite](\u003chttps://git.ligo.org/lscsoft/lalsuite\u003e).\n\nDeveloped by [Francesco Iacovelli](\u003chttps://github.com/FrancescoIacovelli\u003e).\n\nThis package is released together with the papers [arXiv:2207.02771](\u003chttps://arxiv.org/abs/2207.02771\u003e) and [arXiv:2207.06910](\u003chttps://arxiv.org/abs/2207.06910\u003e), where detail of implementations and results can be found.\n\n## Code Organization\nThe organisation of the repository is the following:\n\n```\nWF4Py/WF4Py/\n     ├── waveforms.py\n            Import of the waveform models in the folder 'waveform_models/' for ease of use\n     ├── waveform_models/\n         \tCore: implementation of various GW waveform models present in\n\t\t\t\tLALSimulation in pure Python\n     ├── WFutils.py\n\t\t\tAuxiliary functions: constants, conversions,\n\t\t\t\tspherical harmonics and parameter checks\n     ├── WFfiles\n    \t\tFolder containing some text files needed for waveform computation\nWF4Py/\n\t├── WF4Py_tutorial.ipynb\n\t\tJupyter notebook with tutorial for the usage\nWF4Py/docs/ \n\t\tCode documentation in Sphinx\n\n```\t\t\n\n## Summary\n* [Documentation](https://github.com/CosmoStatGW/WF4Py#Documentation)\n* [Installation](https://github.com/CosmoStatGW/WF4Py#Installation)\n* [Overview and usage](https://github.com/CosmoStatGW/WF4Py#Overview-and-usage)\n* [Available models](https://github.com/CosmoStatGW/WF4Py#Available-models)\n* [Testing](https://github.com/CosmoStatGW/WF4Py#Testing)\n* [Citation](https://github.com/CosmoStatGW/WF4Py#Citation)\n* [Bibliography](https://github.com/CosmoStatGW/WF4Py#Bibliography)\n\n## Documentation\n\nWF4Py has its documentation hosted on Read the Docs [here](\u003chttps://wf4py.readthedocs.io/en/latest/\u003e), and it can also be built from the ```docs``` directory.\n\n## Installation\nTo install the package without cloning the git repository simply run\n\n```\npip install git+https://github.com/CosmoStatGW/WF4Py\n```\n\n## Overview and usage\nEach waveform is a derived of the abstract class \u003cspan style=\"color:green\"\u003e```WaveFormModel```\u003c/span\u003e, and has built in functions \u003cspan style=\"color:blue\"\u003e```Phi```\u003c/span\u003e, \u003cspan style=\"color:blue\"\u003e```Ampl```\u003c/span\u003e, \u003cspan style=\"color:blue\"\u003e```tau_star```\u003c/span\u003e and \u003cspan style=\"color:blue\"\u003e```fcut```\u003c/span\u003e to compute the **phase**, **amplitude**, **time to coalescence** and **cut frequency**, respectively for the chosen catalog of events.\n\nThe functions accept as inputs the catalog as well as the frequencies at at which the computation has to be performed.\n\nThe catalog has to be a dictionary containing the parameters of the events, such as\n\n```python\nevents = {'Mc':np.array([...]),\n          'dL':np.array([...]),\n          'iota':np.array([...]),\n          'eta':np.array([...]),\n          'chi1z':np.array([...]),\n          'chi2z':np.array([...]),\n          'Lambda1':np.array([...]),\n          'Lambda2':np.array([...])}\n```\nwhere \u003cspan style=\"color:red\"\u003e```Mc```\u003c/span\u003e denotes the **chirp mass** (in units of *solar masses*), \u003cspan style=\"color:red\"\u003e```dL```\u003c/span\u003e the **luminosity distance** (in *Gpc*), \u003cspan style=\"color:red\"\u003e```iota```\u003c/span\u003e the **inclination angle**, \u003cspan style=\"color:red\"\u003e```eta```\u003c/span\u003e the **symmetric mass ratio**, \u003cspan style=\"color:red\"\u003e```chi1z```\u003c/span\u003e and \u003cspan style=\"color:red\"\u003e```chi2z```\u003c/span\u003e the **adimensional spin components** of the two objects aligned with the orbital angular momentum and \u003cspan style=\"color:red\"\u003e```Lambda1```\u003c/span\u003e and \u003cspan style=\"color:red\"\u003e ```Lambda2```\u003c/span\u003e the **adimensional tidal deformability** parameters of the objects in the tidal case.\n\nAny waveform can then be easily used e.g. as\n\n```python\nwaveforms.IMRPhenomD().Ampl(fgrids, **events)\n```\n\n#### For a detailed tutorial refer to [```WF4Py_tutorial.ipynb```](\u003chttps://github.com/CosmoStatGW/WF4Py/blob/master/WF4Py_tutorial.ipynb\u003e)\n\n## Available models\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```TaylorF2_RestrictedPN```\u003c/span\u003e (1., 2., 3., 4., 5.)\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```IMRPhenomD```\u003c/span\u003e (6., 7.)\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```IMRPhenomD_NRTidalv2```\u003c/span\u003e (6., 7., 8.)\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```IMRPhenomHM```\u003c/span\u003e (9., 10.)\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```IMRPhenomNSBH```\u003c/span\u003e (8., 11.)\n* (v1.0.0) \u003cspan style=\"color:green\"\u003e```IMRPhenomXAS```\u003c/span\u003e (12.)\n\n## Testing\nThe adherence of all the models with their implementation in [LALSuite](\u003chttps://git.ligo.org/lscsoft/lalsuite\u003e) is accuratly tested. As an example, we here report the comparison in the implementations of ```IMRPhenomXAS```\n\n![alt text](\u003chttps://github.com/CosmoStatGW/WF4Py/blob/master/IMRPhenomXAS_Comparison.png\u003e)\n\n## Citation\nIf using this software, please cite this repository and the papers [arXiv:2207.02771](\u003chttps://arxiv.org/abs/2207.02771\u003e) and [arXiv:2207.06910](\u003chttps://arxiv.org/abs/2207.06910\u003e). Bibtex:\n\n```\n@article{Iacovelli:2022bbs,\n    author = \"Iacovelli, Francesco and Mancarella, Michele and Foffa, Stefano and Maggiore, Michele\",\n    title = \"{Forecasting the Detection Capabilities of Third-generation Gravitational-wave Detectors Using GWFAST}\",\n    eprint = \"2207.02771\",\n    archivePrefix = \"arXiv\",\n    primaryClass = \"gr-qc\",\n    doi = \"10.3847/1538-4357/ac9cd4\",\n    journal = \"Astrophys. J.\",\n    volume = \"941\",\n    number = \"2\",\n    pages = \"208\",\n    year = \"2022\"\n}\n```\n\n```\n@article{Iacovelli:2022mbg,\n    author = \"Iacovelli, Francesco and Mancarella, Michele and Foffa, Stefano and Maggiore, Michele\",\n    title = \"{GWFAST: A Fisher Information Matrix Python Code for Third-generation Gravitational-wave Detectors}\",\n    eprint = \"2207.06910\",\n    archivePrefix = \"arXiv\",\n    primaryClass = \"astro-ph.IM\",\n    doi = \"10.3847/1538-4365/ac9129\",\n    journal = \"Astrophys. J. Supp.\",\n    volume = \"263\",\n    number = \"1\",\n    pages = \"2\",\n    year = \"2022\"\n}\n```\n\n## Bibliography  \n1. A. Buonanno et al. (2009) [arXiv:0907.0700](\u003chttps://arxiv.org/abs/0907.0700\u003e)\n2. P. Ajith (2011) [arXiv:1107.1267](\u003chttps://arxiv.org/abs/1107.1267\u003e)\n3. C. K. Mishra et al. (2016) [arXiv:1601.05588](\u003chttps://arxiv.org/abs/1601.05588\u003e)\n4. L. Wade et al. (2014) [arXiv:1402.5156](\u003chttps://arxiv.org/abs/1402.5156\u003e)\n5. B. Moore et al. (2016) [arXiv:1605.00304](\u003chttps://arxiv.org/abs/1605.00304\u003e)\n6. S. Husa et al. (2015) [arXiv:1508.07250](\u003chttps://arxiv.org/abs/1508.07250\u003e)\n7. S. Khan et al. (2015) [arXiv:1508.07253](\u003chttps://arxiv.org/abs/1508.07253\u003e)\n8. T. Dietrich et al. (2019) [arXiv:1905.06011](\u003chttps://arxiv.org/abs/1905.06011\u003e)\n9. L. London et al. (2018) [arXiv:1708.00404](\u003chttps://arxiv.org/abs/1708.00404\u003e)\n10. C. Kalaghatgi et al. (2019) [arXiv:1909.10010](\u003chttps://arxiv.org/abs/1909.10010\u003e)\n11. F. Pannarale et al. (2015) [arXiv:1509.00512](\u003chttps://arxiv.org/abs/1509.00512\u003e)\n12. G. Pratten et al. (2020) [arXiv:2001.11412](https://arxiv.org/abs/2001.11412)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmostatgw%2Fwf4py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmostatgw%2Fwf4py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmostatgw%2Fwf4py/lists"}