Skip to content

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

XLALSimIMRPhenomXatan2tol(vy, vx, tol) ¤