IMRPhenomNSBH public options and evidence boundary (2026-09-29)
This comparison is pinned to the tested len Python environment:
LALSimulation 6.2.1, PyCBC 2.11.0, and the diffgw
codex/nsbh-qualification branch. Its purpose is to identify actual public
interfaces and option differences, not to infer equation identity from the
IMRPhenomNSBH name. The linked LALSuite 7.26 API reference
describes the public model family. Its driver page
identifies LALSimulation 6.2.1, matching the tested binary. The PyCBC link
is current online API documentation; the installed 2.11.0 interface was
also inspected directly.
| Option | Public LALSimulation / PyCBC | diffgw Torch and JAX |
|---|---|---|
| Model and output | LAL's single-spin, nonprecessing FD IMRPhenomNSBH returns complex plus/cross series. The 6.2.1 binary resolves the approximant name; PyCBC 2.11.0 lists it among FD approximants. LAL model reference, PyCBC waveform API. |
Native Torch IMRPhenomNSBH.forward and JAX IMRPhenomNSBH.evaluate return complex plus/cross arrays. A backend match alone is not an independent source check. |
| Frequency selection | LAL offers a specified-frequency sequence and a uniform-\(\Delta f\) driver; the latter zero-fills below \(f_{\rm low}\) and beyond its ringdown cutoff. PyCBC documents both get_fd_waveform and get_fd_waveform_sequence. LAL driver reference, PyCBC API. |
Caller supplies a frequency tensor/array. The checked public path gives exact zero at nonpositive bins; this is not LAL's uniform-grid cutoff/zero-fill contract. |
| Physical parameters | LAL exposes BH/NS masses, aligned component spins, distance, reference phase/frequency and tidal parameters through LALDict; its 7.26 reference reports hard bounds \(m_{\rm NS}\le3M_\odot\), \(1\le q\le100\), \(0\le\Lambda_2\le5000\), and warns if \(\chi_{\rm NS}\ne0\). PyCBC's generic FD API includes mass1, mass2, spin1z, spin2z, lambda2, distance, inclination, and f_ref. LAL domain, PyCBC parameters. |
Public arguments include mass1, mass2, chi1, chi2, lambda2, distance, inclination, phic, tc, f_ref; the source-calibrated family assumes a nonspinning NS. Merely accepting chi2 does not validate nonzero NS spin. The native path does not reproduce LAL's listed hard domain checks. |
| Phase and gradients | LAL documents an IMRPhenomD_NRTidalv2 phase and reference frequency. The PyCBC calls in this project's binary regressions are a LAL-backed oracle, not a second published derivation. LAL model reference. | Default phase has an inherited frequency-grid-dependent affine gauge; explicit coalescence and reference_frequency gauges are separately checked against a scalar PhenomD+NRTidalv2 reference. Both native backends support tensor differentiation in scoped tests. The default gauge is not established as a published LAL option. |
The conditional complex assembly now verifies the last positive-frequency algebra for supplied carriers, joining centers, scale and explicit phase. The public binary regression tests fixed cases against the installed LAL/PyCBC stack, which is useful compatibility evidence but cannot resolve the three printed-versus-native amplitude variants or the remnant fallback predicate. Consequently neither this comparison nor the new component gate establishes an option-equivalent, paper-derived whole-waveform implementation.