Skip to content

initialize MSA system

ripplegw.waveforms.initialize_MSA_system ¤

IMRPhenomX_Initialize_MSA_System(mass_1, mass_2, chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, reference_frequency, pflag=223) ¤

First initialize the system of variables needed for Chatziioannou et al, PRD, 88, 063011, (2013), arXiv:1307.4418:

  • Racine et al, PRD, 80, 044010, (2009), arXiv:0812.4413
  • Favata, PRD, 80, 024002, (2009), arXiv:0812.0069
  • Blanchet et al, PRD, 84, 064041, (2011), arXiv:1104.5659
  • Bohe et al, CQG, 30, 135009, (2013), arXiv:1303.7412

IMRPhenomX_Return_Roots_MSA(LNorm: Float, JNorm: Float, S1_norm_2: Float, S2_norm_2: Float, qq: Float, eta: Float, delta_qq: Float, Seff: Float, dotS1Ln: Float, dotS2Ln: Float, S_0_norm: Float) -> Float[Array, 3] ¤

Compute roots S32, Smi2, Spl2 for MSA approximation.

Parameters:

Name Type Description Default
LNorm Float

Normalized orbital angular momentum.

required
JNorm Float

Normalized total angular momentum.

required
S1_norm_2 Float

Spin 1 magnitude squared.

required
S2_norm_2 Float

Spin 2 magnitude squared.

required
qq Float

Mass ratio q = m2/m1.

required
eta Float

Symmetric mass ratio.

required
delta_qq Float

Mass difference parameter (m1-m2)/(m1+m2).

required
Seff Float

Effective spin parameter.

required
dotS1Ln Float

Dot product of S1 with L_hat.

required
dotS2Ln Float

Dot product of S2 with L_hat.

required
S_0_norm Float

Initial total spin magnitude.

required

Returns:

Type Description
Float[Array, 3]

Float[Array, "3"]: Array of [S32, Smi2, Spl2] roots.

IMRPhenomX_Return_Spin_Evolution_Coefficients_MSA(LNorm: Float, JNorm: Float, S1_norm_2: Float, S2_norm_2: Float, qq: Float, eta: Float, delta_qq: Float, Seff: Float) ¤

Compute spin evolution coefficients B, C, D for MSA approximation.

Parameters:

Name Type Description Default
LNorm Float

Normalized orbital angular momentum.

required
JNorm Float

Normalized total angular momentum.

required
S1_norm_2 Float

Spin 1 magnitude squared.

required
S2_norm_2 Float

Spin 2 magnitude squared.

required
qq Float

Mass ratio q = m2/m1.

required
eta Float

Symmetric mass ratio.

required
delta_qq Float

Mass difference parameter (m1-m2)/(m1+m2).

required
Seff Float

Effective spin parameter.

required

Returns:

Type Description

Tuple[float, float, float]: A tuple of (B_coeff, C_coeff, D_coeff) spin evolution coefficients for the MSA approximation.

IMRPhenomX_Get_PN_sigma(a: Float, b: Float, inveta: Float, dotS1S2: Float, dotS1L: Float, dotS2L: Float) -> Float ¤

Calculate PN sigma coefficient

Parameters:

Name Type Description Default
a Float

First coefficient (Float)

required
b Float

Second coefficient (Float)

required
inveta Float

Inverse of symmetric mass ratio (Float)

required
dotS1S2 Float

Dot product of S1 and S2 (Float)

required
dotS1L Float

Dot product of S1 and L (Float)

required
dotS2L Float

Dot product of S2 and L (Float)

required

Returns: Float: PN sigma value

IMRPhenomX_Get_PN_tau(a: Float, b: Float, qq: Float, S1_norm_2: Float, S2_norm_2: Float, dotS1L: Float, dotS2L: Float, eta: Float) -> Float ¤

Internal function to computes PN spin-spin couplings. As in LALSimInspiralFDPrecAngles.c

Parameters:

Name Type Description Default
a Float

First coefficient (Float)

required
b Float

Second coefficient (Float)

required
qq Float

Mass ratio q = m1/m2 (Float)

required
S1_norm_2 Float

Squared norm of spin 1 (Float)

required
S2_norm_2 Float

Squared norm of spin 2 (Float)

