Skip to content

IMRPhenomD NRTidalv2

This file implements the NRTidalv2 corrections that can be applied to any BBH baseline, see http://arxiv.org/abs/1905.06011 for equations used.

Functions:

Name Description
Phase_with_qm_correction

Compute the IMRPhenomD BBH phase with the hidden NRTidalv2 quadrupole

gen_IMRPhenomD_NRTidalv2

Generate NRTidalv2 frequency domain waveform following NRTidalv2 paper.

gen_IMRPhenomD_NRTidalv2_hphc

vars array contains both intrinsic and extrinsic variables

get_amp0_lal

Get the amp0 prefactor as defined in LAL in LALSimIMRPhenomD, line 331.

get_planck_taper

Compute the Planck taper function.

get_planck_taper_der

Derivative of the Planck taper function.

get_qm_phase_correction

Return the residual quadrupole-monopole phase correction hidden inside

get_spin_phase_correction

Get the higher order spin corrections (3.5PN only).

get_tidal_amplitude

Get the tidal amplitude corrections as given in equation (24) of the NRTidal paper.

get_tidal_phase

Computes the tidal phase psi_T from equation (17) of the NRTidalv2 paper.

Phase_with_qm_correction(f: Float[Array, ' n_freq'], theta_bbh: Float[Array, 4], theta_intrinsic: Float[Array, 6], coeffs: Float[Array, 19], transition_freqs: tuple[FloatLike, FloatLike, FloatLike, FloatLike, FloatLike, FloatLike]) -> Float[Array, ' n_freq'] ¤

Compute the IMRPhenomD BBH phase with the hidden NRTidalv2 quadrupole correction included before the region-I/IIa matching.

gen_IMRPhenomD_NRTidalv2(f: Float[Array, ' n_freq'], params: Float[Array, 9], f_ref: float, use_lambda_tildes: bool = True, no_taper: bool = False) -> Complex[Array, ' n_freq'] ¤

Generate NRTidalv2 frequency domain waveform following NRTidalv2 paper. vars array contains both intrinsic and extrinsic variables theta = [Mchirp, eta, chi1, chi2, D, tc, phic] Mchirp: Chirp mass of the system [solar masses] eta: Symmetric mass ratio [between 0.0 and 0.25] chi1: Dimensionless aligned spin of the primary object [between -1 and 1] chi2: Dimensionless aligned spin of the secondary object [between -1 and 1] lambda1: Dimensionless tidal deformability of primary object lambda2: Dimensionless tidal deformability of secondary object D: Luminosity distance to source [Mpc] tc: Time of coalesence. This only appears as an overall linear in f contribution to the phase phic: Phase of coalesence

f_ref: Reference frequency for the waveform

Returns:

Name Type Description
h0 array

Strain

gen_IMRPhenomD_NRTidalv2_hphc(f: Float[Array, ' n_freq'], params: Float[Array, 10], f_ref: float, use_lambda_tildes: bool = True, no_taper: bool = False) -> tuple[Complex[Array, ' n_freq'], Complex[Array, ' n_freq']] ¤

vars array contains both intrinsic and extrinsic variables

IMRphenom denotes the name of the underlying BBH approximant used, before applying tidal corrections.

theta = [Mchirp, eta, chi1, chi2, lambda1, lambda2, D, tc, phic, inclination] Mchirp: Chirp mass of the system [solar masses] eta: Symmetric mass ratio [between 0.0 and 0.25] chi1: Dimensionless aligned spin of the primary object [between -1 and 1] chi2: Dimensionless aligned spin of the secondary object [between -1 and 1] D: Luminosity distance to source [Mpc] tc: Time of coalesence. This only appears as an overall linear in f contribution to the phase phic: Phase of coalesence inclination: Inclination angle of the binary [between 0 and PI]

f_ref: Reference frequency for the waveform

Returns:

Name Type Description
hp array

Strain of the plus polarization

hc array

Strain of the cross polarization

