Prototypes | |
double | IMRPhenomX_L_norm_3PN_of_v (const double v, const double v2, const double L_norm, IMRPhenomXPrecessionStruct *pPrec) |
Returns the 3PN accurate orbital angular momentum as implemented in LALSimInspiralFDPrecAngles_internals.c. More... | |
int | IMRPhenomXGetAndSetPrecessionVariables (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, LALDict *lalParams, INT4 debug_flag) |
Function to populate the IMRPhenomXPrecessionStruct: More... | |
REAL8 | XLALSimIMRPhenomXL2PNNS (REAL8 v, REAL8 eta) |
2PN non-spinning orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3} More... | |
REAL8 | XLALSimIMRPhenomXL3PNAS (REAL8 v, REAL8 eta, REAL8 chi1L, REAL8 chi2L, REAL8 delta) |
3PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3} More... | |
REAL8 | XLALSimIMRPhenomXL4PNAS (REAL8 v, REAL8 eta, REAL8 chi1L, REAL8 chi2L, REAL8 delta) |
4PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3} More... | |
REAL8 | XLALSimIMRPhenomXL4PNLOSIAS (REAL8 v, REAL8 eta, REAL8 chi1L, REAL8 chi2L, REAL8 delta) |
4PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3} More... | |
REAL8 | XLALSimIMRPhenomXLPNAnsatz (REAL8 v, REAL8 LN, REAL8 L0, REAL8 L1, REAL8 L2, REAL8 L3, REAL8 L4, REAL8 L5, REAL8 L6, REAL8 L7, REAL8 L8, REAL8 L8L) |
This is a convenient wrapper function for PN orbital angular momentum. More... | |
int | IMRPhenomXPCheckMaxOpeningAngle (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
Helper function to check if maximum opening angle > pi/2 or pi/4 and issues a warning. More... | |
int | IMRPhenomXWignerdCoefficients (REAL8 *cos_beta_half, REAL8 *sin_beta_half, const REAL8 v, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
int | IMRPhenomXWignerdCoefficients_cosbeta (REAL8 *cos_beta_half, REAL8 *sin_beta_half, REAL8 cos_beta) |
int | IMRPhenomXPTwistUp22 (const REAL8 Mf, const COMPLEX16 hAS, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, COMPLEX16 *hp, COMPLEX16 *hc) |
Core twisting up routine, see Section III A of arXiv:2004.06503. More... | |
REAL8 | XLALSimIMRPhenomXPNEuleralphaNNLO (REAL8 f, REAL8 eta, REAL8 chi1L, REAL8 chi2L, REAL8 chip, REAL8 epsilon0) |
External wrapper function to next-to-next-to-leading (NNLO) in spin-orbit expression for the PN Euler angle alpha. More... | |
REAL8 | XLALSimIMRPhenomXPNEulerepsilonNNLO (REAL8 f, REAL8 eta, REAL8 chi1L, REAL8 chi2L, REAL8 chip, REAL8 epsilon0) |
External wrapper to NNLO PN epsilon angle. More... | |
void | Get_alphaepsilon_atfref (REAL8 *alpha_offset, REAL8 *epsilon_offset, UINT4 mprime, IMRPhenomXPrecessionStruct *pPrec, IMRPhenomXWaveformStruct *pWF) |
Get alpha and epsilon offset depending of the mprime (second index of the non-precessing mode) More... | |
double | IMRPhenomX_PN_Euler_alpha_NNLO (IMRPhenomXPrecessionStruct *pPrec, const double omega, const double omega_cbrt2, const double omega_cbrt, const double logomega) |
Internal function to calculate alpha using pre-cached NNLO PN expressions. More... | |
double | IMRPhenomX_PN_Euler_epsilon_NNLO (IMRPhenomXPrecessionStruct *pPrec, const double omega, const double omega_cbrt2, const double omega_cbrt, const double logomega) |
Internal function to calculate epsilon using pre-cached NNLO PN expressions. More... | |
double | IMRPhenomX_Spin_Evolution_Equation_MSA (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
vector | IMRPhenomX_Return_Spin_Evolution_Coefficients_MSA (double LNorm, double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
Get coefficients for Eq 21 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967. More... | |
vector | IMRPhenomX_Return_Constants_c_MSA (double v, const double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
Get c constants from Appendix B (B6, B7, B8) of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967. More... | |
vector | IMRPhenomX_Return_Constants_d_MSA (const double LNorm, const double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
Get d constants from Appendix B (B9, B10, B11) of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967. More... | |
double | IMRPhenomX_costhetaLJ (const double J_norm, const double L_norm, const double S_norm) |
Calculate (L dot J) More... | |
double | IMRPhenomX_Return_Psi_MSA (double v, double v2, const IMRPhenomXPrecessionStruct *pPrec) |
Get \(\psi\) using Eq 51 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967: More... | |
double | IMRPhenomX_Return_Psi_dot_MSA (double v, const IMRPhenomXPrecessionStruct *pPrec) |
Get \(\dot{\psi}\) using Eq 24 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967: More... | |
double | IMRPhenomX_Return_SNorm_MSA (const double v, IMRPhenomXPrecessionStruct *pPrec) |
Get norm of S, see PRD 95, 104004, (2017) More... | |
double | IMRPhenomX_JNorm_MSA (const double LNorm, IMRPhenomXPrecessionStruct *pPrec) |
Get norm of J using Eq 41 of Chatziioannou et al, PRD 95, 104004, (2017) More... | |
int | IMRPhenomX_Get_MSA_Euler_Angles (REAL8 *alpha, REAL8 *beta, REAL8 *mprime_epsilon, REAL8 fHz, INT4 mprime, const REAL8 twopi_Msec, IMRPhenomXPrecessionStruct *pPrec) |
vector | IMRPhenomX_Return_Roots_MSA (const double LNorm, const double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
Here we solve for the roots of Eq 21 in Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967: More... | |
vector | IMRPhenomX_Return_phi_zeta_costhetaL_MSA (const double xi, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
Wrapper to generate \(\phi_z\), \(\zeta\) and \(\cos \theta_L\) at a given frequency. More... | |
int | IMRPhenomX_Initialize_MSA_System (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, const int ExpansionOrder) |
This function initializes all the core variables required for the MSA system. More... | |
vector | IMRPhenomX_Return_MSA_Corrections_MSA (double v, const double LNorm, const double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
double | IMRPhenomX_Return_zeta_MSA (const double v, const IMRPhenomXPrecessionStruct *pPrec) |
Get \(\zeta\) using Eq F5 in Appendix F of Chatziioannou et al, PRD 95, 104004, (2017): More... | |
double | IMRPhenomX_Return_phiz_MSA (const double v, const double JNorm, const IMRPhenomXPrecessionStruct *pPrec) |
Get \(\phi_z\) using Eq 66 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967: More... | |
double | IMRPhenomX_psiofv (const double v, const double v2, const double psi0, const double psi1, const double psi2, const IMRPhenomXPrecessionStruct *pPrec) |
double | IMRPhenomX_Get_PN_beta (const double a, const double b, const IMRPhenomXPrecessionStruct *pPrec) |
Internal function to computes the PN spin-orbit couplings. More... | |
double | IMRPhenomX_Get_PN_sigma (const double a, const double b, const IMRPhenomXPrecessionStruct *pPrec) |
Internal function to compute PN spin-spin couplings. More... | |
double | IMRPhenomX_Get_PN_tau (const double a, const double b, const IMRPhenomXPrecessionStruct *pPrec) |
Internal function to computes PN spin-spin couplings. More... | |
double | IMRPhenomX_vector_dot_product (const vector v1, const vector v2) |
vector | IMRPhenomX_vector_cross_product (const vector v1, const vector v2) |
double | IMRPhenomX_vector_L2_norm (const vector v1) |
vector | IMRPhenomX_vector_scalar (const vector v1, const double a) |
vector | IMRPhenomX_vector_sum (const vector v1, const vector v2) |
vector | IMRPhenomX_vector_diff (const vector v1, const vector v2) |
vector | IMRPhenomX_vector_PolarToCartesian (const sphpolvector v1) |
vector | IMRPhenomX_vector_PolarToCartesian_components (const REAL8 mag, const REAL8 theta, const REAL8 phi) |
sphpolvector | IMRPhenomX_vector_CartesianToPolar (const vector v1) |
vector | IMRPhenomX_vector_rotate_z (const REAL8 angle, const vector v1) |
Function to rotate vector about z axis by given angle. More... | |
vector | IMRPhenomX_vector_rotate_y (const REAL8 angle, const vector v1) |
Function to rotate vector about y axis by given angle. More... | |
void | IMRPhenomX_rotate_z (const REAL8 angle, REAL8 *vx, REAL8 *vy, REAL8 *vz) |
Function to rotate vector about z axis by given angle. More... | |
void | IMRPhenomX_rotate_y (const REAL8 angle, REAL8 *vx, REAL8 *vy, REAL8 *vz) |
Function to rotate vector about y axis by given angle. More... | |
REAL8 | IMRPhenomX_Cartesian_to_SphericalPolar_theta (const double x, const double y, const double z) |
REAL8 | IMRPhenomX_Cartesian_to_SphericalPolar_phi (const double x, const double y, const double z) |
void | IMRPhenomX_CartesianToPolar (REAL8 *polar, REAL8 *azimuthal, REAL8 *magnitude, REAL8 x, REAL8 y, REAL8 z) |
vector | IMRPhenomXCreateSphere (const double r, const double th, const double ph) |
INT4 | IMRPhenomX_SetPrecessingRemnantParams (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *lalParams) |
int | IMRPhenomXPTwistUp22_NumericalAngles (const COMPLEX16 hAS, REAL8 alpha, REAL8 cos_beta, REAL8 gamma, IMRPhenomXPrecessionStruct *pPrec, COMPLEX16 *hp, COMPLEX16 *hc) |
Core twisting up routine for SpinTaylor angles. More... | |
int | IMRPhenomXPSpinTaylorAnglesIMR (REAL8Sequence **alphaFS, REAL8Sequence **cosbetaFS, REAL8Sequence **gammaFS, REAL8Sequence *freqsIN, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *LALparams) |
This function evaluates the SpinTaylor Euler angles on a frequency grid passed by the user. More... | |
int | IMRPhenomX_InterpolateAlphaBeta_SpinTaylor (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *LALparams) |
This function computes cubic splines of the alpha and beta inspiral Euler angles, which are then stored into a IMRPhenomXPrecessionStruct structure. More... | |
int | IMRPhenomX_InterpolateGamma_SpinTaylor (REAL8 fmin, REAL8 fmax, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
This function computes gamma from the minimal rotation condition and stores a spline for it. More... | |
int | IMRPhenomX_SpinTaylorAnglesSplinesAll (REAL8 fmin, REAL8 fmax, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *LALparams) |
This function builds and stores splines for \(\alpha\) and \(\cos\beta\) in the frequency range covered by PN, and computes a spline for \(\gamma\) between fmin and fmax More... | |
int | IMRPhenomX_InspiralAngles_SpinTaylor (PhenomXPInspiralArrays *arrays, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 fmin, int PrecVersion, IMRPhenomXWaveformStruct *pWF, LALDict *LALparams) |
Wrapper of XLALSimInspiralSpinTaylorPNEvolveOrbit : if integration is successful, stores arrays containing PN solution in a PhenomXPInspiralArrays struct More... | |
int | IMRPhenomX_Initialize_Euler_Angles (IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *lalParams) |
Wrapper of IMRPhenomX_SpinTaylorAnglesSplinesAll: fmin and fmax are determined by the function based on the mode content and binary's parameters . More... | |
void | IMRPhenomX_GetandSetModes (LALValue *ModeArray, IMRPhenomXPrecessionStruct *pPrec) |
int | betaMRD_coeff (gsl_spline spline_cosb, gsl_interp_accel accel_cosb, double fmaxPN, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
Function to determine coefficients of analytical continuation of beta through MRD. More... | |
double | betaMRD (double Mf, IMRPhenomXWaveformStruct *pWF, PhenomXPbetaMRD *beta_params) |
int | alphaMRD_coeff (gsl_spline spline_alpha, gsl_interp_accel accel_alpha, double fmaxPN, IMRPhenomXWaveformStruct *pWF, PhenomXPalphaMRD *alpha_params) |
Analytical continuation for alpha angle in MRD. More... | |
double | alphaMRD (double Mf, PhenomXPalphaMRD *alpha_params) |
double | dalphaMRD (double Mf, PhenomXPalphaMRD *alpha_params) |
int | gamma_from_alpha_cosbeta (double *gamma, double Mf, double deltaMf, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec) |
Go to the source code of this file.
Data Structures | |
struct | vector |
struct | sphpolvector |
struct | PhenomXPbetaMRD |
struct | PhenomXPalphaMRD |
struct | PhenomXPInspiralArrays |
struct | IMRPhenomXPrecessionStruct |
Macros | |
#define | MAX_TOL_ATAN 1.0e-15 |
Tolerance used below which numbers are treated as zero for the calculation of atan2. More... | |
#define MAX_TOL_ATAN 1.0e-15 |
Tolerance used below which numbers are treated as zero for the calculation of atan2.
Definition at line 56 of file LALSimIMRPhenomX_precession.h.
double IMRPhenomX_L_norm_3PN_of_v | ( | const double | v, |
const double | v2, | ||
const double | L_norm, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Returns the 3PN accurate orbital angular momentum as implemented in LALSimInspiralFDPrecAngles_internals.c.
Definition at line 1954 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXGetAndSetPrecessionVariables | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec, | ||
REAL8 | m1_SI, | ||
REAL8 | m2_SI, | ||
REAL8 | chi1x, | ||
REAL8 | chi1y, | ||
REAL8 | chi1z, | ||
REAL8 | chi2x, | ||
REAL8 | chi2y, | ||
REAL8 | chi2z, | ||
LALDict * | lalParams, | ||
INT4 | debug_flag | ||
) |
Function to populate the IMRPhenomXPrecessionStruct:
Definition at line 67 of file LALSimIMRPhenomX_precession.c.
2PN non-spinning orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3}
Definition at line 1432 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXL3PNAS | ( | const REAL8 | v, |
const REAL8 | eta, | ||
const REAL8 | chi1L, | ||
const REAL8 | chi2L, | ||
const REAL8 | delta | ||
) |
3PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3}
Includes linear in spin corrections up to 3.5PN
Definition at line 1449 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXL4PNAS | ( | const REAL8 | v, |
const REAL8 | eta, | ||
const REAL8 | chi1L, | ||
const REAL8 | chi2L, | ||
const REAL8 | delta | ||
) |
4PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3}
Definition at line 1475 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXL4PNLOSIAS | ( | const REAL8 | v, |
const REAL8 | eta, | ||
const REAL8 | chi1L, | ||
const REAL8 | chi2L, | ||
const REAL8 | delta | ||
) |
4PN orbital angular momentum as a function of x = v^2 = (Pi M f)^{2/3}
Definition at line 1506 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXLPNAnsatz | ( | REAL8 | v, |
REAL8 | LN, | ||
REAL8 | L0, | ||
REAL8 | L1, | ||
REAL8 | L2, | ||
REAL8 | L3, | ||
REAL8 | L4, | ||
REAL8 | L5, | ||
REAL8 | L6, | ||
REAL8 | L7, | ||
REAL8 | L8, | ||
REAL8 | L8L | ||
) |
This is a convenient wrapper function for PN orbital angular momentum.
v | Input velocity |
LN | Orbital angular momentum normalization |
L0 | Newtonian orbital angular momentum (i.e. LN = 1.0*LNorm) |
L1 | 0.5PN Orbital angular momentum |
L2 | 1.0PN Orbital angular momentum |
L3 | 1.5PN Orbital angular momentum |
L4 | 2.0PN Orbital angular momentum |
L5 | 2.5PN Orbital angular momentum |
L6 | 3.0PN Orbital angular momentum |
L7 | 3.5PN Orbital angular momentum |
L8 | 4.0PN Orbital angular momentum |
L8L | 4.0PN logarithmic orbital angular momentum term |
Definition at line 1395 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXPCheckMaxOpeningAngle | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Helper function to check if maximum opening angle > pi/2 or pi/4 and issues a warning.
See discussion in https://dcc.ligo.org/LIGO-T1500602
pWF | IMRPhenomX Waveform Struct |
pPrec | IMRPhenomXP Precession Struct |
Definition at line 1911 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXWignerdCoefficients | ( | REAL8 * | cos_beta_half, |
REAL8 * | sin_beta_half, | ||
const REAL8 | v, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
[out] | cos_beta_half | cos(beta/2) |
[out] | sin_beta_half | sin(beta/2) |
v | Cubic root of Pi * Frequency in geometric units | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomX Precession Struct |
Definition at line 1883 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXWignerdCoefficients_cosbeta | ( | REAL8 * | cos_beta_half, |
REAL8 * | sin_beta_half, | ||
REAL8 | cos_beta | ||
) |
[out] | cos_beta_half | cos(beta/2) |
[out] | sin_beta_half | sin(beta/2) |
cos_beta | cos(beta) |
Definition at line 1870 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXPTwistUp22 | ( | const REAL8 | Mf, |
const COMPLEX16 | hAS, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec, | ||
COMPLEX16 * | hp, | ||
COMPLEX16 * | hc | ||
) |
Core twisting up routine, see Section III A of arXiv:2004.06503.
Mf | Frequency (Hz) | |
hAS | Underlying aligned-spin IMRPhenomXAS waveform | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomX Precession Struct | |
[out] | hp | h_+ polarization \(\tilde h_+\) |
[out] | hc | h_x polarization \(\tilde h_x\) |
Definition at line 1711 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXPNEuleralphaNNLO | ( | const REAL8 | f, |
const REAL8 | eta, | ||
const REAL8 | chi1L, | ||
const REAL8 | chi2L, | ||
const REAL8 | chip, | ||
const REAL8 | alpha0 | ||
) |
External wrapper function to next-to-next-to-leading (NNLO) in spin-orbit expression for the PN Euler angle alpha.
This expression is derived by PN re-expanding and averaging over the orientation of the spin in the orbital plane.
f | Geometric frequency |
eta | Symmetric mass rato |
chi1L | Dimensionless aligned spin of larger BH |
chi2L | Dimensionless aligned spin of smaller BH |
chip | Effective precession parameter: Schmidt, Ohme, Hannam, PRD, 91,024043 (2015) |
alpha0 | Euler angle at reference Frequency, defines a constant offset |
Definition at line 1545 of file LALSimIMRPhenomX_precession.c.
REAL8 XLALSimIMRPhenomXPNEulerepsilonNNLO | ( | REAL8 | f, |
REAL8 | eta, | ||
REAL8 | chi1L, | ||
REAL8 | chi2L, | ||
REAL8 | chip, | ||
REAL8 | epsilon0 | ||
) |
External wrapper to NNLO PN epsilon angle.
See documentation above XLALSimIMRPhenomXPNEuleralphaNNLO.
f | Geometric frequency |
eta | Symmetric mass rato |
chi1L | Dimensionless aligned spin of larger BH |
chi2L | Dimensionless aligned spin of smaller BH |
chip | Effective precession parameter: Schmidt, Ohme, Hannam, PRD, 91,024043 (2015) |
epsilon0 | Euler angle at reference Frequency, defines a constant offset |
Definition at line 1604 of file LALSimIMRPhenomX_precession.c.
void Get_alphaepsilon_atfref | ( | REAL8 * | alpha_offset, |
REAL8 * | epsilon_offset, | ||
UINT4 | mprime, | ||
IMRPhenomXPrecessionStruct * | pPrec, | ||
IMRPhenomXWaveformStruct * | pWF | ||
) |
Get alpha and epsilon offset depending of the mprime (second index of the non-precessing mode)
[out] | alpha_offset | alpha offset for mprime |
[out] | epsilon_offset | epsilon offset for mprime |
mprime | Second index non-precessing mode | |
pPrec | IMRPhenomX Precession Struct | |
pWF | IMRPhenomX Waveform Struct |
Definition at line 1348 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_PN_Euler_alpha_NNLO | ( | IMRPhenomXPrecessionStruct * | pPrec, |
const double | omega, | ||
const double | omega_cbrt2, | ||
const double | omega_cbrt, | ||
const double | logomega | ||
) |
Internal function to calculate alpha using pre-cached NNLO PN expressions.
pPrec | IMRPhenomX Precession Struct |
omega | Orbital frequency |
omega_cbrt2 | Orbital frequency |
omega_cbrt | Cubic root of orbital frequency |
logomega | Natural logarithm of orbital frequency |
Definition at line 1663 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_PN_Euler_epsilon_NNLO | ( | IMRPhenomXPrecessionStruct * | pPrec, |
const double | omega, | ||
const double | omega_cbrt2, | ||
const double | omega_cbrt, | ||
const double | logomega | ||
) |
Internal function to calculate epsilon using pre-cached NNLO PN expressions.
pPrec | IMRPhenomX Precession Struct |
omega | Orbital frequency |
omega_cbrt2 | Orbital frequency |
omega_cbrt | Cubic root of orbital frequency |
logomega | Natural logarithm of orbital frequency |
Definition at line 1687 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Spin_Evolution_Equation_MSA | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
vector IMRPhenomX_Return_Spin_Evolution_Coefficients_MSA | ( | double | LNorm, |
double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get coefficients for Eq 21 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967.
Definition at line 3009 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_Return_Constants_c_MSA | ( | double | v, |
const double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get c constants from Appendix B (B6, B7, B8) of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967.
Definition at line 3066 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_Return_Constants_d_MSA | ( | const double | LNorm, |
const double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get d constants from Appendix B (B9, B10, B11) of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967.
Definition at line 3118 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_costhetaLJ | ( | const double | J_norm, |
const double | L_norm, | ||
const double | S_norm | ||
) |
Calculate (L dot J)
Definition at line 3139 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Return_Psi_MSA | ( | double | v, |
double | v2, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get \(\psi\) using Eq 51 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967:
Definition at line 3155 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Return_Psi_dot_MSA | ( | double | v, |
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get \(\dot{\psi}\) using Eq 24 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967:
Definition at line 3163 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Return_SNorm_MSA | ( | const double | v, |
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get norm of S, see PRD 95, 104004, (2017)
Definition at line 2971 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_JNorm_MSA | ( | const double | LNorm, |
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get norm of J using Eq 41 of Chatziioannou et al, PRD 95, 104004, (2017)
Definition at line 2962 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_Get_MSA_Euler_Angles | ( | REAL8 * | alpha, |
REAL8 * | beta, | ||
REAL8 * | mprime_epsilon, | ||
REAL8 | fHz, | ||
INT4 | mprime, | ||
const REAL8 | twopi_Msec, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
vector IMRPhenomX_Return_Roots_MSA | ( | double | LNorm, |
double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Here we solve for the roots of Eq 21 in Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967:
Definition at line 2844 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_Return_phi_zeta_costhetaL_MSA | ( | const double | xi, |
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Wrapper to generate \(\phi_z\), \(\zeta\) and \(\cos \theta_L\) at a given frequency.
xi | Velocity |
pWF | IMRPhenomX waveform struct |
pPrec | IMRPhenomX precession struct |
Definition at line 1961 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_Initialize_MSA_System | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec, | ||
int | ExpansionOrder | ||
) |
This function initializes all the core variables required for the MSA system.
This will be called first.
Definition at line 2029 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_Return_MSA_Corrections_MSA | ( | double | v, |
const double | LNorm, | ||
const double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Definition at line 3283 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Return_zeta_MSA | ( | const double | v, |
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get \(\zeta\) using Eq F5 in Appendix F of Chatziioannou et al, PRD 95, 104004, (2017):
Definition at line 3245 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Return_phiz_MSA | ( | const double | v, |
const double | JNorm, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Get \(\phi_z\) using Eq 66 of Chatziioannou et al, PRD 95, 104004, (2017), arXiv:1703.03967:
Definition at line 3181 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_psiofv | ( | const double | v, |
const double | v2, | ||
const double | psi0, | ||
const double | psi1, | ||
const double | psi2, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Definition at line 2831 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Get_PN_beta | ( | const double | a, |
const double | b, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Internal function to computes the PN spin-orbit couplings.
As in LALSimInspiralFDPrecAngles.c cf https://git.ligo.org/lscsoft/lalsuite/-/blob/master/lalsimulation/lib/LALSimInspiralFDPrecAngles_internals.c#L798
Definition at line 3432 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Get_PN_sigma | ( | const double | a, |
const double | b, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Internal function to compute PN spin-spin couplings.
As in LALSimInspiralFDPrecAngles.c cf https://git.ligo.org/lscsoft/lalsuite/-/blob/master/lalsimulation/lib/LALSimInspiralFDPrecAngles_internals.c#L806
Definition at line 3441 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_Get_PN_tau | ( | const double | a, |
const double | b, | ||
const IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Internal function to computes PN spin-spin couplings.
As in LALSimInspiralFDPrecAngles.c
Definition at line 3449 of file LALSimIMRPhenomX_precession.c.
Definition at line 3457 of file LALSimIMRPhenomX_precession.c.
Definition at line 3463 of file LALSimIMRPhenomX_precession.c.
double IMRPhenomX_vector_L2_norm | ( | const vector | v1 | ) |
Definition at line 3473 of file LALSimIMRPhenomX_precession.c.
Definition at line 3479 of file LALSimIMRPhenomX_precession.c.
Definition at line 3489 of file LALSimIMRPhenomX_precession.c.
Definition at line 3498 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_vector_PolarToCartesian | ( | const sphpolvector | v1 | ) |
Definition at line 3507 of file LALSimIMRPhenomX_precession.c.
vector IMRPhenomX_vector_PolarToCartesian_components | ( | const REAL8 | mag, |
const REAL8 | theta, | ||
const REAL8 | phi | ||
) |
Definition at line 3609 of file LALSimIMRPhenomX_precession.c.
sphpolvector IMRPhenomX_vector_CartesianToPolar | ( | const vector | v1 | ) |
Definition at line 3519 of file LALSimIMRPhenomX_precession.c.
Function to rotate vector about z axis by given angle.
Definition at line 3531 of file LALSimIMRPhenomX_precession.c.
Function to rotate vector about y axis by given angle.
Definition at line 3543 of file LALSimIMRPhenomX_precession.c.
Function to rotate vector about z axis by given angle.
Definition at line 3556 of file LALSimIMRPhenomX_precession.c.
Function to rotate vector about y axis by given angle.
Definition at line 3573 of file LALSimIMRPhenomX_precession.c.
REAL8 IMRPhenomX_Cartesian_to_SphericalPolar_theta | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
REAL8 IMRPhenomX_Cartesian_to_SphericalPolar_phi | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
void IMRPhenomX_CartesianToPolar | ( | REAL8 * | polar, |
REAL8 * | azimuthal, | ||
REAL8 * | magnitude, | ||
REAL8 | x, | ||
REAL8 | y, | ||
REAL8 | z | ||
) |
vector IMRPhenomXCreateSphere | ( | const double | r, |
const double | th, | ||
const double | ph | ||
) |
INT4 IMRPhenomX_SetPrecessingRemnantParams | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec, | ||
LALDict * | lalParams | ||
) |
Definition at line 1101 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXPTwistUp22_NumericalAngles | ( | const COMPLEX16 | hAS, |
REAL8 | alpha, | ||
REAL8 | cos_beta, | ||
REAL8 | gamma, | ||
IMRPhenomXPrecessionStruct * | pPrec, | ||
COMPLEX16 * | hp, | ||
COMPLEX16 * | hc | ||
) |
Core twisting up routine for SpinTaylor angles.
hAS | Underlying aligned-spin IMRPhenomXAS strain | |
alpha | cosbeta Euler angle series | |
cos_beta | cosbeta Euler angle series | |
gamma | gamma Euler angle series | |
pPrec | IMRPhenomXP Precession Struct | |
[out] | hp | h_+ polarization \(\tilde h_+\) |
[out] | hc | h_x polarization \(\tilde h_x\) |
Definition at line 4919 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomXPSpinTaylorAnglesIMR | ( | REAL8Sequence ** | alphaFS, |
REAL8Sequence ** | cosbetaFS, | ||
REAL8Sequence ** | gammaFS, | ||
REAL8Sequence * | freqsIN, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec, | ||
LALDict * | LALparams | ||
) |
This function evaluates the SpinTaylor Euler angles on a frequency grid passed by the user.
Used in LALSimIMRPhenomX.c.
[out] | alphaFS | Alpha angle frequency series [out] |
[out] | cosbetaFS | cos(Beta) angle frequency series [out] |
[out] | gammaFS | Gamma angle frequency series [out] |
[in] | freqsIN | Frequency grid on which Euler angles will be evaluated [in] |
[in] | pWF | Waveform structure [in] |
[in] | pPrec | Precession structure [in] |
LALparams | LAL Dictionary struct |
Definition at line 3864 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_InterpolateAlphaBeta_SpinTaylor | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec, | ||
LALDict * | LALparams | ||
) |
This function computes cubic splines of the alpha and beta inspiral Euler angles, which are then stored into a IMRPhenomXPrecessionStruct structure.
[in] | pWF | Waveform structure [in] |
[in] | pPrec | Precession structure [in] |
LALparams | LAL Dictionary struct |
Definition at line 4135 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_InterpolateGamma_SpinTaylor | ( | REAL8 | fmin, |
REAL8 | fmax, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
This function computes gamma from the minimal rotation condition and stores a spline for it.
fmin | starting frequency (Hz) | |
fmax | maximum frequency (Hz) | |
[in] | pWF | Waveform structure [in] |
[in] | pPrec | Precession structure [in] |
Definition at line 4030 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_SpinTaylorAnglesSplinesAll | ( | REAL8 | fmin, |
REAL8 | fmax, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec, | ||
LALDict * | LALparams | ||
) |
This function builds and stores splines for \(\alpha\) and \(\cos\beta\) in the frequency range covered by PN, and computes a spline for \(\gamma\) between fmin and fmax
[in] | fmin | Minimum frequency of the gamma spline [in] |
[in] | fmax | Maximum frequency of the gamma spline [in] |
[in] | pWF | Waveform structure [in] |
[in] | pPrec | Precession structure [in] |
LALparams | LAL Dictionary struct |
Definition at line 3988 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_InspiralAngles_SpinTaylor | ( | PhenomXPInspiralArrays * | arrays, |
REAL8 | chi1x, | ||
REAL8 | chi1y, | ||
REAL8 | chi1z, | ||
REAL8 | chi2x, | ||
REAL8 | chi2y, | ||
REAL8 | chi2z, | ||
REAL8 | fmin, | ||
int | PrecVersion, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
LALDict * | LALparams | ||
) |
Wrapper of XLALSimInspiralSpinTaylorPNEvolveOrbit : if integration is successful, stores arrays containing PN solution in a PhenomXPInspiralArrays struct
[out] | arrays | Struct containing solutions returned by PNEvolveOrbit |
chi1x | x-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) at fRef | |
chi1y | y-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) at fRef | |
chi1z | z-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) at fRef | |
chi2x | x-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) at fRef | |
chi2y | y-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) at fRef | |
chi2z | z-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) at fRef | |
fmin | minimum frequency | |
PrecVersion | precessing version (int) | |
pWF | Waveform structure [in] | |
LALparams | LAL Dictionary struct |
Definition at line 4315 of file LALSimIMRPhenomX_precession.c.
int IMRPhenomX_Initialize_Euler_Angles | ( | IMRPhenomXWaveformStruct * | pWF, |
IMRPhenomXPrecessionStruct * | pPrec, | ||
LALDict * | lalParams | ||
) |
Wrapper of IMRPhenomX_SpinTaylorAnglesSplinesAll: fmin and fmax are determined by the function based on the mode content and binary's parameters .
Used in LALSimIMRPhenomXPHM.c
Definition at line 4665 of file LALSimIMRPhenomX_precession.c.
void IMRPhenomX_GetandSetModes | ( | LALValue * | ModeArray, |
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Definition at line 4898 of file LALSimIMRPhenomX_precession.c.
int betaMRD_coeff | ( | gsl_spline | spline_cosb, |
gsl_interp_accel | accel_cosb, | ||
double | fmaxPN, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Function to determine coefficients of analytical continuation of beta through MRD.
Definition at line 3719 of file LALSimIMRPhenomX_precession.c.
double betaMRD | ( | double | Mf, |
IMRPhenomXWaveformStruct * | pWF, | ||
PhenomXPbetaMRD * | beta_params | ||
) |
int alphaMRD_coeff | ( | gsl_spline | spline_alpha, |
gsl_interp_accel | accel_alpha, | ||
double | fmaxPN, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
PhenomXPalphaMRD * | alpha_params | ||
) |
Analytical continuation for alpha angle in MRD.
Definition at line 3641 of file LALSimIMRPhenomX_precession.c.
double alphaMRD | ( | double | Mf, |
PhenomXPalphaMRD * | alpha_params | ||
) |
Definition at line 3698 of file LALSimIMRPhenomX_precession.c.
double dalphaMRD | ( | double | Mf, |
PhenomXPalphaMRD * | alpha_params | ||
) |
Definition at line 3708 of file LALSimIMRPhenomX_precession.c.
int gamma_from_alpha_cosbeta | ( | double * | gamma, |
double | Mf, | ||
double | deltaMf, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
IMRPhenomXPrecessionStruct * | pPrec | ||
) |
Definition at line 3821 of file LALSimIMRPhenomX_precession.c.