IMRPhenomHM independent SXS holdout: frozen protocol
This protocol is committed before decoding either holdout waveform. Its
acceptance gates are not to be changed in response to the result. A red or
infeasible run remains a red or infeasible result and needs a separately named
future protocol. The test concerns the public, default-D-carrier, aligned-spin
IMRPhenomHM six-mode Torch and JAX APIs. It uses no LAL code or coefficients.
Sources, case, and data identity
- Model source: London et al., First higher-multipole model of gravitational
waves from spinning and coalescing black-hole binaries,
especially the Results section. The paper reports typical full-polarization
NR matches above 0.99 for nonspinning mass ratios through 8 using an aLIGO
design PSD, 30 Hz lower bound, and optimized time, polarization and initial
orbital phase. It reports individual
(3,2)/(4,3)averages near 0.92 and typical subdominant-mode amplitude errors well below 15%. Our flat-band, one-22-alignment gates below are deliberately more permissive because those reported match values are not the identical statistic. - Numerical source: SXS Collaboration,
SXS:BBH:2265v3.0,
CaltechDATA record 258wv-a5t45,
SXS catalog paper, and
SXS Catalog 3. The metadata report
reference_mass1=0.7500097310012441,reference_mass2=0.24999389181355253,reference_dimensionless_spin1_z=8.310310779581836e-06,reference_dimensionless_spin2_z=7.14361976879799e-06,reference_eccentricity=7.17e-05,reference_time=1077.5 M, and 65.56197 orbits from the start. This is a near-nonspinning q=3 case inside the paper's stated domain. It was published after the 2018 model paper and is used only for validation, never fitting. - Source files are the official record's
Lev3andLev2N2 strain and sidecar/metadata pairs. Verify both size and MD5 against this frozen list before decoding. The exact content URLs have the formhttps://data.caltech.edu/api/records/258wv-a5t45/files/<key>/content.
| key | bytes | MD5 |
|---|---|---|
Lev3:Strain_N2.h5 |
5894558 | 2a7336507c63dbea3b3980cd6d3a783a |
Lev3:Strain_N2.json |
2229 | 76283d83e102361309030d4a4f6bd9fb |
Lev3:metadata.json |
3304 | ea2133e45d1075aa4f53068a3cc0e437 |
Lev2:Strain_N2.h5 |
6246326 | 6c98c77914cd7cd30f558b35f6fd7d7c |
Lev2:Strain_N2.json |
2227 | 268bf2bd33cb16c7b4b10134da0694ad |
Lev2:metadata.json |
3309 | 97a683f1e7f738d81895e09ee6d3236f |
The raw SXS arrays stay outside Git. SXS asks users to acknowledge the first scientific publication describing a simulation. The record API does not declare a per-record SPDX license, so no such license is inferred.
Frozen conditioning and conventions
Use the official sxs decoder, requested version 2026.0.6 if available,
with NumPy/SciPy, and record exact installed versions. Require strain type
h, spin weight -2, the six positive-m modes
(2,2),(2,1),(3,3),(3,2),(4,4),(4,3) and their negative-m partners in both
resolutions. Reject absent/nonfinite modes. SXS uses
h=h_+ - i h_× = Σ h_lm {}_{-2}Y_lm; the sidecar states mass and radius
are scaled out. Require the two sidecars to agree on these conventions.
Set detector-frame total mass 80 M_sun, component masses 60,20 M_sun,
aligned spins 0,0 (the metadata's residual spins are numerical), distance
500 Mpc, f_ref=30 Hz, and model phic=tc=phi0=0. Convert SXS code time
to seconds with GM_sun/c^3 and strain to physical dimensionless amplitude
with 80 GM_sun/(c^2 D). Use nominal IAU 2015
GM_sun=1.3271244e20 m^3 s^-2, exact c=299792458 m s^-1, and
1 pc=3.0856775814913673e16 m. These public unit definitions are not
copied from LAL.
For each resolution, retain the common SXS time interval beginning at the
larger of 1077.5 M and the two file start times and ending at the smaller
file end time. Resample real and imaginary parts of each selected complex mode
onto a uniform 1/8192 s grid by SciPy cubic spline; use the same physical
grid for both resolutions. Set the time origin at the maximum of the Lev3
|h_22| on this grid. Apply a half-cosine amplitude ramp over the first
500 M and last 100 M of the common interval. Both windows must fit without
overlap; otherwise the protocol is infeasible. This removes initial junk and
endpoint leakage. No per-mode cuts, rescalings or phase fits are allowed.
Evaluate the direct Riemann-sum Fourier transform at exactly
f=30,31,...,350 Hz with kernel exp(-2πift) and dt=1/8192 s.
The native positive-frequency mode target is
H_lm(f)=dt Σ conj(h_lm(t)) exp(-2πift) times the physical amplitude scale.
This is the conjugate of the negative-frequency SXS positive-m strain mode;
it follows from the stated Fourier convention, not an empirical adapter.
Project only the six selected ±m pairs to complex positive-frequency plus
and cross with the independently specified spin-weighted harmonics in
src/diffgw_reference/imrphenomhm_projection.py. Do not compare to the full
SXS multipolar polarization, which contains modes absent from IMRPhenomHM.
Use observer angles (inclination, azimuth)=(0.7,0.3) and (1.2,-0.2) radians.
Align once, using only the Lev3 (2,2) data and the native (2,2) mode
over 30..80 Hz: search Δt on [-0.1,0.1] s at steps of 1/8192 s,
maximizing |Σ H_NR,22 conj(H_model,22) exp(2πifΔt)|. Select the earliest
grid point on an exact tie. Let φ=-arg(C)/2, for the complex sum C at the
selected shift. Apply exp(-2πifΔt) exp(-imφ) to every native mode and its
resulting plus/cross; the polarization projection must use these aligned
modes. There is no per-mode time, phase, amplitude, polarization or orbital
phase optimization. Use the identical rule on Lev2 versus Lev3 (2,2) solely
to estimate numerical resolution error, applying that one Lev2 alignment to
all Lev2 modes/projections. Record both shifts and phases.
Frozen statistics and gates
All statistics use the full 30..350 Hz grid, flat frequency weighting,
with no pointwise masking or PSD. For complex vectors a (Lev3 NR) and b
(aligned native), define phase-sensitive match=Re Σ conj(a)b/(||a||||b||)
and amplitude_ratio=||b||/||a||. Norms must be finite and nonzero. Compute
the same statistics for Lev3 versus aligned Lev2. Torch and JAX must each
pass independently; their mutual parity is a separate gate elsewhere.
| observable | minimum model–Lev3 match | model/Lev3 amplitude ratio | minimum Lev2–Lev3 match |
|---|---|---|---|
(2,2), (3,3) |
0.97 | 0.90–1.10 | 0.995 |
(2,1), (4,4) |
0.94 | 0.80–1.20 | 0.99 |
(3,2), (4,3) |
0.85 | 0.75–1.25 | 0.97 |
six-mode plus and cross at each angle |
0.95 | 0.85–1.15 | 0.99 |
The resolution gate must pass before interpreting any model comparison.
These bounds are conservative case-specific tests informed by London et al.'s
reported NR behavior and by the explicit two-resolution screen. They do not
prove the paper's PSD-weighted/population claims. Any passing claim is limited
to this q=3 nearly nonspinning source, 80 M_sun, these two orientations,
six-mode truncation, this conditioning and 30–350 Hz flat band. A gate failure
is reported without weakening a bound. A decoder, data, or convention failure
is reported as infeasible, not as a pass or an optional skip.