IMRPhenomXPHM
ripplegw.waveforms.IMRPhenomXPHM
¤
CSHIFT = jnp.array([0.0, PI / 2.0, 0.0, -PI / 2.0, PI, PI / 2.0, 0.0])
module-attribute
¤
BetaPowers
dataclass
¤
Stores powers of cos(beta/2) and sin(beta/2) for Wigner-d coefficient calculations.
Attributes:
| Name | Type | Description |
|---|---|---|
cBetah |
Float
|
cos(beta/2) |
cBetah2 |
Float
|
cos^2(beta/2) |
cBetah3 |
Float
|
cos^3(beta/2) |
cBetah4 |
Float
|
cos^4(beta/2) |
cBetah5 |
Float
|
cos^5(beta/2) |
cBetah6 |
Float
|
cos^6(beta/2) |
cBetah7 |
Float
|
cos^7(beta/2) |
cBetah8 |
Float
|
cos^8(beta/2) |
sBetah |
Float
|
sin(beta/2) |
sBetah2 |
Float
|
sin^2(beta/2) |
sBetah3 |
Float
|
sin^3(beta/2) |
sBetah4 |
Float
|
sin^4(beta/2) |
sBetah5 |
Float
|
sin^5(beta/2) |
sBetah6 |
Float
|
sin^6(beta/2) |
sBetah7 |
Float
|
sin^7(beta/2) |
sBetah8 |
Float
|
sin^8(beta/2) |
cBetah: Float
instance-attribute
¤
cBetah2: Float
instance-attribute
¤
cBetah3: Float
instance-attribute
¤
cBetah4: Float
instance-attribute
¤
cBetah5: Float
instance-attribute
¤
cBetah6: Float
instance-attribute
¤
cBetah7: Float
instance-attribute
¤
cBetah8: Float
instance-attribute
¤
sBetah: Float
instance-attribute
¤
sBetah2: Float
instance-attribute
¤
sBetah3: Float
instance-attribute
¤
sBetah4: Float
instance-attribute
¤
sBetah5: Float
instance-attribute
¤
sBetah6: Float
instance-attribute
¤
sBetah7: Float
instance-attribute
¤
sBetah8: Float
instance-attribute
¤
__init__(cBetah: Float, cBetah2: Float, cBetah3: Float, cBetah4: Float, cBetah5: Float, cBetah6: Float, cBetah7: Float, cBetah8: Float, sBetah: Float, sBetah2: Float, sBetah3: Float, sBetah4: Float, sBetah5: Float, sBetah6: Float, sBetah7: Float, sBetah8: Float) -> None
¤
from_half_angle_trig(cBetah: Float, sBetah: Float)
classmethod
¤
Constructs a BetaPowers instance from cos(beta/2) and sin(beta/2).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cBetah
|
Float
|
cos(beta/2) |
required |
sBetah
|
Float
|
sin(beta/2) |
required |
Returns:
| Type | Description |
|---|---|
|
BetaPowers instance with all power values computed |
generate_xphm(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, distance, inclination, phi0, frequency_array, reference_frequency)
¤
Generate IMRPhenomXPHM plus and cross polarizations.
twistup(Mf, mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, phiRef_In, inclination, reference_frequency, hlm)
¤
Rotate the co-precessing frame hlm modes into the inertial (J-frame) polarisations hp, hc. Implementation follows the lalsimulation function IMRPhenomXPHMTwistUps.
Computes the precession angles (alpha, beta, epsilon) at each frequency via MSA, applies the per-mode Wigner-d rotation and spherical-harmonic projection, sums over modes (21, 22, 32, 33, 44), and applies a final polarisation rotation by zeta.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Mf
|
Dimensionless frequency array (len N). |
required | |
mass_1, mass_2
|
Component masses in solar masses. |
required | |
chi1x/y/z, chi2x/y/z
|
Dimensionless spin components in the L-frame. |
required | |
phiRef_In
|
Reference orbital phase (rad). |
required | |
inclination
|
Inclination angle between J and line of sight (rad). |
required | |
reference_frequency
|
Reference frequency for spin evolution (Hz). |
required | |
hlm
|
Co-precessing frame modes, shape (n_modes, N). |
required |
Returns:
| Type | Description |
|---|---|
|
hp, hc: Plus and cross polarisations, shape (N,). |
twist_22(cexp_i_alpha, theta_JN, beta_powers)
¤
Compute the twisting contributions for l=2, m'=2 mode.
This function computes the sum over m of the Wigner-d matrix elements and spherical harmonics for the (2,2) mode, following eq. 3.5-3.7 in the Precessing paper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cexp_i_alpha
|
Complex exponential e^{i*alpha} (array over frequencies) |
required | |
theta_JN
|
Angle between total angular momentum and line of sight |
required | |
beta_powers
|
BetaPowers object containing powers of cos(beta/2) and sin(beta/2) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
hp_sum |
Plus polarization contribution |
|
hc_sum |
Cross polarization contribution |
twist_21(cexp_i_alpha, theta_JN, beta_powers)
¤
Compute the twisting contributions for l=2, m'=1 mode.
This function computes the sum over m of the Wigner-d matrix elements and spherical harmonics for the (2,1) mode, following eq. 3.5-3.7 in the Precessing paper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cexp_i_alpha
|
Complex exponential e^{i*alpha} (array over frequencies) |
required | |
theta_JN
|
Angle between total angular momentum and line of sight |
required | |
beta_powers
|
BetaPowers object containing powers of cos(beta/2) and sin(beta/2) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
hp_sum |
Plus polarization contribution |
|
hc_sum |
Cross polarization contribution |
twist_33(cexp_i_alpha, theta_JN, beta_powers)
¤
Compute the twisting contributions for l=3, m'=3 mode.
This function computes the sum over m of the Wigner-d matrix elements and spherical harmonics for the (3,3) mode, following eq. 3.5-3.7 in the Precessing paper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cexp_i_alpha
|
Complex exponential e^{i*alpha} (array over frequencies) |
required | |
theta_JN
|
Angle between total angular momentum and line of sight |
required | |
beta_powers
|
BetaPowers object containing powers of cos(beta/2) and sin(beta/2) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
hp_sum |
Plus polarization contribution |
|
hc_sum |
Cross polarization contribution |
twist_32(cexp_i_alpha, theta_JN, beta_powers)
¤
Compute the twisting contributions for l=3, m'=2 mode.
This function computes the sum over m of the Wigner-d matrix elements and spherical harmonics for the (3,2) mode, following eq. 3.5-3.7 in the Precessing paper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cexp_i_alpha
|
Complex exponential e^{i*alpha} (array over frequencies) |
required | |
theta_JN
|
Angle between total angular momentum and line of sight |
required | |
beta_powers
|
BetaPowers object containing powers of cos(beta/2) and sin(beta/2) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
hp_sum |
Plus polarization contribution |
|
hc_sum |
Cross polarization contribution |
twist_44(cexp_i_alpha, theta_JN, beta_powers)
¤
Compute the twisting contributions for l=4, m'=4 mode.
This function computes the sum over m of the Wigner-d matrix elements and spherical harmonics for the (4,4) mode, following eq. 3.5-3.7 in the Precessing paper.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cexp_i_alpha
|
Complex exponential e^{i*alpha} (array over frequencies) |
required | |
theta_JN
|
Angle between total angular momentum and line of sight |
required | |
beta_powers
|
BetaPowers object containing powers of cos(beta/2) and sin(beta/2) |
required |
Returns:
| Name | Type | Description |
|---|---|---|
hp_sum |
Plus polarization contribution |
|
hc_sum |
Cross polarization contribution |
apply_polarization_rotation(zeta_polarization, _hp, _hc)
¤
Apply polarization rotation to waveform components.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
zeta_polarization
|
float
|
Polarization angle. |
required |
_hp
|
array_like
|
Plus polarization component (unrotated). |
required |
_hc
|
array_like
|
Cross polarization component (unrotated). |
required |
Returns:
| Type | Description |
|---|---|
|
tuple[array_like, array_like]: Rotated plus (hp) and cross (hc) polarizations. |
IMRPhenomXWignerdCoefficients_cosbeta(cos_beta)
¤
Compute cos(beta/2) and sin(beta/2) from cos(beta).
Uses half-angle formulas: - cos(beta/2) = sqrt((1 + cos(beta)) / 2) - sin(beta/2) = sqrt((1 - cos(beta)) / 2)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cos_beta
|
float or array
|
cos(beta). |
required |
Returns:
| Type | Description |
|---|---|
|
tuple[float or array, float or array]: (cos(beta/2), sin(beta/2)), both always non-negative. |
XLALSimIMRPhenomXUtilsHztoMf(fHz: Float, Mtot_Msun: Float) -> Float
¤
Convert frequency from Hz to geometric units (Mf).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
fHz
|
Float
|
Frequency in Hz. |
required |
Mtot_Msun
|
Float
|
Total mass in solar masses. |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Float |
Float
|
Geometric frequency Mf. |
XLALSimIMRPhenomHMGethlmModes(freqs: Array, m1_SI: float, m2_SI: float, chi1x: float, chi1y: float, chi1z: float, chi2x: float, chi2y: float, chi2z: float, phiRef: float, deltaF: float, f_ref: float, extraParams: dict)
¤
Compute all hlm modes for IMRPhenomXPHM. JAX translation of XLALSimIMRPhenomHMGethlmModes.
IMRPhenomHMEvaluateOnehlmMode(freqs_geom: Float, pHM: dict, ell: int, mm: int, phi0: Float)
¤
Implementation of IMRPhenomHMEvaluateOnehlmMode in LALSimIMRPhenomHM.c
XLALSimPhenomUtilsPhenomPv2FinalSpin(m1: Float, m2: Float, chi1_l: Float, chi2_l: Float, chip: Float)
¤
Implementation of XLALSimPhenomUtilsPhenomPv2FinalSpin in LALSimPhenomUtils.c Assuming m1 >= m2
init_PhenomHM_Storage(p: dict, m1_SI: float, m2_SI: float, chi1x: float, chi1y: float, chi1z: float, chi2x: float, chi2y: float, chi2z: float, freqs: Array, deltaF: float, f_ref: float, phiRef: float, ModeArray: Array)
¤
Precompute a bunch of PhenomHM related quantities and store them Implementation of init_PhenomHM_Storage in LALSimIMRPhenomHM.c
IMRPhenomHMGetRingdownFrequency(ell: Integer, mm: Integer, finalmass: Float, finalspin: Float)
¤
Implementation of IMRPhenomHMGetRingdownFrequency in LALSimIMRPhenomHM.c
SimRingdownCW_KAPPA(jf: Float, ell: Integer, emm: Integer)
¤
Domain mapping for dimnesionless BH spin
SimRingdownCW_CW07102016(kappa: Float, ell: Integer, input_m: Integer, n: int)
¤
Dimensionless QNM Frequencies: Note that name encodes date of writing
IMRPhenomHMFreqDomainMap(Mflm, ell, mm, pHM, AmpFlag)
¤
Map input frequency Mflm to the effective 22-mode frequency Mf22 for the (ell, mm) mode.
IMRPhenomHMAmplitude(freqs_geom: Array, pHM: dict, ell: int, mm: int)
¤
Returns IMRPhenomHM amplitude evaluated at a set of input frequencies for the l,m mode Implementation of IMRPhenomHMAmplitude in LALSimIMRPhenomHM.c
IMRPhenomHMOnePointFiveSpinPN(fM, ell, m, M1, M2, X1z, X2z)
¤
Implementation of IMRPhenomHMOnePointFiveSpinPN from LALSimIMRPhenomHM.c Currently supported modes: (2,1), (2,2), (3,2), (3,3), (4,4)
IMRPhenomHMPhase(freqs_geom: Array, pHM: dict, ell: int, mm: int)
¤
Returns IMRPhenomHM phase evaluated at a set of input frequencies for the l,m mode Implementation of IMRPhenomHMPhase in LALSimIMRPhenomHM.c
IMRPhenomHMPhasePreComp(q: dict, ell: int, emm: int, pHM: dict)
¤
Implementation of IMRPhenomHMPhasePreComp in LALSimIMRPhenomHM.c
IMRPhenomHMFreqDomainMapParams(flm: float, ell: int, mm: int, pHM: dict, ampFlag: bool)
¤
Implementation of the phase computation of IMRPhenomHMFreqDomainMapParams in LALSimIMRPhenomHM.c
IMRPhenomHMSlopeAmAndBm(mm: int, fi: float, fr: float, Mf_RD_22: float, Mf_RD_lm: float, AmpFlag: bool, ell: int, pHM: dict)
¤
Implementation of IMRPhenomHMSlopeAmAndBm in LALSimIMRPhenomHM.c
IMRPhenomHMTrd(Mf: float, Mf_RD_22: float, Mf_RD_lm: float, AmpFlag: bool, mode_idx: int, pHM: dict)
¤
Implementation of IMRPhenomHMTrd in LALSimIMRPhenomHM.c domain mapping function - ringdown
IMRPhenomHMMapParams(flm: Float, fi: Float, fr: Float, Ai: Float, Bi: Float, Am: Float, Bm: Float, Ar: Float, Br: Float)
¤
Implementation of IMRPhenomHMMapParams in LALSimIMRPhenomHM.c, line 557
XLALSimPhenomUtilsChiP(m1, m2, s1x, s1y, s2x, s2y)
¤
Compute the effective precession parameter chip.
This is a JAX translation of LALSimIMRPhenomUtils.c XLALSimPhenomUtilsChiP.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
m1
|
float or array
|
Mass of companion 1 (solar masses). |
required |
m2
|
float or array
|
Mass of companion 2 (solar masses). |
required |
s1x
|
float or array
|
x-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1). |
required |
s1y
|
float or array
|
y-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1). |
required |
s2x
|
float or array
|
x-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1). |
required |
s2y
|
float or array
|
y-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1). |
required |
Returns:
| Type | Description |
|---|---|
|
float or array: Effective precession parameter chip. |