required
dotS1L Float

Dot product of S1 and L (Float)

required
dotS2L Float

Dot product of S2 and L (Float)

required
eta Float

Symmetric mass ratio (Float)

required

Returns: Float: PN tau value

IMRPhenomX_Get_PN_beta(a: Float, b: Float, dotS1L: Float, dotS2L: Float, qq: Float) -> Float ¤

Calculate PN beta coefficient

Parameters:

Name Type Description Default
a Float

First coefficient (Float)

required
b Float

Second coefficient (Float)

required
dotS1L Float

Dot product of S1 and L (Float)

required
dotS2L Float

Dot product of S2 and L (Float)

required
qq Float

Mass ratio q = m1/m2 (Float)

required

Returns: Float: PN beta value

compute_constants_L(eta, dotS1L, dotS2L, q) ¤

Compute coefficients for PN orbital angular momentum at 3PN.

As per LALSimInspiralFDPrecAngles_internals.c

Parameters:

Name Type Description Default
eta

Symmetric mass ratio

required
dotS1L

Dot product of S1 and L

required
dotS2L

Dot product of S2 and L

required
q

Mass ratio m2/m1 (q < 1)

required

Returns:

Type Description

tuple[Float, Float, Float, Float, Float]: 5 constants [constants_L_0, ..., constants_L_4]

compute_spin_norm_squared(chi1x, chi1y, chi1z, chi2x, chi2y, chi2z, mass_1, mass_2) ¤

Compute the squared norms of the dimensionless spin vectors S1 and S2.

Parameters:

Name Type Description Default
chi1x, chi1y, chi1z

Components of dimensionless spin vector for mass 1

required
chi2x, chi2y, chi2z

Components of dimensionless spin vector for mass 2

required
mass_1

Mass of the primary (m1 > m2)

required
mass_2

Mass of the secondary

required

Returns:

Name Type Description
tuple

(S1_norm_2, S2_norm_2) - squared norms of the spin vectors

compute_psi0(Smi2: Float, Spl2: Float, S32: Float, S_0_norm: Float, v_0: Float, v_0_2: Float, psi1: Float, psi2: Float, g0: Float, delta_qq: Float, L_0: Float[Array, 3], S1v: Float[Array, 3], S2v: Float[Array, 3]) -> Float ¤

Compute initial psi0 value for MSA approximation.

Parameters:

Name Type Description Default
Smi2 Float

S_minus squared root (Float)

required
Spl2 Float

S_plus squared root (Float)

required
S32 Float

S_3 squared root (Float)

required
S_0_norm Float

Initial total spin norm (Float)

required
v_0 Float

Initial velocity parameter (Float)

required
v_0_2 Float

v_0 squared (Float)

required
psi1 Float

Psi coefficient 1 (Float)

required
psi2 Float

Psi coefficient 2 (Float)

required
g0 Float

g0 coefficient (Float)

required
delta_qq Float

Delta mass ratio term (Float)

required
L_0 Float[Array, 3]

Initial orbital angular momentum vector (array)

required
S1v Float[Array, 3]

Spin 1 vector (array)

required
S2v Float[Array, 3]

Spin 2 vector (array)

required

Returns: Float: Initial psi0 value

IMRPhenomX_psiofv(v, v2, psi0, psi1, psi2, g0, delta_qq) ¤

Compute psi(v) for the MSA approximation.

Based on Equation 51 in arXiv:1703.03967.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
v2 Float

v squared.

required
psi0, psi1, psi2 Float

Psi expansion coefficients.

required
g0 Float

Precession coefficient g0.

required
delta_qq Float

Mass difference parameter delta_qq.

required

Returns:

Name Type Description
psi Float

The psi angle at velocity v.

IMRPhenomX_vector_cross_product(v1: Float[Array, 3], v2: Float[Array, 3]) -> Float[Array, 3] ¤

Calculate cross product of two 3D vectors

Parameters:

Name Type Description Default
v1 Float[Array, 3]

First 3D vector as JAX array [x, y, z] (Float[Array, "3"])

required
v2 Float[Array, 3]

Second 3D vector as JAX array [x, y, z] (Float[Array, "3"])

required

Returns:

Type Description
Float[Array, 3]

