LALSimIMRPhenomX precession
ripplegw.waveforms.LALSimIMRPhenomX_precession
¤
CommonConstants
dataclass
¤
sqrt2: Float = 1.4142135623730951
class-attribute
instance-attribute
¤
sqrt5: Float = 2.23606797749979
class-attribute
instance-attribute
¤
sqrt6: Float = 2.449489742783178
class-attribute
instance-attribute
¤
sqrt7: Float = 2.6457513110645907
class-attribute
instance-attribute
¤
sqrt10: Float = 3.16227766016838
class-attribute
instance-attribute
¤
sqrt14: Float = 3.7416573867739413
class-attribute
instance-attribute
¤
sqrt15: Float = 3.872983346207417
class-attribute
instance-attribute
¤
sqrt70: Float = 8.366600265340756
class-attribute
instance-attribute
¤
sqrt30: Float = 5.477225575051661
class-attribute
instance-attribute
¤
sqrt2p5: Float = 1.58113883008419
class-attribute
instance-attribute
¤
log16: Float = 2.772588722239781
class-attribute
instance-attribute
¤
power_of_lalpi_2: Float = 9.869604401089358
class-attribute
instance-attribute
¤
MAX_TOL_ATAN: Float = 1e-15
class-attribute
instance-attribute
¤
__init__(sqrt2: Float = 1.4142135623730951, sqrt5: Float = 2.23606797749979, sqrt6: Float = 2.449489742783178, sqrt7: Float = 2.6457513110645907, sqrt10: Float = 3.16227766016838, sqrt14: Float = 3.7416573867739413, sqrt15: Float = 3.872983346207417, sqrt70: Float = 8.366600265340756, sqrt30: Float = 5.477225575051661, sqrt2p5: Float = 1.58113883008419, log16: Float = 2.772588722239781, power_of_lalpi_2: Float = 9.869604401089358, MAX_TOL_ATAN: Float = 1e-15) -> None
¤
MSAPrecessionSetup
dataclass
¤
Pre-computed MSA precession constants that are invariant to emm and Mf.
Compute once via compute_msa_precession_setup and pass into compute_evolved_spin_given_setup inside any jax.vmap over modes.
eta: Float
instance-attribute
¤
eta2: Float
instance-attribute
¤
eta3: Float
instance-attribute
¤
eta4: Float
instance-attribute
¤
inveta: Float
instance-attribute
¤
SAv: Float
instance-attribute
¤
SAv2: Float
instance-attribute
¤
invSAv: Float
instance-attribute
¤
invSAv2: Float
instance-attribute
¤
qq: Float
instance-attribute
¤
delta_qq: Float
instance-attribute
¤
alpha_offset: Float
instance-attribute
¤
epsilon_offset: Float
instance-attribute
¤
c1: Float
instance-attribute
¤
c1_over_eta: Float
instance-attribute
¤
Seff: Float
instance-attribute
¤
dotS1Ln: Float
instance-attribute
¤
dotS2Ln: Float
instance-attribute
¤
S_0_norm: Float
instance-attribute
¤
psi0: Float
instance-attribute
¤
psi1: Float
instance-attribute
¤
psi2: Float
instance-attribute
¤
g0: Float
instance-attribute
¤
Omegaz0_coeff: Float
instance-attribute
¤
Omegaz1_coeff: Float
instance-attribute
¤
Omegaz2_coeff: Float
instance-attribute
¤
Omegaz3_coeff: Float
instance-attribute
¤
Omegaz4_coeff: Float
instance-attribute
¤
Omegaz5_coeff: Float
instance-attribute
¤
phiz_0: Float
instance-attribute
¤
Omegazeta0_coeff: Float
instance-attribute
¤
Omegazeta1_coeff: Float
instance-attribute
¤
Omegazeta2_coeff: Float
instance-attribute
¤
Omegazeta3_coeff: Float
instance-attribute
¤
Omegazeta4_coeff: Float
instance-attribute
¤
Omegazeta5_coeff: Float
instance-attribute
¤
zeta_0: Float
instance-attribute
¤
constants_L_0: Float
instance-attribute
¤
constants_L_1: Float
instance-attribute
¤
constants_L_2: Float
instance-attribute
¤
constants_L_3: Float
instance-attribute
¤
constants_L_4: Float
instance-attribute
¤
S1_norm_2: Float
instance-attribute
¤
S2_norm_2: Float
instance-attribute
¤
__init__(eta: Float, eta2: Float, eta3: Float, eta4: Float, inveta: Float, SAv: Float, SAv2: Float, invSAv: Float, invSAv2: Float, qq: Float, delta_qq: Float, alpha_offset: Float, epsilon_offset: Float, c1: Float, c1_over_eta: Float, Seff: Float, dotS1Ln: Float, dotS2Ln: Float, S_0_norm: Float, psi0: Float, psi1: Float, psi2: Float, g0: Float, Omegaz0_coeff: Float, Omegaz1_coeff: Float, Omegaz2_coeff: Float, Omegaz3_coeff: Float, Omegaz4_coeff: Float, Omegaz5_coeff: Float, phiz_0: Float, Omegazeta0_coeff: Float, Omegazeta1_coeff: Float, Omegazeta2_coeff: Float, Omegazeta3_coeff: Float, Omegazeta4_coeff: Float, Omegazeta5_coeff: Float, zeta_0: Float, constants_L_0: Float, constants_L_1: Float, constants_L_2: Float, constants_L_3: Float, constants_L_4: Float, S1_norm_2: Float, S2_norm_2: Float) -> None
¤
compute_evolved_spin_using_msa(Mf, mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, emm, reference_frequency, kappa, phiJ_Sf)
¤
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Mf
|
Dimensionless frequency Mf. |
required | |
mass_1
|
Heavier black hole mass in solar mass units. |
required | |
mass_2
|
Lighter black hole mass in solar mass units. |
required | |
chi1x
|
x-component of the dimensionless spin of the first black hole. |
required | |
chi1y
|
y-component of the dimensionless spin of the first black hole. |
required | |
chi1z
|
z-component of the dimensionless spin of the first black hole. |
required | |
chi2x
|
x-component of the dimensionless spin of the second black hole. |
required | |
chi2y
|
y-component of the dimensionless spin of the second black hole. |
required | |
chi2z
|
z-component of the dimensionless spin of the second black hole. |
required | |
emm
|
The index m of the mode (l, m). |
required | |
reference_frequency
|
Reference frequency for the waveform. |
required | |
kappa
|
Precession angle kappa. |
required | |
phiJ_Sf
|
Azimuthal angle between total angular momentum and source frame. |
required |
compute_vangles(Mf, emm, eta, eta2, eta3, eta4, inveta, c1, c1_over_eta, SAv, SAv2, invSAv, invSAv2, constants_L_0, constants_L_1, constants_L_2, constants_L_3, constants_L_4, S1_norm_2, S2_norm_2, qq, delta_qq, Seff, dotS1Ln, dotS2Ln, S_0_norm, psi0, psi1, psi2, g0, Omegaz0_coeff, Omegaz1_coeff, Omegaz2_coeff, Omegaz3_coeff, Omegaz4_coeff, Omegaz5_coeff, phiz_0, Omegazeta0_coeff, Omegazeta1_coeff, Omegazeta2_coeff, Omegazeta3_coeff, Omegazeta4_coeff, Omegazeta5_coeff, zeta_0)
¤
compute_thetaJN_and_kappa(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, LRef, phiRef_In, inclination)
¤
compute_zeta_polarization(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, LRef, phiRef_In, inclination, Nz_Jf, Nx_Jf, kappa)
¤
compute_thetaJN_kappa_and_zeta(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, LRef, phiRef_In, inclination)
¤
Compute thetaJN, Nz_Jf, Nx_Jf, phiJ_Sf, kappa, and zeta_polarization.
Fuses compute_thetaJN_and_kappa with compute_zeta_polarization so that the total angular momentum vector J0, thetaJ_Sf, and phiJ_Sf are computed only once instead of twice.
Returns:
| Type | Description |
|---|---|
|
thetaJN, Nz_Jf, Nx_Jf, phiJ_Sf, kappa, zeta_polarization |
PQ_Arun_1_6_7(Nx_Jf, Nz_Jf)
¤
thetaJN_Nz_Nx_1_6_7(N_Sf, J0_Sf, J0)
¤
get_phiJ_Sf(tol_condition, J0_Sf)
¤
Compute phiJ_Sf based on tolerance condition.
Since convention_condition is always False, this simplifies to: - If tol_condition is True: return 0.0 - Otherwise: return atan2(J0_Sf[1], J0_Sf[0])
Get_alphaepsilon_atfref(mprime, piM, fRef, alpha0, epsilon0, eta, eta2, eta3, eta4, inveta, c1, c1_over_eta, SAv, SAv2, invSAv, invSAv2, constants_L_0, constants_L_1, constants_L_2, constants_L_3, constants_L_4, S1_norm_2, S2_norm_2, qq, delta_qq, Seff, dotS1Ln, dotS2Ln, S_0_norm, psi0, psi1, psi2, g0, Omegaz0_coeff, Omegaz1_coeff, Omegaz2_coeff, Omegaz3_coeff, Omegaz4_coeff, Omegaz5_coeff, phiz_0, Omegazeta0_coeff, Omegazeta1_coeff, Omegazeta2_coeff, Omegazeta3_coeff, Omegazeta4_coeff, Omegazeta5_coeff, zeta_0)
¤
Get_alphaepsilon_atfref_pflag_true(omega_ref, alpha0, epsilon0, eta, eta2, eta3, eta4, inveta, c1, c1_over_eta, SAv, SAv2, invSAv, invSAv2, constants_L_0, constants_L_1, constants_L_2, constants_L_3, constants_L_4, S1_norm_2, S2_norm_2, qq, delta_qq, Seff, dotS1Ln, dotS2Ln, S_0_norm, psi0, psi1, psi2, g0, Omegaz0_coeff, Omegaz1_coeff, Omegaz2_coeff, Omegaz3_coeff, Omegaz4_coeff, Omegaz5_coeff, phiz_0, Omegazeta0_coeff, Omegazeta1_coeff, Omegazeta2_coeff, Omegazeta3_coeff, Omegazeta4_coeff, Omegazeta5_coeff, zeta_0)
¤
flag_222_223_twoPN_non_spinning_orbitan_angular_momentum(eta, eta2, chi1L, chi2L, delta, power_of_lalpi_2)
¤
set_epsilon0(phenom_xp_convention, phiJ_Sf)
¤
compute_msa_precession_setup(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, reference_frequency, kappa, phiJ_Sf) -> MSAPrecessionSetup
¤
Compute MSA precession constants invariant to emm and Mf.
Replaces the emm-invariant prefix of compute_evolved_spin_using_msa. Call once per waveform evaluation; pass the result to compute_evolved_spin_given_setup inside any vmap over modes.
compute_evolved_spin_given_setup(Mf, emm, setup: MSAPrecessionSetup)
¤
Compute precession angles for mode emm using pre-computed MSA setup.
This is the emm-dependent part of compute_evolved_spin_using_msa. Suitable for use inside jax.vmap over harmonic modes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Mf
|
Dimensionless frequency array. |
required | |
emm
|
Azimuthal mode number m. |
required | |
setup
|
MSAPrecessionSetup
|
Pre-computed MSAPrecessionSetup from compute_msa_precession_setup. |
required |
Returns:
| Type | Description |
|---|---|
|
alpha, epsilon, cos_beta arrays over Mf. |
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 |
XLALSimIMRPhenomXUtilsMftoHz(Mf: Float, Mtot_Msun: Float) -> Float
¤
Convert frequency from geometric units (Mf) to Hz.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Mf
|
Float
|
Geometric frequency |
required |
Mtot_Msun
|
Float
|
Total mass in solar masses |
required |
Returns:
| Name | Type | Description |
|---|---|---|
Float |
Float
|
Frequency in Hz |
IMRPhenomX_rotate_z(angle, v)
¤
Rotate a 3D vector v = (vx, vy, vz) about the z-axis by given angle. Args: angle: scalar angle in radians (JAX array or float) v: array-like of shape (3,) representing [vx, vy, vz] Returns: rotated vector as a JAX array of shape (3,)
IMRPhenomX_rotate_y(angle, v)
¤
Rotate a 3D vector v = (vx, vy, vz) about the y-axis by a given angle. Args: angle: scalar angle in radians (JAX array or float) v: array-like of shape (3,) representing [vx, vy, vz] Returns: rotated vector as a JAX array of shape (3,)
XLALSimIMRPhenomXLPNAnsatz(v: Float, LNorm: Float, L0: Float, L1: Float, L2: Float, L3: Float, L4: Float, L5: Float, L6: Float, L7: Float, L8: Float, L8L: Float) -> Float
¤
Compute orbital angular momentum using post-Newtonian expansion
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
Float
|
Input velocity (Float) |
required |
LNorm
|
Float
|
Orbital angular momentum normalization (Float) |
required |
L0
|
Float
|
Newtonian orbital angular momentum (Float) |
required |
L1
|
Float
|
0.5PN Orbital angular momentum (Float) |
required |
L2
|
Float
|
1.0PN Orbital angular momentum (Float) |
required |
L3
|
Float
|
1.5PN Orbital angular momentum (Float) |
required |
L4
|
Float
|
2.0PN Orbital angular momentum (Float) |
required |
L5
|
Float
|
2.5PN Orbital angular momentum (Float) |
required |
L6
|
Float
|
3.0PN Orbital angular momentum (Float) |
required |
L7
|
Float
|
3.5PN Orbital angular momentum (Float) |
required |
L8
|
Float
|
4.0PN Orbital angular momentum (Float) |
required |
L8L
|
Float
|
4.0PN logarithmic orbital angular momentum term (Float) |
required |
Returns: Float: Orbital angular momentum