Author: Keigan Cullen
Institution: UMass Dartmouth — Computational Physics Research
Period: May 2020 – December 2022
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.
.
├── 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
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.
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.
- 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
- 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 infloat32precision caused non-linear artifacts in time array lengths, producing spikes in the computed mismatch. This finding was communicated to the model developers.
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')These scripts are written as executable Python files intended for HPC job submission. On a SLURM cluster:
python WaveformComparisons.pyKey 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 |
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)
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.