Skip to main content

PhenTAX: a JAX Implementation of the IMRPhenomTHM waveform family

Documentation TestPyPI License DOI

phentax is a JAX re-implementation of the IMRPhenomT and IMRPhenomTHM gravitational waveform models as implemented in the phenomxpy package.

At present, phentax supports the generation of time-domain waveforms for quasi-circular, non-precessing binary black hole mergers, including higher-order modes (HMs) in the IMRPhenomTHM model. The implementation leverages JAX's capabilities for automatic differentiation, just-in-time compilation, and batching to enable efficient waveform generation and parameter estimation.

Note

This package is currently released as a beta version, and it could still show some undesired behaviors. If you encounter any issues, please report them on the GitHub issues tracker. We welcome any contribution to the codebase: if you want to contribute, please open a pull request or contact the authors directly.

At present, publications using this code are discouraged until the package reaches a stable release. Please contact the authors if you want to discuss this further.

Installation

Installation from source

This project is managed by uv. To set up the development environment, first clone the repository:

git clone https://github.com/asantini29/phentax
cd phentax

Important: You must specify either CPU or GPU installation to ensure JAX is properly configured for your system.

GPU Installation (CUDA)

For systems with NVIDIA GPUs and CUDA support, install with:

uv sync --group gpu

This installs all base dependencies plus JAX with CUDA 12.x support.

CPU Installation

For CPU-only systems, install with:

uv sync --group cpu

This installs all base dependencies plus JAX optimized for CPU execution.

After installation, run your commands within this environment using:

uv run <YOUR-COMMAND>

Installation from Package Index

phentax can also be installed directly with pip. Currently, the latest version is available on TestPyPI. To install the latest version in your environment, run one of the following commands depending on your system configuration:

pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'phentax[cpu]' # For CPU-only installation
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'phentax[cuda12]' # For GPU installation with CUDA 12.x support
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ 'phentax[cuda13]' # For GPU installation with CUDA 13.x support

We still recommend installing the package in a virtual environment to avoid conflicts with other projects.

Credits

The original python implementation of the IMRPhenomT(HM) waveform models in the phenomxpy package were developed by Cecilio García Quirós. This JAX re-implementation builds upon his work. If you use this code in your research, please cite the original IMRPhenomT(HM) paper, and both the original phenomxpy package and this phentax implementation:

@article{Estelles:2020twz,
    author = "Estell{\'e}s, H{\'e}ctor and Husa, Sascha and Colleoni, Marta and Keitel, David and Mateu-Lucena, Maite and Garc{\'\i}a-Quir{\'o}s, Cecilio and Ramos-Buades, Antoni and Borchers, Angela",
    title = "{Time-domain phenomenological model of gravitational-wave subdominant harmonics for quasicircular nonprecessing binary black hole coalescences}",
    eprint = "2012.11923",
    archivePrefix = "arXiv",
    primaryClass = "gr-qc",
    doi = "10.1103/PhysRevD.105.084039",
    journal = "Phys. Rev. D",
    volume = "105",
    number = "8",
    pages = "084039",
    year = "2022"
}

@misc{garcíaquirós2025gpuacceleratedlisaparameterestimation,
      title={GPU-accelerated LISA parameter estimation with full time domain response},
      author={Cecilio García-Quirós and Shubhanshu Tiwari and Stanislav Babak},
      year={2025},
      eprint={2501.08261},
      archivePrefix={arXiv},
      primaryClass={gr-qc},
      url={https://arxiv.org/abs/2501.08261},
}

At the moment, you can cite phentax as follows:

@software{alessandro_santini_2026_19390393,
  author       = {Alessandro Santini},
  title        = {asantini29/phentax: Release to TestPypi and Zenodo},
  month        = apr,
  year         = 2026,
  publisher    = {Zenodo},
  version      = {v0.1.1b2},
  doi          = {10.5281/zenodo.19390393},
  url          = {https://doi.org/10.5281/zenodo.19390393},
  swhid        = {swh:1:dir:53eb9b80c35ee46f3c47856646bf2e527cc9b31c
                   ;origin=https://doi.org/10.5281/zenodo.19390392;vi
                   sit=swh:1:snp:491e9d7331ce8a58625a229398fc5dac141f
                   0e16;anchor=swh:1:rel:c6c621c39a87fd9673d834d3a289
                   bd72f71ec7e2;path=asantini29-phentax-19563e0
                  },
}

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions to this project are welcome! If you would like to contribute, please follow the guidelines outlined in the CONTRIBUTING file.

Versioning

This project uses Semantic Versioning. Current version: Version

Metadata

Release files for phentax 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for phentax 0.2.1
File Size Uploaded Provenance Actions
phentax-0.2.1.tar.gz 2.1 MB With provenance Details for phentax-0.2.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for phentax 0.2.1
File Interpreter ABI Platform Actions
phentax-0.2.1-py3-none-any.whl Python 3 none any Details for phentax-0.2.1-py3-none-any.whl

Total release size: 2.2 MB

Release files / phentax-0.2.1.tar.gz

Download URL phentax-0.2.1.tar.gz
Size 2.1 MB
Tags Source
SHA-256 checksum
How to use checksums
6c7859da16b36c9e1b893cfcf1eb790b670ce2d95872d06e24addd9f224de13c
BLAKE2b-256 checksum
How to use checksums
11fcf0d8fa6634277e960f127357dfc3c1422acb834d971be4a2c6b2afe524fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / phentax-0.2.1-py3-none-any.whl

Download URL phentax-0.2.1-py3-none-any.whl
Size 94.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8be69138cc4367063653705c3269911138491caec2fbd9c464550f1690a27c8b
BLAKE2b-256 checksum
How to use checksums
d2eb7f657bcccb4a4acfd35bf95d35638c6016b5a9309d98d82eff8963099345
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Security for phentax 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for phentax-0.2.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page