LALSimulation  5.4.0.1-fe68b98
LALSimIMRPhenomXUtilities.c File Reference

Utility functions for IMRPhenomX framework, arXiv:2001.11412. More...

Prototypes

REAL8 XLALSimIMRPhenomXfMECO (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Phenomenological fit to hybrid minimum energy circular orbit (MECO) function. More...
 
REAL8 XLALSimIMRPhenomXfISCO (REAL8 chif)
 Fitting function for hybrid minimum energy circular orbit (MECO) function. More...
 
REAL8 XLALSimIMRPhenomXErad2017 (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Energy Radiated: X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332. More...
 
REAL8 XLALSimIMRPhenomXFinalMass2017 (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Final Mass = 1 - Energy Radiated, X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332. More...
 
REAL8 XLALSimIMRPhenomXFinalSpin2017 (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Final Dimensionless Spin, X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332. More...
 
REAL8 XLALSimIMRPhenomXPrecessingFinalSpin2017 (const REAL8 eta, const REAL8 chi1L, const REAL8 chi2L, const REAL8 chi_inplane)
 Wrapper for the final spin in generically precessing binary black holes. More...
 
REAL8 XLALSimIMRPhenomXchiPN (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 PN reduced spin parameter. More...
 
REAL8 XLALSimIMRPhenomXchiPNHat (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Normalised PN reduced spin parameter. More...
 
REAL8 XLALSimIMRPhenomXchiEff (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Effective aligned spin parameter. More...
 
REAL8 XLALSimIMRPhenomXSTotR (REAL8 eta, REAL8 chi1L, REAL8 chi2L)
 Total spin normalised to [-1,1]. More...
 
REAL8 XLALSimIMRPhenomXdchi (REAL8 chi1L, REAL8 chi2L)
 Spin difference. More...
 
REAL8 XLALSimIMRPhenomXUtilsMftoHz (REAL8 Mf, REAL8 Mtot_Msun)
 Convert from geometric frequency to Hz. More...
 
REAL8 XLALSimIMRPhenomXUtilsHztoMf (REAL8 fHz, REAL8 Mtot_Msun)
 Convert from frequency in Hz to geometric frequency. More...
 
REAL8 XLALSimIMRPhenomXLina (REAL8 eta, REAL8 S, REAL8 dchi, REAL8 delta)
 We apply a linear time and phase shift to ~ align peak LinShift = (PNLina[ \(\eta,\chi_1,\chi_2\)] + \(\pi\) + f PNLinb[ \(\eta,\chi_1,\chi_2\)]); Linear time and phase shift: a + b*f. More...
 
REAL8 XLALSimIMRPhenomXPsi4ToStrain (double eta, double S, double dchi)
 This is a fit of the time-difference between t_peak of strain and t_peak of psi4 needed to align in time our waveforms, which are calibrated to psi4. More...
 
REAL8 XLALSimIMRPhenomXLinb (REAL8 eta, REAL8 S, REAL8 dchi, REAL8 delta)
 
bool IMRPhenomX_ApproxEqual (REAL8 x, REAL8 y, REAL8 epsilon)
 This function determines whether x and y are approximately equal to a relative accuracy epsilon. More...
 
void IMRPhenomX_InternalNudge (REAL8 x, REAL8 X, REAL8 epsilon)
 If x and X are approximately equal to relative accuracy epsilon then set x = X. More...
 
REAL8 XLALSimIMRPhenomXatan2tol (REAL8 a, REAL8 b, REAL8 tol)
 
size_t NextPow2 (const size_t n)
 
bool IMRPhenomX_StepFuncBool (const double t, const double t1)
 
REAL8 XLALSimIMRPhenomXsign (REAL8 x)
 
double pow_2_of (double number)
 calc square of number without floating point 'pow' More...
 
double pow_3_of (double number)
 calc cube of number without floating point 'pow' More...
 
double pow_4_of (double number)
 calc fourth power of number without floating point 'pow' More...
 
double pow_5_of (double number)
 calc fifth power of number without floating point 'pow' More...
 
double pow_6_of (double number)
 calc sixth power of number without floating point 'pow' More...
 
double pow_7_of (double number)
 calc seventh power of number without floating point 'pow' More...
 
double pow_8_of (double number)
 calc eigth power of number without floating point 'pow' More...
 
double pow_9_of (double number)
 calc ninth power of number without floating point 'pow' More...
 
INT4 XLALIMRPhenomXPCheckMassesAndSpins (REAL8 *m1, REAL8 *m2, REAL8 *chi1x, REAL8 *chi1y, REAL8 *chi1z, REAL8 *chi2x, REAL8 *chi2y, REAL8 *chi2z)
 Check if m1 > m2. More...
 
REAL8 XLALSimIMRPhenomXRingdownPhase22AnsatzAnalytical (REAL8 ff, REAL8 fRD, REAL8 fDA, REAL8 a0, REAL8 a1, REAL8 a2, REAL8 a4, REAL8 aL)
 "Analytical" phenomenological ringdown ansatz for phase. More...
 
REAL8 XLALSimIMRPhenomXRingdownPhaseDeriv22AnsatzAnalytical (REAL8 ff, REAL8 fRD, REAL8 fDA, REAL8 a0, REAL8 a1, REAL8 a2, REAL8 a4, REAL8 aL)
 "Analytical" phenomenological ringdown ansatz for phase derivative. More...
 
REAL8 XLALSimIMRPhenomXRingdownAmplitude22AnsatzAnalytical (REAL8 ff, REAL8 fRD, REAL8 fDA, REAL8 gamma1, REAL8 gamma2, REAL8 gamma3)
 "Analytical" phenomenological ringdown ansatz for amplitude. More...
 
REAL8 XLALSimIMRPhenomXIntermediateAmplitude22AnsatzAnalytical (REAL8 ff, REAL8 ff7o6, REAL8 a0, REAL8 a1, REAL8 a2, REAL8 a3, REAL8 a4, REAL8 a5)
 
REAL8 XLALSimIMRPhenomXIntermediatePhase22AnsatzAnalytical (REAL8 ff, REAL8 fRD, REAL8 fDA, REAL8 a0, REAL8 a1, REAL8 a2, REAL8 a3, REAL8 a4, REAL8 aL)
 
REAL8 XLALSimIMRPhenomXAmp22Prefactor (REAL8 eta)
 
REAL8 XLALSimIMRPhenomXfring22 (const REAL8 af)
 Ringdown frequency for 22 mode, given final dimensionless spin. More...
 
REAL8 XLALSimIMRPhenomXfdamp22 (const REAL8 af)
 Damping frequency for 22 mode, given final dimensionless spin. More...
 
void XLALSimIMRPhenomXUnwrapArray (double *in, double *out, int len)
 Function to unwrap a time series that contains an angle, to obtain a continuous time series. More...
 

Detailed Description

Utility functions for IMRPhenomX framework, arXiv:2001.11412.

Author
Geraint Pratten

Definition in file LALSimIMRPhenomXUtilities.c.

Go to the source code of this file.

Function Documentation

◆ XLALSimIMRPhenomXfMECO()

REAL8 XLALSimIMRPhenomXfMECO ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Phenomenological fit to hybrid minimum energy circular orbit (MECO) function.

Uses 3.5PN hybridised with test-particle limit. Reference: M Cabero et al, PRD, 95, 064016, (2017), arXiv:1602.03134

Definition at line 44 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXfISCO()

REAL8 XLALSimIMRPhenomXfISCO ( REAL8  chif)

Fitting function for hybrid minimum energy circular orbit (MECO) function.

Definition at line 75 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXErad2017()

REAL8 XLALSimIMRPhenomXErad2017 ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Energy Radiated: X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332.

Definition at line 104 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXFinalMass2017()

REAL8 XLALSimIMRPhenomXFinalMass2017 ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Final Mass = 1 - Energy Radiated, X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332.

Definition at line 144 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXFinalSpin2017()

REAL8 XLALSimIMRPhenomXFinalSpin2017 ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Final Dimensionless Spin, X Jimenez-Forteza et al, PRD, 95, 064024, (2017), arXiv:1611.00332.

Definition at line 185 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXPrecessingFinalSpin2017()

REAL8 XLALSimIMRPhenomXPrecessingFinalSpin2017 ( const REAL8  eta,
const REAL8  chi1L,
const REAL8  chi2L,
const REAL8  chi_inplane 
)

Wrapper for the final spin in generically precessing binary black holes.

Parameters
etaSymmetric mass ratio
chi1LAligned spin of BH 1
chi2LAligned spin of BH 2
chi_inplaneEffective precessions spin parameter, see Section IV D of arXiv:XXXX.YYYY

Definition at line 225 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXchiPN()

REAL8 XLALSimIMRPhenomXchiPN ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

PN reduced spin parameter.

Definition at line 257 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXchiPNHat()

REAL8 XLALSimIMRPhenomXchiPNHat ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Normalised PN reduced spin parameter.

Definition at line 270 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXchiEff()

REAL8 XLALSimIMRPhenomXchiEff ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Effective aligned spin parameter.

Definition at line 283 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXSTotR()

REAL8 XLALSimIMRPhenomXSTotR ( REAL8  eta,
REAL8  chi1L,
REAL8  chi2L 
)

Total spin normalised to [-1,1].

Definition at line 295 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXdchi()

REAL8 XLALSimIMRPhenomXdchi ( REAL8  chi1L,
REAL8  chi2L 
)

Spin difference.

Definition at line 309 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXUtilsMftoHz()

REAL8 XLALSimIMRPhenomXUtilsMftoHz ( REAL8  Mf,
REAL8  Mtot_Msun 
)

Convert from geometric frequency to Hz.

Parameters
MfGeometric frequency
Mtot_MsunTotal mass in solar masses

Definition at line 318 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXUtilsHztoMf()

REAL8 XLALSimIMRPhenomXUtilsHztoMf ( REAL8  fHz,
REAL8  Mtot_Msun 
)

Convert from frequency in Hz to geometric frequency.

Parameters
fHzFrequency in Hz
Mtot_MsunTotal mass in solar masses

Definition at line 329 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXLina()

REAL8 XLALSimIMRPhenomXLina ( REAL8  eta,
REAL8  S,
REAL8  dchi,
REAL8  delta 
)

We apply a linear time and phase shift to ~ align peak LinShift = (PNLina[ \(\eta,\chi_1,\chi_2\)] + \(\pi\) + f PNLinb[ \(\eta,\chi_1,\chi_2\)]); Linear time and phase shift: a + b*f.

Parameters
etaGeometric frequency
STotal mass in solar masses
dchiTotal mass in solar masses
deltaTotal mass in solar masses

Definition at line 342 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXPsi4ToStrain()

REAL8 XLALSimIMRPhenomXPsi4ToStrain ( double  eta,
double  S,
double  dchi 
)

This is a fit of the time-difference between t_peak of strain and t_peak of psi4 needed to align in time our waveforms, which are calibrated to psi4.

Definition at line 379 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXLinb()

REAL8 XLALSimIMRPhenomXLinb ( REAL8  eta,
REAL8  S,
REAL8  dchi,
REAL8  delta 
)
Parameters
etaGeometric frequency
STotal mass in solar masses
dchiTotal mass in solar masses
deltaTotal mass in solar masses

Definition at line 396 of file LALSimIMRPhenomXUtilities.c.

◆ IMRPhenomX_ApproxEqual()

bool IMRPhenomX_ApproxEqual ( REAL8  x,
REAL8  y,
REAL8  epsilon 
)

This function determines whether x and y are approximately equal to a relative accuracy epsilon.

Note that x and y are compared to relative accuracy, so this function is not suitable for testing whether a value is approximately zero.

Definition at line 423 of file LALSimIMRPhenomXUtilities.c.

◆ IMRPhenomX_InternalNudge()

void IMRPhenomX_InternalNudge ( REAL8  x,
REAL8  X,
REAL8  epsilon 
)

If x and X are approximately equal to relative accuracy epsilon then set x = X.

If X = 0 then use an absolute comparison.

Definition at line 431 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXatan2tol()

REAL8 XLALSimIMRPhenomXatan2tol ( REAL8  a,
REAL8  b,
REAL8  tol 
)

Definition at line 444 of file LALSimIMRPhenomXUtilities.c.

◆ NextPow2()

static size_t NextPow2 ( const size_t  n)

Definition at line 455 of file LALSimIMRPhenomXUtilities.c.

◆ IMRPhenomX_StepFuncBool()

bool IMRPhenomX_StepFuncBool ( const double  t,
const double  t1 
)

Definition at line 461 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXsign()

REAL8 XLALSimIMRPhenomXsign ( REAL8  x)

Definition at line 465 of file LALSimIMRPhenomXUtilities.c.

◆ pow_2_of()

double pow_2_of ( double  number)

calc square of number without floating point 'pow'

Definition at line 475 of file LALSimIMRPhenomXUtilities.c.

◆ pow_3_of()

double pow_3_of ( double  number)

calc cube of number without floating point 'pow'

Definition at line 483 of file LALSimIMRPhenomXUtilities.c.

◆ pow_4_of()

double pow_4_of ( double  number)

calc fourth power of number without floating point 'pow'

Definition at line 491 of file LALSimIMRPhenomXUtilities.c.

◆ pow_5_of()

double pow_5_of ( double  number)

calc fifth power of number without floating point 'pow'

Definition at line 500 of file LALSimIMRPhenomXUtilities.c.

◆ pow_6_of()

double pow_6_of ( double  number)

calc sixth power of number without floating point 'pow'

Definition at line 509 of file LALSimIMRPhenomXUtilities.c.

◆ pow_7_of()

double pow_7_of ( double  number)

calc seventh power of number without floating point 'pow'

Definition at line 518 of file LALSimIMRPhenomXUtilities.c.

◆ pow_8_of()

double pow_8_of ( double  number)

calc eigth power of number without floating point 'pow'

Definition at line 527 of file LALSimIMRPhenomXUtilities.c.

◆ pow_9_of()

double pow_9_of ( double  number)

calc ninth power of number without floating point 'pow'

Definition at line 537 of file LALSimIMRPhenomXUtilities.c.

◆ XLALIMRPhenomXPCheckMassesAndSpins()

INT4 XLALIMRPhenomXPCheckMassesAndSpins ( REAL8 m1,
REAL8 m2,
REAL8 chi1x,
REAL8 chi1y,
REAL8 chi1z,
REAL8 chi2x,
REAL8 chi2y,
REAL8 chi2z 
)

Check if m1 > m2.

If not, swap the masses and spin vectors such that body is the heavier compact object.

Parameters
[out]m1mass of body 1
[out]m2mass of body 2
[out]chi1xx-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
[out]chi1yy-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
[out]chi1zz-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
[out]chi2xx-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
[out]chi2yy-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
[out]chi2zz-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)

Definition at line 547 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXRingdownPhase22AnsatzAnalytical()

REAL8 XLALSimIMRPhenomXRingdownPhase22AnsatzAnalytical ( REAL8  ff,
REAL8  fRD,
REAL8  fDA,
REAL8  a0,
REAL8  a1,
REAL8  a2,
REAL8  a4,
REAL8  aL 
)

"Analytical" phenomenological ringdown ansatz for phase.

This is used by the higher mode functions and can be used to prototype or test model. Convenient wrapper exposed via XLAL.

Definition at line 619 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXRingdownPhaseDeriv22AnsatzAnalytical()

REAL8 XLALSimIMRPhenomXRingdownPhaseDeriv22AnsatzAnalytical ( REAL8  ff,
REAL8  fRD,
REAL8  fDA,
REAL8  a0,
REAL8  a1,
REAL8  a2,
REAL8  a4,
REAL8  aL 
)

"Analytical" phenomenological ringdown ansatz for phase derivative.

This is used by the higher mode functions and can be used to prototype or test model. Convenient wrapper exposed via XLAL.

a_0 + a_1 f^(-1) + a_2 f^(-2) + a_3 f^(-3) + a_4 f^(-4) + ( aRD ) / ( (f_damp^2 + (f - f_ring)^2 ) )

where a_L = - dphase0 * aRD

Our canonical ringdown ansatz sets a_3 = 0.

Definition at line 645 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXRingdownAmplitude22AnsatzAnalytical()

REAL8 XLALSimIMRPhenomXRingdownAmplitude22AnsatzAnalytical ( REAL8  ff,
REAL8  fRD,
REAL8  fDA,
REAL8  gamma1,
REAL8  gamma2,
REAL8  gamma3 
)

"Analytical" phenomenological ringdown ansatz for amplitude.

This is used by the higher mode functions but can also be used to prototype or test model. Convenient wrapper exposed via XLAL.

Definition at line 664 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXIntermediateAmplitude22AnsatzAnalytical()

REAL8 XLALSimIMRPhenomXIntermediateAmplitude22AnsatzAnalytical ( REAL8  ff,
REAL8  ff7o6,
REAL8  a0,
REAL8  a1,
REAL8  a2,
REAL8  a3,
REAL8  a4,
REAL8  a5 
)

Definition at line 684 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXIntermediatePhase22AnsatzAnalytical()

REAL8 XLALSimIMRPhenomXIntermediatePhase22AnsatzAnalytical ( REAL8  ff,
REAL8  fRD,
REAL8  fDA,
REAL8  a0,
REAL8  a1,
REAL8  a2,
REAL8  a3,
REAL8  a4,
REAL8  aL 
)

Definition at line 696 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXAmp22Prefactor()

REAL8 XLALSimIMRPhenomXAmp22Prefactor ( REAL8  eta)

Definition at line 716 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXfring22()

REAL8 XLALSimIMRPhenomXfring22 ( const REAL8  af)

Ringdown frequency for 22 mode, given final dimensionless spin.

https://arxiv.org/src/2001.10914v1/anc/QNMs/CoefficientStatsfring22.m

Definition at line 735 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXfdamp22()

REAL8 XLALSimIMRPhenomXfdamp22 ( const REAL8  af)

Damping frequency for 22 mode, given final dimensionless spin.

https://arxiv.org/src/2001.10914v1/anc/QNMs/CoefficientStatsfdamp22.m

Definition at line 769 of file LALSimIMRPhenomXUtilities.c.

◆ XLALSimIMRPhenomXUnwrapArray()

void XLALSimIMRPhenomXUnwrapArray ( double *  in,
double *  out,
int  len 
)

Function to unwrap a time series that contains an angle, to obtain a continuous time series.

Definition at line 796 of file LALSimIMRPhenomXUtilities.c.