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. |