TaylorF2 spin-induced quadrupoles
| Definition field | Catalog value |
|---|---|
| Model ID | taylorf2-spin-induced-quadrupole-3.5pn/v1 |
| Reference composition | taylorf2-spin-induced-quadrupole-3.5pn/v1 |
| Scope | Spin-induced quadrupole moment phase corrections through 3.5PN added to aligned-spin and tidal TaylorF2. |
| Domain and modes | frequency; (2, 2) |
| Native backends | torch, jax |
| Scoped verification claims | 0 |
| Option | Default | Native choices | Reference-only choices |
|---|---|---|---|
spin_order |
7 |
-1, 0, 1, 2, 3, 4, 5, 6, 7, 8 |
None |
phasing_convention |
coalescence |
coalescence, reference_frequency |
None |
phenom_d_calibration |
false |
false, true |
None |
Scope and status
Specification: taylorf2-spin-induced-quadrupole-3.5pn/v1. The independent
SymPy kernel
adds neutron-star spin-induced quadrupole corrections to the unchanged
nonspinning, aligned black-hole spin,
and adiabatic tidal references. Each inherited component
keeps its ID and version. The generated coefficient table
comes from the exact expressions.
Inputs, conventions, and options
Write \(M=m_1+m_2\), \(X_i=m_i/M\), signed \(\delta=X_1-X_2\),
\(\eta=X_1X_2\), and \(v=(\pi M_{\rm sec}f)^{1/3}\). Inputs
quad_monopole1/2 are the full dimensionless \(C_{Q1,2}\), defined by
\(M_{2,i}=-C_{Qi}m_i^3\chi_i^2\). The Kerr value is one; omission of either
input defaults that body to one. Define \(q_i=(C_{Qi}-1)X_i^2\chi_i^2\).
Frontend contract and verification
Both frontends use the historical integer spin_order selector. The reference
selects physical terms explicitly via quad_terms:
spin_order |
Added quadrupole terms |
|---|---|
| 0–3 | None |
| 4–5 | Q4 |
| 6–7 (7 is the public default) | Q4, Q6 |
| 8 or greater | Q4, Q6, Q7_tail, Q7_cubic |
| Negative | Q4, Q6 |
phenom_d_calibration=True retains only Q4 for selectors at least 4 or
negative. The low-level phase default selector is 5. This mapping describes
existing frontend semantics, not a strict PN truncation. The public Torch/JAX
TaylorF2 waveform paths accept either or both quadrupole parameters. The JAX
waveform generator also passes changing quadrupoles through its cached JIT path.
The independent reference retains the inherited Newtonian amplitude, \(e^{-i\Psi}\) carrier, and both phase conventions. In the coalescence gauge it adds \(\Delta\Psi(f)\); in the reference-frequency gauge it adds \(\Delta\Psi(f)-\Delta\Psi(f_{\rm ref})\). Symbolic derivatives hold the other inputs fixed, with no EOS relation. Inputs to the scalar reference are exact decimal strings with mass/distance in seconds and frequencies in Hz; frontend tests convert solar masses/Mpc separately.
Mathematics and components
The new phase is the difference from the inherited Kerr-spin reference:
The normalization contains one factor \(1/\eta\) outside the bracket. The 3PN coefficient also equals \(\frac5{84}\sum_iq_i(9407+8218X_i-2016X_i^2)\); the test proves this identity symbolically. Simultaneous body exchange leaves all terms invariant. The correction and its waveform difference vanish exactly at \(C_{Q1}=C_{Q2}=1\) or zero spins; its derivative with respect to \(C_{Qi}\) need not vanish there.
Paper audit and scope
Nagar et al., arXiv:1812.07923v1, Eqs. (2), (38), (44), (46), (47), (50)–(52) supply the 2PN/3PN quadratic-spin and 3.5PN quadratic-spin tail terms. Here their \(a_i=X_i\chi_i\). Subtracting their Kerr value gives \(Q_4,Q_6,Q_{7,\mathrm{tail}}\) above. The Kerr limit of their 3.5PN quadratic-spin term also reproduces the unchanged inherited baseline.
Dietrich et al., arXiv:1905.06011v2, Eqs. (26)–(27) give the quadrupole-dependent cubic-spin term and the equivalent 3PN form. Marsat, arXiv:1411.4118v2, Eqs. (6.20)–(6.21) independently confirms the cubic-spin coefficient after its SPA conversion. These are paper-equation audits, separate from Torch/JAX agreement.
Implementation mapping
The traceability map links every new component ID to its pinned paper equations, canonical SymPy function, Torch/JAX function and coefficient slot, and maintained checks.
Evidence and limitations
The spin-induced octupole is an independent physical parameter. This specification fixes it to its Kerr value, \(C_{\mathrm{Oc},i}=1\); the omitted 3.5PN contribution would be \(-440\sum_i(C_{\mathrm{Oc},i}-1)X_i^3\chi_i^3\) inside the same bracket. No EOS relation connects \(C_{Qi}\) to \(\Lambda_i\). Spin–tidal couplings, amplitude corrections, precession, higher harmonics, cutoffs, and merger are outside this slice. Thus the code is a verified quadrupole correction, not a complete spinning-neutron-star waveform or physical-domain validation.
The frozen 100/160-digit cases are converged snapshots of this reference, not an independent oracle. The gate checks exact paper identities and label exchange; FP64 coefficients, phases, polarizations, parameter derivatives including the Kerr point; selector and omission behavior; batching; compilation; and changing JAX generator inputs.
The dated LALSuite binary comparison independently confirms the 2PN and 3PN non-Kerr coefficients and both complex polarizations for three matched cases. LALSuite 7.21's TaylorF2 does not expose the non-Kerr 3.5PN terms at an accepted spin selector, so the paper-equation and mathematical-reference checks remain the evidence for that slice.
Reproduce the checks
From the repository root after installing the reference and both frontends:
python -m pip install -e '.[reference,torch,jax,dev]'
python -m diffgw_reference.spin_quadrupole_artifacts --check
JAX_ENABLE_X64=1 JAX_PLATFORMS=cpu python -m pytest tests/test_taylorf2_spin_quadrupole_math_reference.py tests/test_spin_quadrupole_math_reference_traceability.py --reference-device=cpu -ra
The focused tests check this correction and its traceability. The full strict CPU reference gate also includes inherited TaylorF2 specifications. A change to the phase equation or convention needs a new component/specification version and reviewed regeneration of the coefficient table and frozen fixtures; changing only test coverage does not change the mathematical version.