IMRPhenomD full intrinsic composition
| Definition field | Catalog value |
|---|---|
| Model ID | IMRPhenomD |
| Reference composition | imrphenomd-intrinsic-composition/v1 |
| Scope | Aligned-spin (2,2) IMR composition with declared fit rows and QNM data. |
| Domain and modes | frequency; (2, 2) |
| Native backends | torch, jax |
| Scoped verification claims | 0 |
| Option | Default | Native choices | Reference-only choices |
|---|---|---|---|
calibration |
inherited |
inherited, published |
None |
phasing_convention |
coalescence |
coalescence, reference_frequency |
None |
Scope and status
Generate the dominant-mode aligned-spin IMRPhenomD waveform through the
frequency-domain API with either backend.
The higher-mode and NRTidal variants add physics beyond this specification.
The executable
imrphenomd_intrinsic.py
connects the unchanged remnant and QNM specification
to the unchanged complex-polarization specification.
This extension tests how the default waveform responds to mass ratio and both
aligned spins when the remnant, QNM frequencies, amplitude, phase, joins, and
peak time gauge all move together. It imports no production waveform, fit, or
QNM-data module.
Inputs, conventions, and options
The public inputs are component masses in solar masses, aligned spins,
distance in Mpc, inclination and orbital phase in radians, time shift in
seconds, and a frequency grid in Hz. The default phase uses the coalescence
convention; reference_frequency subtracts the intrinsic phase at a positive
f_ref. Supplying f_ref without an explicit phasing_convention selects
reference_frequency in both native dispatchers. An explicit convention takes
precedence over this implicit selection; reference_frame overrides
phasing_convention if both are supplied. An unsupported value raises an error.
For reference_frequency with no f_ref, the carriers use the first evaluation
frequency as the anchor. This composition needs declared fit rows and QNM knot
data. The waveform composition specifies SI
normalization,
polarization signs, and the peak time gauge; the
remnant and QNM specification specifies its
interpolation and high-spin continuation. The generated option table above
describes which choices the native carriers accept.
The native calibration option defaults to inherited, preserving the existing
extra fit digits. Explicit calibration="published" uses the printed Khan
Table V and Husa remnant constants consistently in amplitude, phase, remnant
and peak slope. QNM data and their interpolation prescription are unchanged.
The scalar reference's printed defaults remain separately transcribed; the
older comparisons below still inject inherited rows at the test boundary.
The published-calibration HM composition uses this
new native option to test a complete source-defined six-mode composition.
Published calibration does not accept a custom remnant provider.
Mathematics and components
At fixed total mass \(M\), define \(q=m_1/m_2\), so \(m_1=Mq/(1+q)\) and \(m_2=M/(1+q)\). The component masses and spins determine \(\eta\), \(S\), and \(\hat S\) in Husa et al., Paper I, Section III.1. Paper I Eqs. (22)–(24) then give final spin \(a_f\) and final mass \(M_f\). An explicitly supplied natural cubic spline \(\nu_j(a_f)\) of numerical cyclic Kerr QNM ordinates supplies the ringdown and damping channels \(j\). Paper I Eq. (17) gives their total-mass coordinates,
for \(p\in\{q,\chi_1,\chi_2\}\) at fixed \(M\). The reference obtains \(\partial_p M_f\) and \(\partial_p a_f\) from the SymPy expressions for the published remnant fits, and \(\nu'_j\) from the independently constructed natural spline. The QNM knots and ordinates are numerical inputs, not equations published in either IMRPhenomD paper.
For the endpoint value check, the scalar reference caps the fitted spin at \(|a_f|=0.999\) and switches above \(|a_f|=0.994\) to an explicitly supplied degree-five Kerr spline. It evaluates that spline with SciPy in the transformed coordinate \(x=-\log(1-|a_f|)\), converts its angular ordinates to cyclic units by \(2\pi\), and then applies the same published total-mass scaling. The spline coefficients are generated numerical inputs with the separate QNM provenance, not waveform fit coefficients or a new paper equation. This checks how the whole waveform consumes those inputs; the independent-method QNM comparisons remain in the remnant/QNM audit.
The pair \((r_{\rm RD},r_{\rm damp})\) enters the amplitude and phase expressions of Khan et al., Paper II, Eqs. (5)–(7), (17)–(18), and (36)–(39). The existing scalar reference then evaluates the positive-frequency complex polarizations with DiffGW's documented SI normalization and phase conventions. Consequently a change in \(p\) propagates through \(\eta\), \(\chi_{\rm PN}\), the fitted coefficients, the QNM-driven amplitude peak, collocation points, phase joins, and the peak phase gauge. At fixed physical frequency, \(q\) leaves \(M_s f\) unchanged, whereas a spin change leaves both \(M_s f\) and the physical amplitude prefactor unchanged.
The full complex-polarization derivative is an independent numerical slope of scalar reference evaluations, not a symbolic proof of the entire piecewise waveform. For each polarization \(h\) and parameter \(p\), it uses
The intrinsic derivative comparison covers the rounded natural cubic for \(|a_f|<0.994\), both signed generated Kerr splines for \(0.994<|a_f|<0.999\), and an interior physical-spin example on the active \(|a_f|=0.999\) cap. The cap example differentiates the waveform as masses and spins vary while the capped QNM spin stays fixed; final mass, fitted coefficients, joins, and phase still respond. It does not assign a derivative at the cap transition. The separate remnant/QNM endpoint checks audit the QNM data itself. The natural cubic is \(C^2\) at its knots, while the generated spline is piecewise degree five. A five-point stencil crossing a knot need not retain its fourth-order smooth-function error law. The reference therefore requires the center and all four samples to lie inside one open QNM knot interval and on the same interpolation, cap, amplitude, and phase branches, below the hard cutoff. An explicit crossing step raises an error. The default step starts at \(10^{-4}\max(1,|p|)\) for the rounded cubic and \(10^{-7}\max(1,|p|)\) for generated Kerr data, and halves up to ten times to find an interior stencil; it raises if none is found. A center on or within floating-point resolution of a knot or switch, or at a physical spin endpoint, is rejected. Tests check the guard and stencil convergence. They compare derivatives on each side of moving joins without assigning a derivative at a join. Opt-in tapers remain outside this qualification.
Implementation mapping
| Component ID | Evidence | Reference function | Torch/JAX check |
|---|---|---|---|
phenomd.intrinsic.remnant_qnm.v1 |
Paper I Eqs. (17), (22)–(24); declared rounded and generated QNM data | remnant_qnm, qnm_tangent |
Default and high-spin remnant/QNM values; interior analytic mass-ratio/spin tangents |
phenomd.intrinsic.polarizations.v1 |
Paper II waveform equations, prior composed spec, and declared high-spin QNM data | compose |
Default-remnant and high-spin complex plus/cross through both joins and both phase conventions |
phenomd.intrinsic.derivatives.v1 |
Chain rule and fourth-order central stencil of the sourced composition | polarization_derivative |
Full-chain \(q\), \(\chi_1\), \(\chi_2\) complex Jacobians on rounded, signed generated, and active-cap branches against both frontends |
Evidence and limitations
The default remnant coefficients use only the printed Paper I digits and the default waveform coefficients use only the printed Paper II digits. Frontend tests pass additional inherited digits and the QNM data explicitly at the test boundary. Agreement under those inputs establishes implementation consistency, not independent provenance or licensing of the extra digits or physical accuracy. See the remnant coefficient audit for the disputed \(\eta S^2\) term. The principal case is \((m_1,m_2,\chi_1,\chi_2)=(45,15,0.45,-0.25)\), with \(q=3\), interior final spin, \(u=M_sf=0.012,0.028,0.080\), and a reference-frequency example. Additional derivative checks use equal masses with unequal spins, \((30,30,0.35,-0.2)\), and negative spins, \((40,20,-0.6,-0.3)\), at \(u=0.028\). The moving-join checks sample \(u=f_{\rm peak}\pm 2\times10^{-4}\) and \(u=f_{\rm RD}/2\pm 2\times10^{-4}\). These are sampled FP64 checks, not a uniform error bound over the parameter space.
The complete high-spin comparison uses \((150,1,0.999,0.999)\) just above the positive continuation threshold, \((1000,1,1,1)\) with fitted spin above the \(0.999\) cap, and \((2000,1,-1,-1)\) on the negative-spin continuation. For each case it compares \(M_f\), \(a_f\), both QNM channels, and unaligned complex polarizations and phase on both sides of all four moving joins, at the hard cutoff, and under both phase conventions. These extreme mass ratios are numerical branch probes, not physical-accuracy claims. The check shares the generated Kerr spline coefficients with production as declared data; its SciPy spline evaluation and symbolic waveform composition are independent of the Torch/JAX implementation.
The high-spin derivative cases keep both component spins strictly inside their physical domain: \((150,1,0.999,0.999)\) on the positive generated branch, \((2000,1,-0.999,-0.999)\) on the negative branch, and \((1000,1,0.9998,0.9998)\) on the active positive cap. They compare the real and imaginary parts of both complex polarizations for \(q\) at fixed total mass and for each aligned spin, at \(u=0.012,0.028,0.080\) with the declared phase conventions. These are implementation-consistency checks for extreme binary parameters, not physical-accuracy bounds.
An additional LALSuite binary-oracle check compares ordinary-domain complex \(q\), \(\chi_1\), and \(\chi_2\) derivatives with independent fourth-order finite differences of public LAL waveform values. It tests the complete production coefficient and QNM path without supplying inherited fit rows to the scalar reference. This same-model comparison is separate from the paper-to-reference and reference-to-frontend checks above.
Reproduce the checks
Run python -m pytest -q tests/test_imrphenomd_waveform_math_reference.py with
the optional reference, Torch, and JAX dependencies installed. The maintained
strict math-reference gate also collects this module.