Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gravitational Wave Model Comparisons

Author: Keigan Cullen
Institution: UMass Dartmouth — Computational Physics Research
Period: May 2020 – December 2022


Overview

This repository contains Python-based scientific computing tools developed for my undergraduate research in gravitational wave (GW) physics at UMass Dartmouth. The core objective was to compare two gravitational wave models — the EMRI surrogate model (EMRISur1dq1e4) and the EOBNRv2HM waveform approximant — across a wide range of mass ratios, quantifying model disagreement and computational performance.

These scripts were designed to run on a high-performance computing (HPC) cluster (UNIX/SLURM environment) and rely on LALSuite, gwsurrogate, and gwtools — standard scientific libraries in gravitational wave astronomy.

This work contributes to the ongoing effort to validate surrogate models for extreme mass-ratio inspirals (EMRIs), a class of gravitational wave sources that will be central targets for future space-based detectors such as LISA.


Repository Structure

.
├── WaveformComparisons.py   # Main comparison pipeline: error metrics, computation times, multi-mode plots
├── NR-Comparisons.py        # Numerical Relativity comparison extension (in development)
├── Diagnostics.py           # Debugging tools: smoothness testing, f_low continuity, EMRI bug investigation
└── README.md

Scientific Context

What Are Gravitational Waves?

Gravitational waves are ripples in spacetime produced by accelerating masses — most powerfully by compact binary systems (black holes, neutron stars) spiraling into merger. Detected by LIGO/Virgo since 2015, they open an entirely new observational window on the universe.

What Is an EMRI?

An Extreme Mass-Ratio Inspiral (EMRI) is a binary system where one object is far more massive than the other (mass ratios up to ~10,000:1). These are prime sources for LISA — the planned ESA/NASA space-based gravitational wave observatory — and are computationally challenging to model accurately.

What Does This Code Do?

  • Generates waveforms from both the EMRI surrogate model and the EOBNRv2HM approximant (an effective-one-body model) across a logarithmically spaced range of mass ratios
  • Computes model disagreement (normalized energy error) for multiple spherical harmonic modes — primarily (2,2) and (2,1)
  • Measures total waveform error and merger-region error separately
  • Benchmarks computation time for each model
  • Identifies and investigates a float32 precision bug in the EMRI surrogate that caused non-physical spikes in mismatch across the mass-ratio parameter space

Key Findings

  • The EMRI surrogate produced smooth, well-behaved waveforms across the tested mass-ratio range
  • The EOBNRv2HM model exhibited discontinuous behavior near certain mass ratios, visible in both waveform smoothness tests and f_low vs. q plots
  • A root cause was identified in the EMRI model's high-order polynomial coefficient alpha_emri — floating-point rounding errors in float32 precision caused non-linear artifacts in time array lengths, producing spikes in the computed mismatch. This finding was communicated to the model developers.

Dependencies

These scripts require a configured HPC environment with the following:

Python 3.x
numpy
matplotlib
gwsurrogate
gwtools
lal (LALSuite)
lalsimulation (LALSuite)
seaborn

Note: LALSuite installation is non-trivial and typically requires a Conda environment or HPC module load. See the LALSuite documentation for setup instructions.

The surrogate model file (EMRISur1dq1e4.h5) must be downloaded separately via gwsurrogate:

import gwsurrogate
gwsurrogate.get_modeldata('EMRISur1dq1e4')

Usage

These scripts are written as executable Python files intended for HPC job submission. On a SLURM cluster:

python WaveformComparisons.py

Key parameters to configure at the top of WaveformComparisons.py:

Parameter Description Default
q1, q2 Mass ratio range 3.0 – 100.0
num Number of sample points 39
modes Spherical harmonic modes [(2,2), (2,1)]
Mtot Total mass (solar masses) 1000.0
Dist Luminosity distance (Mpc) 10.0
mtime Merger comparison window (M) -900

Academic Context

This research was conducted as part of my undergraduate work in the Computational Physics program at UMass Dartmouth, under the supervision of faculty in the gravitational wave group. The project ran concurrently with my senior thesis work and contributed to validating surrogate model accuracy for future LISA science cases.

Relevant skills demonstrated:

  • High-performance scientific computing (Python, UNIX/HPC)
  • Gravitational wave physics and waveform analysis
  • Numerical methods and error analysis
  • Bug identification and root-cause analysis in scientific software
  • Scientific visualization (matplotlib, seaborn)

Related Work & Resources


License

This code was developed for academic research purposes at UMass Dartmouth. If you use or adapt this work, please credit the author.


Part of a broader body of work at the intersection of physics, computation, and the frontier of what we can observe about the universe.

About

Python pipeline for comparing EMRI surrogate and EOBNRv2HM gravitational wave models across extreme mass ratios. Quantifies waveform mismatch, merger-region error, and computation time. Includes diagnostics that identified a float32 precision bug in the EMRI surrogate model. Built for HPC.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages