Skip to content

IMRPhenomT family: reference validation

This report retains the model-specific reference checks and diagnostic experiments. For generation, parameters and supported transformations, use the T-family guide. Return to the validation overview for other evidence.

IMRPhenomT evaluates the aligned-spin dominant (2,±2) time-domain model from Estellés et al. (2021), using the authors' MIT-licensed phenomxpy calibration and reconstruction release pinned in the provenance ledger. The family also provides THM, TP and TPHM, with NNLO, MSA and numerical precession for the latter two. All four have native time-domain evaluation; there is no direct frequency-domain implementation.

The sampling wrapper places the amplitude peak at tc, with a shared fixed grid for batches and explicit duration. It does not promise LAL's automatically selected epoch or array length. phic fixes orbital phase at f_ref. Optional black-box LAL comparisons and Torch/JAX tests accompany the implementation; LAL is not a runtime dependency.

The pinned author-reference test checks both frontends for masses (60, 6) and aligned spins (0.9, 0.1) at five dimensionless times. Frequency and amplitude use rtol=1e-11 and atol=1e-13; phase, after subtracting its value at time zero, uses rtol=1e-11 and atol=1e-10. This is an implementation check using shared author calibration, rather than independent physical validation.

The THM Eq. (10) scalar collocation check solves the six inspiral (2,2) pseudo-PN coefficients at 80-digit precision. It checks the t0-shifted first node, the five calibrated frequency nodes, and three off-node frequencies against Torch and JAX for three mass/spin configurations, including (60, 6, 0.9, 0.1). The test passes on len (six backend/case combinations). Its TaylorT3 coefficients and calibration fits remain shared inputs, so this narrows the independent equation check to the collocation reconstruction. It does not change any binary acceptance gate.

The dominant merger supplied-input specification now independently solves THM Eqs. (28)–(32) at high precision. For three mass/spin cases, including mass ratio 10, Torch and JAX agree on merger coefficients, off-node frequency and slope, phase differences from quadrature, and signed-amplitude reconstruction before the native magnitude projection. The len receipt records 29 passing nearby scalar tests and 9 passing aligned/NNLO binary comparisons. Its fitted boundary targets, PN cutoff values, and QNM rates are supplied; the complete T/THM calibration and HM merger remain open. The four q=10 MSA/numerical gates still produce strict expected failures against the pinned binary.

Public implementation and option comparison

The family name alone does not define an identical output path. This table uses the versions underlying this qualification, with the actual options selected by the tests above and below.

Implementation Verified family capability and relevant options Scope relative to this evidence
LALSimulation 6.2.1 Native T/THM/TP/TPHM time-domain polarizations; THM/TPHM signed (2,2),(2,1),(3,3),(4,4),(5,5) mode set. Analytical precession versions include the 102xx and 223xx branches and numerical 300; final-spin choice and suffix select distinct paths. THM's inspiral switch defaults to 0. Binary oracle here: NNLO 10210/final spin 0, MSA 22310/3, numerical 300/4. Nine aligned/NNLO tests pass; all four q=10 MSA/numerical gates remain red.
Author phenomxpy 4121fafa T/THM/TP/TPHM time-domain modes and polarizations, plus FFT-derived frequency-domain polarizations; CPU Numba and GPU CuPy paths. It exposes coprecessing, J-frame, and L0-frame modes and an optional THM (2,0) contribution. Its precession defaults and option handling are distinct from the explicit binary tuples here. Pinned MIT source for the adapted aligned reconstruction and unprinted fit surfaces; its frozen output tests check implementation transcription, not an independent NR calibration or matched precession option parity.
DiffGW on this branch Native Torch/JAX FP64 time-domain T/THM/TP/TPHM, fixed caller grid, selected positive modes, nnlo/msa/numerical precession and explicit version/final-spin mapping. The scalar merger gate checks only the shared (2,2) component with supplied fits. No dedicated frequency-domain carrier or author-only (2,0) extension is qualified.

PyCBC's waveform registry can expose LALSimulation time-domain approximants through its LAL wrapper; that is another interface to the same binary, not a third independent T-family physics implementation. Matching mode set, frame, precession suffix, final spin, and inspiral switch is necessary for a parity claim. The current evidence does not establish parity for all such tuples.

Aligned-spin and NNLO reference checks

The optional LAL regression tests define the following acceptance criteria:

Model Cases and sampling Direct complex relative L2 Mismatch
T Five mass/spin configurations; 2048 Hz < 1e-3 < 1e-6
THM Three configurations; 2048 Hz; five mode pairs < 1e-3 < 1e-6
TP / TPHM, NNLO Three configurations; 2048 Hz, except the mass-ratio-10 case at 32768 Hz < 1e-2 < 1e-4

These are test thresholds, not measured worst-case errors over the model's domain. Each comparison uses LAL's returned time grid. Relative L2 applies no time, phase or amplitude adjustment; mismatch uses an unweighted complex inner product maximized over constant phase, without a time shift. Exact inputs are retained in the T reference test and family reference tests. The NNLO tests select PhenomXPrecVersion=10210 and PhenomXPFinalSpinMod=0, which differ from LAL's default numerical precession.

NNLO reference agreement is sensitive to sampling, particularly for the rapidly precessing mass-ratio-10 case. DiffGW anchors ringdown continuation at physical time tc, independently of the requested sampling grid, and uses the published orbital-angular-momentum series. Grid-invariance tests and the precession conventions are documented in the T-family guide.

MSA and numerical precession

For the additional precession methods, the same (40, 15) generic-spin case at 2048 Hz gives the following direct complex-strain errors against LALSimulation 6.2.1. The angle and remnant-spin options are matched explicitly. The MSA receipt and updated numerical receipt record the environment and reproduction commands. Use python scripts/validate_phenomt_precession.py for the baseline comparison.

Method / LAL options TP relative L2 TPHM relative L2 Largest mismatch
MSA / 22310, FinalSpinMod=3 0.00379 0.00388 0.00000754
Numerical / 300, FinalSpinMod=4 0.0234 0.0236 0.000274

These measurements use the full returned LAL time grid without time, phase, or amplitude adjustment for relative L2. Numerical precession uses the PhenomT frequency evolution, fixed intrinsic integration nodes, and a physical-time ringdown boundary. It now excludes the N3LO quadratic-spin terms according to the public phenomtp API specification, retaining the leading self-spin terms and N4LO spin-orbit terms. This reduces the baseline error from about 2.8% to 2.4%; it does not eliminate the reference differences. The full published spin equations remain available in the internal helper.

The matched-option CPU/Torch holdout receipt and CUDA/JAX holdout receipt repeat the baseline and strongly spinning (60, 6) cases for both MSA and numerical precession. For MSA, TP and TPHM have relative L2 0.0202 and 0.0225, with mismatch 0.000200 and 0.000249. Both exceed the retained MSA gates (0.01 and 0.0001); the failure is recorded as a strict expected failure rather than absorbed by a wider tolerance.

A fresh q=10 CPU receipt repeats all eight TP/TPHM, MSA/numerical, Torch/JAX strain gates after adding the independent rotation reference. No production waveform equation changed. Compared with the prior holdout receipts, the largest absolute change is 1.0e-11 in relative L2 and 1.4e-12 in mismatch. The MSA TP/TPHM L2 remains 0.0202333/0.0225165, while numerical remains 0.308418/0.307103; all four q=10 whole-waveform gates are still red.

The historical CPU/Torch and CUDA/JAX MSA component diagnostics compare public co-precessing Euler-angle outputs with native angles for every supported PV223 suffix. Both use the holdout inputs at 2048 Hz and final-spin option 3. Alpha and gamma are unwrapped and anchored only by subtracting their first residual; beta is direct. The invariant result below is the geodesic angle between R(first)^T R(t) triads. Each reported segment is separately anchored at its own first sample, with no optimized frame or time shift.

Case Version Inspiral max rotation (rad) Ringdown max rotation (rad)
(40, 15) 22300 0.00461 0.00146
(40, 15) 22310 0.00921 0.0442
(40, 15) 22311 0.00665 0.0445
(40, 15) 22321 0.00690 0.0354
(60, 6) 22300 0.0205 0.0377
(60, 6) 22310 0.0300 0.154
(60, 6) 22311 0.0215 0.154
(60, 6) 22321 0.0418 0.430

The Torch component diagnostic used Python 3.12.7, NumPy 2.5.2, Torch 2.13.0 and LALSimulation 6.2.1 on CPU in FP64. The JAX diagnostics were generated on host len with Python 3.12.3, NumPy 2.5.3, JAX 0.11.2, LALSimulation 6.2.1, FP64, and cuda:0. Across the table's component rotation maxima, the largest absolute Torch/JAX difference is 3.2e-7 rad. Across all eight baseline/holdout strain measurements, the largest absolute backend difference is 4.4e-11 in relative L2 and 1.4e-12 in mismatch.

PV22300 uses analytical angles throughout, so its (60, 6) inspiral residual shows that suffix continuation alone cannot explain the MSA holdout failure. The suffix-dependent ringdown growth separately localizes continuation and minimal-rotation gamma as follow-up components. These are black-box component measurements, not equation provenance or physical-accuracy claims. Direct rotation tests described below already exonerate the shared Wigner/SWSH projection for binary-supplied modes and angles.

The independent scalar-angle receipt summarizes a tabulation of the raw PV223 branch and implements the suffix rules from PhenomTP Eqs. (5), (20), and (24) with independent scalar PCHIP derivatives and adaptive quadrature. A 4,120-node table and its 2,065-node refinement agree within 1.65e-7 rad. At nine reference/MECO/peak/ringdown probes, the native versus independent maximum rotation is 0, 1.43e-15, 7.26e-6, and 1.16e-6 rad for suffixes 22300, 22310, 22311, and 22321. The relative-rotation residual against the public binary is already 0.01623 rad in the analytical inspiral for 22300; its sampled ringdown residual is 0.03774 rad. A full-grid check restricted to 5,326 samples strictly before MECO first exceeds 1e-4 rad after 31.738 ms, 1e-3 rad after 0.72949 s, and 1e-2 rad after 2.55908 s. No continuation, ringdown, or numerical-gamma rule applies on this interval. The 22311 and 22321 continuations amplify the sampled ringdown residual to 0.14664 and 0.42952 rad. Thus the earliest localized q=10 MSA discrepancy is the raw analytical-angle branch, while continuation/minimal-rotation gamma explains only additional suffix-dependent growth. The public 22300 branch is an unmodified observation, and no binary output is fitted.

The clean-room equation assembly now closes the source audit of that raw branch. For the same q=10 binary on 401 frequencies from 20--220 Hz, production alpha, gamma, and PN opening beta agree with the independent published-equation path within 2.95e-10, 2.51e-10, and 8.49e-12, respectively. The paths have identical reference roots, c1, and leading spin average. The first material split from the separately audited v223 compatibility path is its use of initial-reference spin contractions in the radiation-reaction coefficients, instead of the precession-averaged contractions in Chatziioannou et al.. At q=10 this changes beta3 by -0.00201653. A later compatibility-only transformation changes the quadratic nutation coefficient psi2 from 9.41342 to 7.33672. The q=10 phase diagnostic reconciles the equation path with Appendix C by identifying an algebraic discrepancy in the printed Eq. (118); its inferred correction does not explain the v223 compatibility convention. tests/test_clean_room_msa.py fixes the common equation path and the location of this split without treating binary behavior as equation provenance.

Composing that clean-room v223 compatibility path through the independent source-frame construction reduces the public PV22300 relative-rotation residual from 0.0162258 rad to 3.32e-6 rad across all 5,326 samples before MECO, with no 1e-4 crossing. This makes the compatibility branch, beginning at the flux contractions above, causal for the observed analytical-inspiral failure rather than merely a nearby algebraic difference. Its fixed initial Euler-gauge offset is removed by the same first-sample relative rotation used for both comparisons.

Replacing the production coefficients with those compatibility choices would therefore not be a source-backed correction. The published-equation implementation is retained, while the external full-waveform gate remains red.

Additional numerical cases at 2048 Hz give the following errors. Both native backends are included in the receipt; their reported errors agree to the displayed precision. The spins, viewing geometry, reference frequency, and separate inspiral/ringdown metrics are recorded there.

Numerical case TP relative L2 TPHM relative L2 Largest mismatch
Single-spin, masses (35, 20) 0.0263 0.0264 0.000343
Equal masses (30, 30) 0.0174 0.0173 0.000148
Strongly spinning, masses (60, 6) 0.308 0.307 0.0475

The large 10:1 residual persists at 16384 Hz (TP relative L2 0.308, TPHM 0.307); see the higher-rate receipt. This rules out output sampling as its main cause for this case.

Independent numerical-RHS reference

diffgw_reference/phenomt_spin_evolution.py is an 80-digit mpmath scalar translation of TPHM Eqs. (12)–(14) and Sturani Eqs. (3), (21), (22), (24), and (25). It imports neither native backend and exposes the v5 through v9 spin pieces, the nonspinning 3PN orbital angular momentum, and constrained orbital- axis derivative separately. Tests match the total RHS to Torch and JAX within 3e-14 relative error. A five-velocity Vandermonde solve recovers every PN power independently and matches within 3e-10; the production selection is also checked to remove only the published v8 N3LO quadratic-spin piece.

The independent trajectory receipt composes this RHS with a SciPy Brent event solve, adaptive DOP853 evolution, minimal-rotation tangent transport, dense output, and independent Euler-angle reconstruction. For the (60, 6) case, the reference event differs from the native event by 1.91e-11 M (6.21e-15 s). Tight/loose solves differ by at most 2.27e-9 in state-vector norm and 1.66e-9 rad in rotation; the largest constraint drift is 1.11e-12. Native and independent trajectories differ by at most 4.72e-9 in orbital-axis norm and 4.78e-9 rad in rotation. The production angle reconstruction has a fixed 0.003066 rad J-frame chart offset, but its relative evolution agrees with the independent reconstruction within 7.96e-16 rad.

The same receipt compares the independent relative triad with rotations reconstructed from the public PV300/FS4 binary's Euler-angle series for all 43,087 inspiral samples at 16384 Hz. The public binary does not expose its internal orbital-axis or ODE state. The initial relative-triad error is 1.38e-16 rad. It then exceeds 1e-4 rad after 1.465 ms, 1e-3 rad after 14.282 ms, 1e-2 rad after 0.13934 s, and 1e-1 rad after 1.16638 s, reaching maximum orbital-axis and triad errors of 0.38911 and 0.39276 rad. The independent carrier event and public epoch differ by only 1.12 microseconds; the comparison anchors both rotation series at that defined reference event, with no fitted time, phase, or rotation adjustment. This localizes the numerical discrepancy to the pre-merger orientation/rotation path before projection or ringdown. It does not distinguish public trajectory evolution from public Euler-angle construction or carrier/time mapping; the small reference-event offset does not exclude subsequent time-mapping drift.

The frozen PV300 clock/chart receipt tests the same q=10 case on len at 16384 Hz without fitting binary output. At the reference event and four predeclared offsets through 2 s, the public co-precessing (2,2) phase rate matches the native T carrier within 6.53e-7 relative error. Yet the public Euler-derived initial orbital-axis speed is 0.516152 1/s, versus 0.446028 1/s from the independent published spin RHS, a ratio of 1.15722. A common output-clock rescaling would change both rates together and cannot account for these observations. The public Euler series also satisfies TPHM Eq. (5)'s minimal-rotation rule to 1.70e-11 rad over the first 2 s, below the 5.09e-11 rad two-grid quadrature difference. This removes gamma integration as the early cause. The black-box API still cannot distinguish a hidden precession-only time map, spin/axis evolution, or alpha/beta construction: it exposes neither internal spin states nor the orbital axis before Euler-angle construction.

This closes the native-versus-independent event/ODE/transport/angle implementation check through the carrier peak, but not the public numerical- precession model gate. In particular, the independent published spin-even initial axis rate is 0.0686446799357 1/s and matches native to 8.33e-17 1/s; the public angle-derived axis rate is 3.27695843871e-8 1/s. The positive SpinTaylor quadrupole control remains present in the receipt. Published math therefore supports retaining the Kerr self-quadrupole coefficient, while the black-box orientation discrepancy and whole-waveform gate remain unresolved. No LAL source or binary-derived coefficient enters the reference path.

The component localization is therefore:

Failed q=10 path Earliest paper-defined component Evidence excluding later components Remaining blocker
MSA PV223 Public-binary raw analytical angles differ from the source-backed native/clean-room equation path Production and independent equations agree below 3e-10; the clean v223 compatibility path reduces the full pre-MECO relative residual from 0.0162258 to 3.32e-6 rad The first compatibility substitution (initial-reference flux contractions, followed later by a q^2 phase convention) is not stated by the published equations, so no source-backed production correction is authorized
Numerical PV300/FS4 Pre-merger orientation/rotation path: hidden precession time map, trajectory, or alpha/beta construction unresolved Public (2,2) carrier rate matches to 6.53e-7 relative and gamma satisfies minimal rotation to 1.70e-11 rad, while the initial orbital-axis speed differs by 15.7%; projection closes below 8e-16 Public Euler angles do not expose the internal trajectory, so the earliest of these three components cannot yet be selected

The primary sources support the retained Kerr self-quadrupole term and the implemented evolution equations. They do not support a narrow production correction inferred from the public binary, so this slice changes diagnostics and receipts only. The q=10 gate decision receipt names the exact independent provenance needed to revisit either frozen failure.

Carrier and integration-resolution diagnostics

The component receipt separates the dominant co-precessing mode from the projected TP polarizations. The native mode uses its own evolved remnant spin. Since the co-precessing API has an independent phase convention, this diagnostic applies one constant phase rotation fixed by the first mode sample, with no time shift or amplitude scaling. The polarization comparison remains unaligned. Both Torch and JAX give these results:

Numerical case Co-precessing (2,2) relative L2, initial phase anchored TP polarization relative L2, unaligned
Baseline (40, 15) 0.000138 0.0234
Single-spin (35, 20) 0.00000515 0.0263
Equal masses (30, 30) 0.000210 0.0174
Strongly spinning (60, 6) 0.000314 0.308

For the 10:1 case, doubling the intrinsic integration steps from 2048 backward / 1024 forward to 4096 / 2048 changes the native TP strain by relative L2 2.32e-9, while its reference error remains 0.308; see the resolution receipt. The opening angle differs from the reference by about 0.0105 radians near the peak at both resolutions. This focuses the remaining investigation on precession evolution and frame/phase conventions: neither the dominant-mode shape nor integration resolution explains the large residual. These diagnostics do not identify a specific missing physical term or establish higher-mode carrier agreement.

Quadrupole sensitivity

A separate quadrupole sensitivity receipt varies only the native self-quadrupole coupling in the spin equations. Setting both coefficients to zero instead of their black-hole value of one reduces TP relative L2 from 0.308 to 0.0181 for the 10:1 case and from 0.0234 to 0.00364 for the baseline. Torch and JAX reproduce this sensitivity. This experiment directs attention to the treatment of quadrupole coupling, but does not establish which equations the reference uses. Production retains the black-hole coupling: suppressing a physical term solely to improve reference agreement would change the model. The mathematical basis is the orbit-averaged spin equation in Sturani, Eq. (21) and the quadrupole-monopole contribution for Kerr black holes.

Reproduce the component check with python scripts/diagnose_phenomt_precession.py --output receipt.json. Add --backend torch --case high_mass_ratio --backward-steps 128 512 2048 4096 for the integration-resolution check. Both scripts use LAL binary outputs only; no implementation source or fitted production correction is used. For the separate sensitivity experiment, use --case baseline high_mass_ratio --quadrupole-kappa 1 0. The zero-coupling option exists only in the diagnostic script, not the waveform API. It leaves the reference settings unchanged.

Source-frame trajectories