get_amp0_lal(M: FloatLike, distance: FloatLike) -> FloatLike ¤

Get the amp0 prefactor as defined in LAL in LALSimIMRPhenomD, line 331.

Parameters:

Name Type Description Default
M FloatLike

Total mass in solar masses

required
distance FloatLike

Distance to the source in meters.

required

Returns:

Name Type Description
FloatLike FloatLike

amp0 from LAL.

get_planck_taper(x: Float[Array, ' n_freq'], y: float) -> Float[Array, ' n_freq'] ¤

Compute the Planck taper function.

Parameters:

Name Type Description Default
x Array

Array of frequencies

required
y float

Point at which the Planck taper starts. The taper ends at 1.2 times y.

required

Returns:

Name Type Description
Array Float[Array, ' n_freq']

Planck taper function.

get_planck_taper_der(x: Float[Array, ' n_freq'], y: float) -> Float[Array, ' n_freq'] ¤

Derivative of the Planck taper function.

Parameters:

Name Type Description Default
x Array

Array of frequencies

required
y float

Starting point of the Planck taper.

required

Returns:

Name Type Description
Array Float[Array, ' n_freq']

Array of derivative of Planck taper.

get_qm_phase_correction(fM_s: Float[Array, ' n_freq'] | FloatLike, theta: Float[Array, 6]) -> Float[Array, ' n_freq'] ¤

Return the residual quadrupole-monopole phase correction hidden inside LAL's IMRPhenomD baseline when it is called in NRTidalv2 mode.

LAL passes dQuadMon{1,2} into TaylorF2AlignedPhasing while constructing the IMRPhenomD inspiral phase. This shifts the 2PN and 3PN spin-squared pieces of the BBH baseline before the usual phase-reference alignment is applied.

get_spin_phase_correction(x: Float[Array, ' n_freq'], theta: Float[Array, 6]) -> Float[Array, ' n_freq'] ¤

Get the higher order spin corrections (3.5PN only).

LAL's IMRPhenomD_NRTidalv2 uses XLALSimInspiralGetHOSpinTerms which only computes the 3.5PN spin-squared and spin-cubed terms. The 2PN and 3PN terms described in the NRTidalv2 paper are NOT included in LAL's implementation.

Parameters:

Name Type Description Default
x Array

Angular frequency, in particular, x = (pi M f)^(2/3)

required
theta Array

Intrinsic parameters (mass1, mass2, chi1, chi2, lambda1, lambda2)

required

Returns:

Name Type Description
Array Float[Array, ' n_freq']

Higher order spin corrections to the phase (3.5PN only).

get_tidal_amplitude(x: Float[Array, ' n_freq'], theta: Float[Array, 6], kappa: FloatLike, distance: FloatLike = 1) -> Float[Array, ' n_freq'] ¤

Get the tidal amplitude corrections as given in equation (24) of the NRTidal paper.

Parameters:

Name Type Description Default
x Array

Angular frequency, in particular, x = (pi M f)^(2/3)

required
theta Array

Intrinsic parameters (mass1, mass2, chi1, chi2, lambda1, lambda2)

required
kappa FloatLike

Tidal parameter kappa

required
distance FloatLike

Distance to the source in Mpc.

1

Returns:

Name Type Description
Array Float[Array, ' n_freq']

Tidal amplitude corrections A_T from NRTidalv2 paper.

get_tidal_phase(x: Float[Array, ' n_freq'], theta: Float[Array, 6], kappa: FloatLike) -> Float[Array, ' n_freq'] ¤

Computes the tidal phase psi_T from equation (17) of the NRTidalv2 paper.

Parameters:

Name Type Description Default
x Array

Angular frequency, in particular, x = (pi M f)^(2/3)

required
theta Array

Intrinsic parameters in the order (mass1, mass2, chi1, chi2, lambda1, lambda2)

required
kappa float

Tidal parameter kappa, precomputed in the main function.

required

Returns:

Name Type Description
Array Float[Array, ' n_freq']

Tidal phase correction.