ESIGMAPy provides access to two eccentric waveform models:
| Model | Description |
|---|---|
ESIGMAHM |
Eccentric, aligned-spin IMR waveform with higher modes (arXiv:2409.13866) |
ESIGMASur |
Surrogate model of the (2,2) GW-mode of ESIGMAHM (arXiv:2510.00116) |
Install via:
pip install git+https://github.com/gwnrtools/esigmapy.gitThen to use:
ESIGMAHM: requires customLALSuiteinstallation andNRSur7dq4surrogate data download (installation instructions below).ESIGMASur: requires downloadingESIGMASursurrogate data (installation instructions below)
Usage instructions at:
ESIGMAHMtutorial notebookESIGMASurtutorial notebook
ESIGMAHM is an eccentric, aligned-spin, inspiral-merger-ringdown (IMR) waveform model with higher-order modes. It is composed of two pieces:
-
Inspiral piece (
InspiralESIGMAHM): It comes from a combination of post-Newtonian theory, self-force, and black hole perturbation theory. -
Plunge-merger-ringdown piece: Assuming moderate starting eccentricities that decay by the late inspiral, we use the quasi-circular (QC) NR surrogate
NRSur7dq4for the plunge-merger-ringdown piece forESIGMAHM.(Note: We also allow other QC
LALSuitewaveform models to be used as the plunge-merger-ringdown piece; see the optional argumentmerger_ringdown_approximantin the generation functionsget_imr_esigma_waveformandget_imr_esigma_modeshere. However, the default and the most tested choice isNRSur7dq4.)
The full IMR waveform ESIGMAHM is produced by smoothly attaching the inspiral piece InspiralESIGMAHM to the plunge-merger-ringdown piece NRSur7dq4. This attachment is facilitated by ESIGMAPy.
Using ESIGMAHM therefore requires installing 1. InspiralESIGMAHM, 2. NRSur7dq4, and 3. ESIGMAPy.
-
Getting the source code: The
LALSuitefork containing the implementation ofInspiralESIGMAHMis currently private, but interested users are welcome to write to the developers for access at [email protected].Clone the
LALSuitefork and checkout the commit with tagESIGMAHMv1:git clone https://git.ligo.org/kaushik.paul/lalsuite.git cd lalsuite git checkout ESIGMAHMv1 -
Installation:
-
It is advised to create a conda environment using the
igwnyaml file and install the above mentioned fork ofLALSuiteinside it to minimize the dependency issues. Please remove_x86_64-microarch-level=3=3_haswellfrom the yaml file in case you get errors related to microarchitecture mismatch. -
Activate your
condaenvironment. Make sure that theswigversion in this environment is below4.2.1(you can check this by runningconda list swig). If not, install its version4.2.0by runningconda install -c conda-forge swig=4.2.0. -
Create a directory where you want to install ESIGMA. Let the absolute path of this directory be
/path/to/esigmahm. -
Go back inside the above cloned
LALSuitefork, and run the following commands:./00boot ./configure --prefix="/path/to/esigmahm" --enable-swig-python --disable-laldetchar --disable-lalpulsar --disable-lalapps --enable-mpi=yes --enable-hdf5 CFLAGS="-Wno-error" CXXFLAGS="-Wno-error" CPPFLAGS="-Wno-error" make make install
-
-
Configuring
condato source thisLALSuitefork automatically on activating thecondaenvironment- With your
condaenvironment activated, run the following commands:cd $CONDA_PREFIX/etc/conda/activate.d ln -s /path/to/esigmahm/etc/lalsuite-user-env.sh
- With your
- Download the
NRSur7dq4data file in some directory (forLALSuiteversions >= 7.25, download this data file instead). Let's say the absolute path to this directory is/path/to/NRSur7dq4. - Append the path of this directory to the shell environment variable
LAL_DATA_PATHby running:export LAL_DATA_PATH="$LAL_DATA_PATH:/path/to/NRSur7dq4" - To avoid performing the above step in every new terminal session, either add the above command to your
.bashrcfile, or follow the instructions here, replacingPYTHONPATHwithLAL_DATA_PATH, to set this environment variable automatically on activating yourcondaenvironment.
- Activate your
condaenvironment and installESIGMAPyby running:pip install esigmapy.
The instructions to generate ESIGMAHM waveforms and the various functionalities that it offers are detailed in this tutorial notebook.
ESIGMAHM can now also be accessed via gwsignal. See this notebook for usage instructions.
ESIGMASur is a fast time-domain surrogate model of the (2,2)-mode of ESIGMAHM.
-
Install
ESIGMAPyby running:pip install git+https://github.com/gwnrtools/esigmapy.git
It does not require the custom LALSuite installation above.
Note:
ESIGMASurcurrently supports Python <= 3.12, owing to a compatibility restriction intpi-splines, a dependency ofESIGMASur. -
Download the surrogate data files of
ESIGMASur, which can be found on the repo. Next, set the shell environment variableESIGMASUR_DATA_PATHto the directory where you keep these surrogate data files by running:export ESIGMASUR_DATA_PATH="/path/to/ESIGMASur". -
Using the inspiral-only surrogate
InspiralESIGMASurwould not require any further dependencies. However, its hybridized IMR versionIMRESIGMASurwill require downloading the NR surrogate data file (installation instructions above).
The usage instructions and the various functionalities of ESIGMASur are detailed in this tutorial notebook.
-
If you use
ESIGMAHMin your work, please cite:Paul et al., "ESIGMAHM: An Eccentric, Spinning inspiral-merger-ringdown waveform model with Higher Modes for the detection and characterization of binary black holes", PhysRevD.111.084074, arXiv:2409.13866 (2024)
@article{Paul:2024ujx, author = "Paul, Kaushik and Maurya, Akash and Henry, Quentin and Sharma, Kartikey and Satheesh, Pranav and Divyajyoti and Kumar, Prayush and Mishra, Chandra Kant", title = "{Eccentric, spinning, inspiral-merger-ringdown waveform model with higher modes for the detection and characterization of binary black holes}", eprint = "2409.13866", archivePrefix = "arXiv", primaryClass = "gr-qc", doi = "10.1103/PhysRevD.111.084074", journal = "Phys. Rev. D", volume = "111", number = "8", pages = "084074", year = "2025" }
ESIGMAHMis built on theENIGMAframework, which was developed in arXiv:1609.05933, arXiv:1711.06276, arXiv:2008.03313. In addition to citingESIGMAHM, please consider citing them as well. -
If you use
ESIGMASurin your work, please cite:Maurya et al., "Chase Orbits, not Time: A Scalable Paradigm for Long-Duration Eccentric Gravitational-Wave Surrogates", arXiv:2510.00116 (2025)
@article{Maurya:2025shc, author = "Maurya, Akash and Kumar, Prayush and Field, Scott E. and Mishra, Chandra Kant and Nee, Peter James and Paul, Kaushik and Pfeiffer, Harald P. and Ravichandran, Adhrit and Varma, Vijay", title = "{Chase Orbits, not Time: A Scalable Paradigm for Long-Duration Eccentric Gravitational-Wave Surrogates}", eprint = "2510.00116", archivePrefix = "arXiv", primaryClass = "gr-qc", journal = {}, month = "9", year = "2025", }
If you have any questions, issues, or suggestions regarding the model, feel free to reach out to us at [email protected]!