A source-frame trajectory receipt compares the orbital axis and transported tangent after removing the constant reference rotation, using PhenomTP Eq. (8). It uses all inspiral samples at 2048 Hz and also checks elapsed time from each model's reference frequency. The reference-time offsets are -0.34 ns for the baseline and 1.12 microseconds for the 10:1 case. Accounting for these offsets leaves maximum orbital-axis differences of 0.0728 and 0.389 radians, respectively, with both frontends agreeing. Suppressing the native quadrupole term for diagnosis reduces those maxima to 0.0352 and 0.0635 radians. Thus constant frame choices and reference-time offsets do not explain the trajectory drift, and the zero-coupling experiment still leaves a measurable evolution difference. Reproduce with the sensitivity command above; the receipt records both clock conventions and initial-triad checks.

Rotation and initial-rate diagnostics

Independent tests and binary diagnostics isolate the rotation and initial spin response:

diffgw_reference/phenomt_rotation.py now constructs each degree-2 through degree-5 Wigner small-d matrix by exponentiating the angular-momentum generator at 60-digit precision. The strict tests/test_phenomt_rotation_math_reference.py compares this independent construction with both native backends, then checks signed-mode completion, the spin-weighted-harmonic sum, observer polarization phase, and the fixed inverse reference-frame rotation of TPHM Eqs. (4), (8), and (9). The generator calculation does not use the native factorial-sum algorithm. It qualifies the mode rotation for supplied modes and Euler angles, but does not establish the accuracy of the carrier or angle evolution.

  • The rotation receipt supplies binary co-precessing modes and Euler angles to the native project_modes, then compares against binary inertial modes projected with the reference spherical harmonics. It covers both frontends, all four cases, three viewing directions, and both the dominant-mode and full higher-mode selections. Relative L2 is below 8e-16. This checks rotation conventions independently of the native carrier and precession evolution; it does not establish full waveform agreement. The inverse J-to-L0 frame check, for the three cases with f_ref=f_lower=20 Hz, has a separate higher-mode residual reaching 1.3e-9 in the full projected strain. Per-degree checks localize this residual to ℓ=5. A reference-sample receipt checks the baseline and 10:1 cases at 512, 2048, and 8192 Hz and distances of 50, 100, and 200 Mpc. At the reference sample, Eq. (8) requires the co-precessing and L0 modes to coincide. The binary L0 output instead contains ℓ=5, m=±2 components with amplitudes 1.44e-32 and 5.98e-31 at 100 Mpc, respectively, while those co-precessing components are zero. Inverting the binary J modes gives amplitudes below 2e-40 in these components. Native rotation matrices agree with an independent 80-digit factorial evaluation to relative error below 3e-16; applying either matrix reproduces the binary J modes below 3e-16. The residual is independent of sampling rate and its absolute size scales inversely with distance. These checks identify an inconsistency among the tested public frame outputs, without identifying its internal cause. Full-mode inverse results remain measurements, not a passing accuracy gate, and no native correction is introduced.
  • The initial-rate receipt reverses a single tilted spin at fixed masses and reference frequency. The companion spin is set to zero, and each run starts at f_lower=f_ref. Averaging the rates for opposite spins cancels the native spin-orbit terms and retains the self-quadrupole contribution of Sturani Eq. (21). The binary rate is differentiated from its returned orbital-axis angles and rotated back into the common initial source frame. The full initial Euler triad agrees with this frame mapping to below 5e-16; the initial carrier frequency differs from f_ref by less than 3e-7 relative.

At 16384 Hz, the norms of these spin-even initial orbital-axis rates are:

Single-spin configuration Native black-hole rate (1/s) PhenomTP binary rate (1/s)
Masses (35, 20), spin1 (0.3, 0, 0.4), reference 30 Hz 0.0447 0.000000202
Masses (60, 6), spin1 (0.2, 0.1, 0.8), reference 20 Hz 0.0686 0.0000000328

The receipt includes two sampling rates, two reference phases, two derivative stencils, and controls with the spin in the orbital plane, where the native self-quadrupole torque vanishes. It also includes a positive control using the public SpinTaylorT4 binary with explicit quadrupole parameters zero and one. With one, its spin-even individual-spin derivative agrees with the native published term to relative error below 5e-8 at 16384 Hz; with zero, that response is suppressed. This control uses spinO=5 and compares only the initial spin-even derivative, not the full SpinTaylor and PhenomTP dynamics.

