gwkokab.utils.transformations¶

Functions¶

Mc_eta_to_m1_m2(→ tuple[jaxtyping.ArrayLike, ...)

cart_to_polar(→ tuple[jaxtyping.ArrayLike, ...)

cart_to_spherical(→ tuple[jaxtyping.ArrayLike, ...)

chi_costilt_to_chiz(→ jaxtyping.ArrayLike)

chi_p_from_components(→ jaxtyping.ArrayLike)

chieff(→ jaxtyping.ArrayLike)

chirp_mass(→ jaxtyping.ArrayLike)

chirp_mass_from_m1_q(→ jaxtyping.ArrayLike)

delta_m(→ jaxtyping.ArrayLike)

delta_m_to_symmetric_mass_ratio(→ jaxtyping.ArrayLike)

eta_from_q(→ jaxtyping.ArrayLike)

log_chirp_mass(→ jaxtyping.ArrayLike)

m1_m2_chi1_chi2_costilt1_costilt2_to_chieff(...)

m1_m2_chi1_chi2_costilt1_costilt2_to_chiminus(...)

m1_m2_chi1z_chi2z_to_chiminus(→ jaxtyping.ArrayLike)

m1_m2_chieff_chiminus_to_chi1z_chi2z(...)

m1_q_to_m2(→ jaxtyping.ArrayLike)

m1_times_m2(→ jaxtyping.ArrayLike)

m2_q_to_m1(→ jaxtyping.ArrayLike)

m_det_z_to_m_source(→ jaxtyping.ArrayLike)

m_source_z_to_m_det(→ jaxtyping.ArrayLike)

mass_ratio(→ jaxtyping.ArrayLike)

polar_to_cart(→ tuple[jaxtyping.ArrayLike, ...)

q_from_eta(→ jaxtyping.ArrayLike)

reduced_mass(→ jaxtyping.ArrayLike)

sin_tilt(→ jaxtyping.ArrayLike)

spherical_to_cart(→ tuple[jaxtyping.ArrayLike, ...)

spin_costilt_from_components(→ jaxtyping.ArrayLike)

spin_magnitude_from_components(→ jaxtyping.ArrayLike)

symmetric_mass_ratio(→ jaxtyping.ArrayLike)

symmetric_mass_ratio_to_delta_m(→ jaxtyping.ArrayLike)

total_mass(→ jaxtyping.ArrayLike)

Module Contents¶

gwkokab.utils.transformations.Mc_eta_to_m1_m2(Mc: jaxtyping.ArrayLike, eta: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} m_1(M_c, \eta) &= \frac{M_c}{2} \eta^{-0.6} (1 + \sqrt{1 - 4\eta}) \\ m_2(M_c, \eta) &= \frac{M_c}{2} \eta^{-0.6} (1 - \sqrt{1 - 4\eta}) \end{align*}\end{split}\]
gwkokab.utils.transformations.cart_to_polar(x: jaxtyping.ArrayLike, y: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} r(x, y) &= \sqrt{x^2 + y^2} \\ \theta(x, y) &= \arctan(y/x) \end{align*}\end{split}\]
gwkokab.utils.transformations.cart_to_spherical(x: jaxtyping.ArrayLike, y: jaxtyping.ArrayLike, z: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} r(x, y, z) &= \sqrt{x^2 + y^2 + z^2} \\ \theta(x, y, z) &= \arccos\left(\frac{z}{r}\right) \\ \phi(x, y, z) &= \arctan\left(\frac{y}{x}\right) \end{align*}\end{split}\]
gwkokab.utils.transformations.chi_costilt_to_chiz(chi: jaxtyping.ArrayLike, costilt: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_z(\chi, \cos(\theta)) = \chi \cos(\theta)\]
gwkokab.utils.transformations.chi_p_from_components(a_1: jaxtyping.ArrayLike, cos_tilt_1: jaxtyping.ArrayLike, a_2: jaxtyping.ArrayLike, cos_tilt_2: jaxtyping.ArrayLike, mass_ratio: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_p(a_1, \cos(\theta_1), a_2, \cos(\theta_2), q) = \max \left( a_1 \sin(\theta_1), \frac{3 + 4q}{4 + 3q} q a_2 \sin(\theta_2) \right)\]
gwkokab.utils.transformations.chieff(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike, chi1z: jaxtyping.ArrayLike, chi2z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_{\text{eff}}(m_1, m_2, \chi_{1z}, \chi_{2z}) = \frac{m_1\chi_{1z} + m_2\chi_{2z}}{m_1 + m_2}\]
gwkokab.utils.transformations.chirp_mass(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[M_c(m_1, m_2) = \frac{(m_1m_2)^{3/5}}{(m_1 + m_2)^{1/5}}\]
gwkokab.utils.transformations.chirp_mass_from_m1_q(m1: jaxtyping.ArrayLike, q: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[M_c(m_1, q) = \frac{(m_1^3 q^3)^{1/5}}{(m_1 + m_1 q)^{1/5}} = m_1 \frac{q^{3/5}}{(1 + q)^{1/5}}\]
gwkokab.utils.transformations.delta_m(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\delta_m(m_1, m_2) = \frac{m_1 - m_2}{m_1 + m_2}\]
gwkokab.utils.transformations.delta_m_to_symmetric_mass_ratio(delta_m: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\eta(\delta_m) = \frac{1 - \delta_m^2}{4}\]
gwkokab.utils.transformations.eta_from_q(q: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\eta(q) = \frac{q}{(1 + q)^2}\]
gwkokab.utils.transformations.log_chirp_mass(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\log(M_c(m_1, m_2)) = 3/5\times (\log(m_1) + \log(m_2)) - \log(m_1 + m_2)/5\]
gwkokab.utils.transformations.m1_m2_chi1_chi2_costilt1_costilt2_to_chieff(*, m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike, chi1: jaxtyping.ArrayLike, chi2: jaxtyping.ArrayLike, costilt1: jaxtyping.ArrayLike, costilt2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_{\text{eff}}(m_1, m_2, \chi_1, \chi_2, \cos(\theta_1), \cos(\theta_2)) = \frac{m_1\chi_1\cos(\theta_1) + m_2\chi_2\cos(\theta_2)}{m_1 + m_2}\]
gwkokab.utils.transformations.m1_m2_chi1_chi2_costilt1_costilt2_to_chiminus(*, m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike, chi1: jaxtyping.ArrayLike, chi2: jaxtyping.ArrayLike, costilt1: jaxtyping.ArrayLike, costilt2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_{\text{minus}}(m_1, m_2, \chi_1, \chi_2, \cos(\theta_1), \cos(\theta_2)) = \frac{m_1\chi_1\cos(\theta_1) - m_2\chi_2\cos(\theta_2)}{m_1 + m_2}\]
gwkokab.utils.transformations.m1_m2_chi1z_chi2z_to_chiminus(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike, chi1z: jaxtyping.ArrayLike, chi2z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi_{\text{minus}}(m_1, m_2, \chi_{1z}, \chi_{2z}) = \frac{m_1\chi_{1z} - m_2\chi_{2z}}{m_1 + m_2}\]
gwkokab.utils.transformations.m1_m2_chieff_chiminus_to_chi1z_chi2z(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike, chieff: jaxtyping.ArrayLike, chiminus: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} \chi_{1z}(m_1, m_2, \chi_{\text{eff}}, \chi_{\text{minus}}) &= \frac{m_1+m_2}{2m_1} \left( \chi_{\text{eff}} + \chi_{\text{minus}} \right)\\ \chi_{2z}(m_1, m_2, \chi_{\text{eff}}, \chi_{\text{minus}}) &= \frac{m_1+m_2}{2m_2} \left( \chi_{\text{eff}} - \chi_{\text{minus}} \right) \end{align*}\end{split}\]
gwkokab.utils.transformations.m1_q_to_m2(m1: jaxtyping.ArrayLike, q: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[m_2(m_1, q) = m_1q\]
gwkokab.utils.transformations.m1_times_m2(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[m_1m_2(m_1, m_2) = m_1 m_2\]
gwkokab.utils.transformations.m2_q_to_m1(m2: jaxtyping.ArrayLike, q: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[m_1(m_2, q) = \frac{m_2}{q}\]
gwkokab.utils.transformations.m_det_z_to_m_source(m_det: jaxtyping.ArrayLike, z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[m_{\text{source}}(m_{\text{det}}, z) = \frac{m_{\text{det}}}{1 + z}\]
gwkokab.utils.transformations.m_source_z_to_m_det(m_source: jaxtyping.ArrayLike, z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[m_{\text{det}}(m_{\text{source}}, z) = m_{\text{source}}(1 + z)\]
gwkokab.utils.transformations.mass_ratio(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[q(m_1, m_2) = \frac{m_2}{m_1}\]
gwkokab.utils.transformations.polar_to_cart(r: jaxtyping.ArrayLike, theta: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} x(r, \theta) &= r \cos(\theta) \\ y(r, \theta) &= r \sin(\theta) \end{align*}\end{split}\]
gwkokab.utils.transformations.q_from_eta(eta: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[q(\eta) = \frac{1 - 2\eta - \sqrt{1 - 4\eta}}{2\eta}\]
Parameters:

eta (ArrayLike) – Symmetric mass ratio

Returns:

Mass ratio

Return type:

ArrayLike

gwkokab.utils.transformations.reduced_mass(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[M_r(m_1, m_2) = \frac{m_1m_2}{m_1 + m_2}\]
gwkokab.utils.transformations.sin_tilt(costilt: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\sin(\theta) = \sqrt{1 - \cos^2(\theta)}\]
gwkokab.utils.transformations.spherical_to_cart(r: jaxtyping.ArrayLike, theta: jaxtyping.ArrayLike, phi: jaxtyping.ArrayLike) tuple[jaxtyping.ArrayLike, jaxtyping.ArrayLike, jaxtyping.ArrayLike][source]¶
\[\begin{split}\begin{align*} x(r, \theta, \phi) &= r \sin(\theta) \cos(\phi) \\ y(r, \theta, \phi) &= r \sin(\theta) \sin(\phi) \\ z(r, \theta, \phi) &= r \cos(\theta) \end{align*}\end{split}\]
gwkokab.utils.transformations.spin_costilt_from_components(chi_x: jaxtyping.ArrayLike, chi_y: jaxtyping.ArrayLike, chi_z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\cos(\theta)(\chi_x, \chi_y, \chi_z) = \frac{\chi_z}{\sqrt{\chi_x^2 + \chi_y^2 + \chi_z^2}}\]
gwkokab.utils.transformations.spin_magnitude_from_components(chi_x: jaxtyping.ArrayLike, chi_y: jaxtyping.ArrayLike, chi_z: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\chi(\chi_x, \chi_y, \chi_z) = \sqrt{\chi_x^2 + \chi_y^2 + \chi_z^2}\]
gwkokab.utils.transformations.symmetric_mass_ratio(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\eta(m_1, m_2) = \frac{m_1m_2}{(m_1 + m_2)^2}\]
gwkokab.utils.transformations.symmetric_mass_ratio_to_delta_m(eta: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[\delta_m(\eta) = \sqrt{1 - 4\eta}\]
gwkokab.utils.transformations.total_mass(m1: jaxtyping.ArrayLike, m2: jaxtyping.ArrayLike) jaxtyping.ArrayLike[source]¶
\[M(m_1, m_2) = m_1 + m_2\]