Skip to content

NSBH explicit-gauge phase composition, v1

Scope and status

This is a conditional component gate for the aligned-spin, nonspinning-NS frequency-domain PhenomNSBH phase. It is not a whole-waveform qualification. The default legacy, frequency-grid-dependent affine gauge, remnant fit, QNM fit, and disruption-dependent amplitude are outside this gate.

Inputs, conventions, and options

The BH is body 1 and the NS is body 2: m1 >= m2 > 0 in solar masses, chi2 = 0, Lambda1 = 0, Lambda2 >= 0. Frequency and positive reference frequency are in Hz; time is in seconds. The complex carrier is exp(-i psi) with a native NSBH overall minus sign. Only explicit coalescence and reference_frequency phasing conventions are covered. The latter anchors the PhenomD baseline at f_ref; the tidal term is not independently re-anchored. This is deliberately distinct from the legacy default. The QNM pair (M_total f_RD, M_total f_damp) and PhenomD fit rows are supplied numerical conditioning inputs, not results of this component.

Mathematics and components

Thompson et al., arXiv:2002.08383v2, Sec. II.2, specify a PhenomD BBH phase baseline augmented by the updated NRTidal phase. Thus psi_NSBH(f) = psi_D(f; f_RD, f_damp) + psi_T(f; Lambda1=0, Lambda2). psi_D uses the C1 joins of Khan et al., arXiv:1508.07253v2, with its declared QNM pair. psi_T is Dietrich et al., arXiv:1905.06011v2, Eqs. (17)-(21), with the mass-weighted tidal combination of Wade et al., arXiv:1402.5156v1, Eq. (5). The explicit phase gauge and -pi/4 coalescence offset follow imrphenomd-intrinsic.md. The NSBH plus carrier is -A_+(f) exp(-i psi_NSBH(f)); this check divides out |h_+| and requires nonzero output, so it does not assess the amplitude magnitude.

Component ID/version Source Status Scalar reference Native check
nsbh.phase.explicit-composition.v1 Thompson Sec. II.2; Khan phase; Dietrich Eqs. (17)-(21) Conditional diffgw_reference.nsbh_phase.phase_expr test_nsbh_explicit_phase_math_reference.py

Implementation mapping

The scalar expression composes independent imrphenomd_waveform and nrtidalv2_phase references. The Torch and JAX NSBH implementations add their PhenomD baseline and NRTidalv2 phase before constructing the complex polarizations. Native final-spin and QNM computation is used only to supply the conditioning QNM pair to the scalar reference. Both sides use the same declared, higher-precision PhenomD coefficient rows already tested by the PhenomD component gate; those extra digits are not independently certified by the printed paper table.

Evidence and limitations

Frozen before comparison: cases (m1,m2,chi1,chi2,Lambda2) are (7,1.4,0,0,600) and (12.6,1.4,0.4,0,0); dimensionless frequencies Mf = (0.010, 0.018, 0.035, 0.070) and Mf_ref = 0.020; tc=0.003 s, phic=0.23 rad, and both explicit gauges. CPU FP64 Torch and JAX unit phasors must satisfy absolute complex error <= 3e-7 against the 70-digit scalar expression, with no numerical phase/time alignment or binary fit. The scalar expression must agree between 70 and 90 digits within 1e-30 in phase radians. This samples smooth phase regions; it does not prove boundary differentiability, remnant/QNM provenance, amplitude fidelity, legacy-gauge behavior, or agreement with NR data. A passing gate remains conditional on its supplied inputs. The validation receipt records the len CPU FP64 results.

Reproduce the checks

Run pytest -q tests/test_nsbh_explicit_phase_math_reference.py with SymPy, mpmath, Torch, JAX, and CPU FP64 support. Changes to the phase composition, gauge, conditioning inputs, or tolerance require a new version and updated evidence receipt before comparison. The PhenomD and NRTidalv2 component checks remain independent required neighbors.