These results support a strongly suppressed self-quadrupole response in the tested PhenomTP binary output. They do not uniquely identify its internal quadrupole settings or equations: finite differences, frequency anchoring, axis definitions, and spin-dependent angular-momentum denominators can affect the inferred rates. The literature audit found no instruction in PhenomTP Sec. II.4.1 to suppress the black-hole quadrupole. Native production therefore retains it. This is a documented reference difference, not a correction fitted to binary output.

The initial-rate receipt also separates the spin-odd response across three mass ratios, reference frequencies of 20, 30, and 40 Hz, and two spin amplitudes. An independent evaluation of Sturani Eqs. (3), (5), (22), and (25) agrees with both native frontends below 9e-16 relative. No transcription error was found in the v^9 spin-orbit coefficient. Binary and native rate directions agree within 1.8e-8 radians, but their magnitudes differ by 0.024%–0.959%. Doubling the spin amplitude preserves the binary odd-rate scaling within 2.8e-7 relative; the receipt retains frequency anchoring and derivative-stencil sensitivity alongside these measurements. Using the published nonspin 2PN angular momentum instead of 3PN reduces the rate discrepancy, but leaves up to 0.155%. Thus changing that truncation alone does not explain the reference behavior. These are diagnostic evaluations of published terms, with no fitted coefficients or production changes.

Reproduce these checks with python scripts/diagnose_phenomt_rotation.py --output rotation.json and python scripts/diagnose_phenomt_initial_rates.py --output initial-rates.json. Add --reference-check to the rotation command for the per-mode reference controls, or --odd-rate-sweep to the initial-rate command for the published-order sweep. The latter uses 16384 Hz and the selected frontends independently of the main diagnostic's sampling-rate selection. Each receipt records its exact command. All reference calls use public binaries; no reference implementation source is read or incorporated.

The maintained scalar-angle diagnostic can be regenerated with python scripts/diagnose_phenomt_msa_scalar_angles.py --case high_mass_ratio --sample-rate 2048 --table-nodes 4097 --output msa-scalar.json. Its compact receipt retains inputs, conventions, convergence, onset and suffix summaries; the 36-row sampled table is excluded from the distributed repository and its full receipt SHA-256 is retained in evidence_retention.

The MSA component, independent-trajectory and PV300 clock/chart generators were exploratory tools and are excluded from the distributed repository. The MSA table above retains the rotation maxima and backend comparison; its raw component receipts are excluded too. The compact trajectory and clock/chart receipts retain their method, inputs, execution environment, historical command and scoped residuals. Those recorded commands are execution history, rather than runnable distributed workflows. The maintained independent-RHS and trajectory tests retain their equation and transport checks; the whole-waveform gates retain their failures.

Excluded MSA component artifact SHA-256
CPU/Torch full receipt dfbde90a9cb3654e6961a462c09e1b3f1197a9b80606283fcb0b031b4eb10468
CUDA/JAX full receipt 997c9cdc30c5a16f0cdfcc81b1224557fb62705d715abe829645bfd3682d131a
diagnose_phenomt_msa.py source snapshot before cleanup 097ad93766c6a683b2fe32ecc40ce937134e4b5190bbec41648b9b8b077bd134

The removed generator snapshot identifies the source before cleanup, not an independently recorded original execution revision. The two compact PV300 receipts record their corresponding generator snapshots and the same retention boundary. No removed trace or generator is promised to remain available. Their recorded historical environment is len, Python 3.12.3, NumPy 2.5.3, SciPy 1.18.1, Torch 2.14.0+cu130, and LALSuite 7.26.15 / LALSimulation 6.2.1; the scalar-angle and JAX environments are recorded separately in their evidence.

Regression scope and unresolved cases

The MSA and numerical regression checks are retained in tests/test_phenomt_family_lal.py. Numerical checks cover the baseline, single-spin, and equal-mass cases with relative L2 below 0.03 and mismatch below 0.0005. The 10:1 MSA case also exceeds its 0.01/0.0001 gates. Both high-mass-ratio failures remain strict expected-failure tests, rather than widening either regression tolerance. These checks do not establish reference agreement throughout parameter space or physical accuracy against numerical relativity. NNLO remains the default. See the precession options and numerical domain.