Float[Array, "3"]: Cross product vector

IMRPhenomX_Return_Constants_c_MSA(v: Float, JNorm: Float, Seff: Float, eta: Float, eta3: Float, inveta: Float, Spl2: Float, Smi2: Float, S1_norm_2: Float, S2_norm_2: Float, delta_qq: Float) ¤

Compute c constants for MSA approximation.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
JNorm Float

Normalized total angular momentum.

required
Seff Float

Effective spin parameter.

required
eta Float

Symmetric mass ratio.

required
eta3 Float

eta cubed.

required
inveta Float

Inverse of eta (1/eta).

required
Spl2 Float

S_plus squared.

required
Smi2 Float

S_minus squared.

required
S1_norm_2 Float

Spin 1 magnitude squared.

required
S2_norm_2 Float

Spin 2 magnitude squared.

required
delta_qq Float

MSA coefficient delta_qq.

required

Returns:

Type Description

Tuple[float, float, float]: A tuple of (c0, c2, c4) MSA constants.

IMRPhenomX_Return_Constants_d_MSA(LNorm: Float, JNorm: Float, Spl: Float, Spl2: Float, Smi2: Float) ¤

Compute d constants for MSA approximation.

Parameters:

Name Type Description Default
LNorm Float

Normalized orbital angular momentum.

required
JNorm Float

Normalized total angular momentum.

required
Spl Float

S_plus.

required
Spl2 Float

S_plus squared.

required
Smi2 Float

S_minus squared.

required

Returns:

Type Description

Tuple[float, float, float]: A tuple of (d0, d2, d4) MSA constants.

IMRPhenomX_Return_Psi_MSA(v: Float, v2: Float, g0: Float, delta_qq: Float, psi1: Float, psi2: Float) -> Float ¤

Compute psi for MSA approximation.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
v2 Float

v squared.

required
g0 Float

MSA coefficient g0.

required
delta_qq Float

MSA coefficient delta_qq.

required
psi1 Float

MSA coefficient psi1.

required
psi2 Float

MSA coefficient psi2.

required

Returns:

Name Type Description
Float Float

Psi value.

IMRPhenomX_Return_Psi_dot_MSA(v: Float, Seff: Float, inveta: Float, Spl2: Float, S32: Float) -> Float ¤

Compute the time derivative of psi for MSA approximation.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
Seff Float

Effective spin parameter.

required
inveta Float

Inverse of symmetric mass ratio (1/eta).

required
Spl2 Float

S_plus squared.

required
S32 Float

S_3 squared.

required

Returns:

Name Type Description
Float Float

Time derivative of psi.

IMRPhenomX_Return_MSA_Corrections_MSA(v: Float, LNorm: Float, JNorm: Float, Seff: Float, eta: Float, eta3: Float, inveta: Float, Spl: Float, Spl2: Float, Smi2: Float, Spl2mSmi2: Float, S1_norm_2: Float, S2_norm_2: Float, S32: Float, delta_qq: Float, g0: Float, psi0: Float, psi1: Float, psi2: Float) ¤

Compute MSA corrections for precession angles.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
LNorm Float

Normalized orbital angular momentum.

required
JNorm Float

Normalized total angular momentum.

required
Seff Float

Effective spin parameter.

required
eta Float

Symmetric mass ratio.

required
eta3 Float

eta cubed.

required
inveta Float

Inverse of eta (1/eta).

required
Spl Float

S_plus.

required
Spl2 Float

S_plus squared.

required
Smi2 Float

S_minus squared.

required
Spl2mSmi2 Float

Spl2 - Smi2.

required
S1_norm_2 Float

Spin 1 magnitude squared.

required
S2_norm_2 Float

Spin 2 magnitude squared.

required
S32 Float

S_3 squared.

required
delta_qq Float

MSA coefficient delta_qq.

required
g0 Float

MSA coefficient g0.

required
psi0 Float

Initial psi value.

required
psi1 Float

MSA coefficient psi1.

required
psi2 Float

MSA coefficient psi2.

required

Returns:

Type Description

Tuple[float, float]: A tuple of (vMSA_x, vMSA_y) MSA corrections.

IMRPhenomX_Return_phiz_MSA(v: Float, JNorm: Float, eta: Float, inveta: Float, eta2: Float, eta4: Float, c1: Float, SAv: Float, SAv2: Float, invSAv: Float, invSAv2: Float, Omegaz0_coeff: Float, Omegaz1_coeff: Float, Omegaz2_coeff: Float, Omegaz3_coeff: Float, Omegaz4_coeff: Float, Omegaz5_coeff: Float, phiz_0: Float) -> Float ¤

Compute the azimuthal precession angle phi_z using the MSA approximation.

Based on Eq. 66 and D22-D27 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
JNorm Float

Magnitude of the total angular momentum.

required
eta Float

Symmetric mass ratio.

required
inveta Float

Inverse of symmetric mass ratio (1/eta).

required
eta2 Float

eta squared.

required
eta4 Float

eta to the fourth power.

required
c1 Float

Precession constant c1.

required
SAv Float

Spin parameter SAv.

required
SAv2 Float

SAv squared.

required
invSAv Float

Inverse of SAv (1/SAv).

required
invSAv2 Float

Inverse of SAv squared (1/SAv^2).

required
Omegaz0_coeff, ..., Omegaz5_coeff Float

Omega_z expansion coefficients from Eqs. D15-D20.

required
phiz_0 Float

Initial phi_z value.

required

Returns:

Name Type Description
phiz_out Float

The azimuthal precession angle phi_z.

IMRPhenomX_Return_zeta_MSA(v: Float, eta: Float, Omegazeta0_coeff: Float, Omegazeta1_coeff: Float, Omegazeta2_coeff: Float, Omegazeta3_coeff: Float, Omegazeta4_coeff: Float, Omegazeta5_coeff: Float, zeta_0: Float) -> Float ¤

Compute zeta angle for MSA approximation.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
eta Float

Symmetric mass ratio.

required
Omegazeta0_coeff Float

Zeta precession coefficient (order 0).

required
Omegazeta1_coeff Float

Zeta precession coefficient (order 1).

required
Omegazeta2_coeff Float

Zeta precession coefficient (order 2).

required
Omegazeta3_coeff Float

Zeta precession coefficient (order 3).

required
Omegazeta4_coeff Float

Zeta precession coefficient (order 4).

required
Omegazeta5_coeff Float

Zeta precession coefficient (order 5).

required
zeta_0 Float

Initial zeta value.

required

Returns:

Name Type Description
Float Float

Zeta angle.

IMRPhenomX_vector_sum(v1: Float[Array, 3], v2: Float[Array, 3]) -> Float[Array, 3] ¤

Calculate sum of two 3D vectors

Parameters:

Name Type Description Default
v1 Float[Array, 3]

First 3D vector as JAX array (Float[Array, "3"])

required
v2 Float[Array, 3]

Second 3D vector as JAX array (Float[Array, "3"])

required

Returns:

Type Description
Float[Array, 3]

Float[Array, "3"]: Sum of the vectors

IMRPhenomX_vector_L2_norm(v1: Float[Array, 3]) -> Float ¤

Calculate L2 norm of a 3D vector

Parameters:

Name Type Description Default
v1 Float[Array, 3]

3D vector as JAX array [x, y, z] (Float[Array, "3"])

required

Returns: Float: L2 norm of the vector

IMRPhenomX_vector_scalar(v1: Float[Array, 3], a: Float) -> Float[Array, 3] ¤

Multiply a vector by a scalar

Parameters:

Name Type Description Default
v1 Float[Array, 3]

3D vector as JAX array [x, y, z] (Float[Array, "3"])

required
a Float

Scalar multiplier (Float)

required

Returns:

Type Description
Float[Array, 3]

Float[Array, "3"]: Scaled vector

IMRPhenomX_JNorm_MSA(LNorm: Float, c1_over_eta: Float, SAv2: Float) -> Float ¤

IMRPhenomX_L_norm_3PN_of_v(v: jax.Array, L_norm: Float, constants_L_0: Float, constants_L_1: Float, constants_L_2: Float, constants_L_3: Float, constants_L_4: Float) -> Float ¤

Compute L_norm at 3PN order.

Parameters:

Name Type Description Default
v Array

Orbital velocity parameter.

required
L_norm Float

Normalized orbital angular momentum.

required
constants_L_0 Float

L polynomial coefficient (index 0).

required
constants_L_1 Float

L polynomial coefficient (index 1).

required
constants_L_2 Float

L polynomial coefficient (index 2).

required
constants_L_3 Float

L polynomial coefficient (index 3).

required
constants_L_4 Float

L polynomial coefficient (index 4).

required

Returns:

Name Type Description
Float Float

L_norm at 3PN order.

IMRPhenomX_Return_phi_zeta_costhetaL_MSA(v: Float, eta: Float, eta2: Float, eta3: Float, eta4: Float, inveta: Float, c1: Float, c1_over_eta: Float, SAv: Float, SAv2: Float, invSAv: Float, invSAv2: 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, qq: Float, delta_qq: 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) ¤

Wrapper to generate phi_z, zeta and cos(theta_L) at a given frequency.

Parameters:

Name Type Description Default
v Float

Velocity parameter (Float)

required
eta Float

Symmetric mass ratio (Float)

required
eta2 Float

eta squared (Float)

required
eta3 Float

eta cubed (Float)

required
eta4 Float

eta to the fourth (Float)

required
inveta Float

Inverse of eta (Float)

required
c1 Float

c1 coefficient (Float)

required
c1_over_eta Float

c1 divided by eta (Float)

required
SAv Float

Spin average (Float)

required
SAv2 Float

Spin average squared (Float)

required
invSAv Float

Inverse of SAv (Float)

required
invSAv2 Float

Inverse of SAv squared (Float)

required
constants_L

Array of L constants [L0, L1, L2, L3, L4] (array)

required
S1_norm_2 Float

Squared norm of spin 1 (Float)

required
S2_norm_2 Float

Squared norm of spin 2 (Float)

required
qq Float

Mass ratio q = m1/m2 (Float)

required
delta_qq Float

Delta mass ratio term (Float)

required
Seff Float

Effective spin (Float)

required
dotS1Ln Float

Dot product of S1 and Lhat (Float)

required
dotS2Ln Float

Dot product of S2 and Lhat (Float)

required
S_0_norm Float

Initial total spin norm (Float)

required
psi0 Float

Psi coefficient 0 (Float)

required
psi1 Float

Psi coefficient 1 (Float)

required
psi2 Float

Psi coefficient 2 (Float)

required
g0 Float

g0 coefficient (Float)

required
Omegaz0_coeff through Omegaz5_coeff

Omega_z coefficients (floats)

required
phiz_0 Float

Initial phi_z value (Float)

required
Omegazeta0_coeff through Omegazeta5_coeff

Omega_zeta coefficients (floats)

required
zeta_0 Float

Initial zeta value (Float)

required

Returns:

Type Description

Tuple[float, float, float]: A tuple of (phi_z + phi_z_MSA, zeta + zeta_MSA, cos(theta_L))

IMRPhenomX_costhetaLJ(L_norm: Float, J_norm: Float, S_norm: Float) -> Float ¤

IMRPhenomX_Return_SNorm_MSA(v: Float, Smi2: Float, Spl2: Float, S32: Float, psi0: Float, psi1: Float, psi2: Float, g0: Float, delta_qq: Float) -> Float ¤

Compute the spin magnitude SNorm using the MSA approximation.

Based on Equations 23 and 25 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967.

Parameters:

Name Type Description Default
v Float

Orbital velocity parameter.

required
Smi2 Float

S_minus squared.

required
Spl2 Float

S_plus squared.

required
S32 Float

S_3 squared.

required
psi0, psi1, psi2 Float

Psi expansion coefficients.

required
g0 Float

Precession coefficient g0.

required
delta_qq Float

Mass difference parameter delta_qq.

required

Returns:

Name Type Description
SNorm Float

The spin magnitude.

IMRPhenomX_vector_dot_product(v1: Float[Array, 3], v2: Float[Array, 3]) -> Float ¤

Calculate dot product of two 3D vectors

Parameters:

Name Type Description Default
v1 Float[Array, 3]

First 3D vector as JAX array (Float[Array, "3"])

required
v2 Float[Array, 3]

Second 3D vector as JAX array (Float[Array, "3"])

required

Returns: Float: Dot product