LALSimulation  5.4.0.1-fe68b98
LALSimIMRPhenomP.c File Reference

Prototypes

static int PhenomPCore (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8 chi1_l_in, const REAL8 chi2_l_in, const REAL8 chip, const REAL8 thetaJ, const REAL8 m1_SI_in, const REAL8 m2_SI_in, const REAL8 distance, const REAL8 alpha0, const REAL8 phic, const REAL8 f_ref, const REAL8Sequence *freqs_in, double deltaF, IMRPhenomP_version_type IMRPhenomP_version, NRTidal_version_type NRTidal_version, LALDict *extraParams)
 Internal core function to calculate plus and cross polarizations of the PhenomP model for a set of frequencies. More...
 
static int PhenomPCoreOneFrequency (const REAL8 fHz, const REAL8 eta, const REAL8 distance, const REAL8 M, const REAL8 phic, IMRPhenomDAmplitudeCoefficients *pAmp, IMRPhenomDPhaseCoefficients *pPhi, BBHPhenomCParams *PCparams, PNPhasingSeries *PNparams, COMPLEX16 *hPhenom, REAL8 *phasing, IMRPhenomP_version_type IMRPhenomP_version, AmpInsPrefactors *amp_prefactors, PhiInsPrefactors *phi_prefactors)
 
static int PhenomPCoreOneFrequency_withTides (const REAL8 fHz, const REAL8 window, const REAL8 phaseTidal, const REAL8 ampTidal, const REAL8 distance, const REAL8 M, const REAL8 phic, IMRPhenomDAmplitudeCoefficients *pAmp, IMRPhenomDPhaseCoefficients *pPhi, PNPhasingSeries *PNparams, COMPLEX16 *hPhenom, REAL8 *phasing, AmpInsPrefactors *amp_prefactors, PhiInsPrefactors *phi_prefactors)
 
static int PhenomPCoreTwistUp (const REAL8 fHz, COMPLEX16 hPhenom, const REAL8 eta, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip, const REAL8 M, NNLOanglecoeffs *angcoeffs, SpinWeightedSphericalHarmonic_l2 *Y2m, const REAL8 alphaoffset, const REAL8 epsilonoffset, COMPLEX16 *hp, COMPLEX16 *hc, IMRPhenomP_version_type IMRPhenomP_version)
 
static void ComputeNNLOanglecoeffs (NNLOanglecoeffs *angcoeffs, const REAL8 q, const REAL8 chil, const REAL8 chip)
 Next-to-next-to-leading order PN coefficients for Euler angles \(\alpha\) and \(\epsilon\). More...
 
static REAL8 L2PNR (const REAL8 v, const REAL8 eta)
 Simple 2PN version of the orbital angular momentum L, without any spin terms expressed as a function of v. More...
 
static REAL8 L2PNR_v1 (const REAL8 v, const REAL8 eta)
 Simple 2PN version of the orbital angular momentum L, without any spin terms expressed as a function of v. More...
 
static void WignerdCoefficients (REAL8 *cos_beta_half, REAL8 *sin_beta_half, const REAL8 v, const REAL8 SL, const REAL8 eta, const REAL8 Sp)
 Expressions used for the WignerD symbol with full expressions for the angles. More...
 
static void WignerdCoefficients_SmallAngleApproximation (REAL8 *cos_beta_half, REAL8 *sin_beta_half, const REAL8 v, const REAL8 SL, const REAL8 eta, const REAL8 Sp)
 Expressions used for the WignerD symbol with small angle approximation. More...
 
static void CheckMaxOpeningAngle (const REAL8 m1, const REAL8 m2, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip)
 In this helper function we check whether the maximum opening angle during the evolution becomes larger than pi/2 or pi/4, in which case a warning is issued. More...
 
static REAL8 FinalSpinIMRPhenomD_all_in_plane_spin_on_larger_BH (const REAL8 m1, const REAL8 m2, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip)
 Wrapper for final-spin formula based on: More...
 
static REAL8 FinalSpinBarausse2009_all_spin_on_larger_BH (const REAL8 nu, const REAL8 chi, const REAL8 chip)
 Wrapper for final-spin formula based on: More...
 
static REAL8 FinalSpinBarausse2009 (const REAL8 nu, const REAL8 a1, const REAL8 a2, const REAL8 cos_alpha, const REAL8 cos_beta_tilde, const REAL8 cos_gamma_tilde)
 Final-spin formula based on: More...
 
static UNUSED BBHPhenomCParamsComputeIMRPhenomCParamsRDmod (const REAL8 m1, const REAL8 m2, const REAL8 chi, const REAL8 chip, LALDict *extraParams)
 PhenomC parameters for modified ringdown, uses final spin formula of: More...
 
static bool approximately_equal (REAL8 x, REAL8 y, REAL8 epsilon)
 
static void nudge (REAL8 *x, REAL8 X, REAL8 epsilon)
 
Routines for IMR Phenomenological Model "P"

Functions for producing IMRPhenomP waveforms for precessing binaries, as described in Hannam et al., arXiv:1308.3271 [gr-qc].

Author
Michael Puerrer, Alejandro Bohe
Note
Three versions of IMRPhenomP are available (selected by IMRPhenomP_version):
  • version 1 ("IMRPhenomP"): based on IMRPhenomC (outdated, not reviewed!)
  • version 2 ("IMRPhenomPv2"): based on IMRPhenomD (to be used, currently under review as of Dec 2015)
  • version NRTidal ("IMRPhenomPv2_NRTidal" and "IMRPhenomPv2_NRTidalv2"): based on IMRPhenomPv2 (framework for NR-tuned tidal effects added to PhenomD aligned phasing and then twisted up). Two flavors of NRTidal models are available: original ("IMRPhenomPv2_NRTidal", based on https://arxiv.org/pdf/1706.02969.pdf) and an improved version 2 ("IMRPhenomPv2_NRTidalv2", based on https://arxiv.org/pdf/1905.06011.pdf). The different NRTidal versions employ different internal switches (selected by NRTidal_version).

Each IMRPhenomP version inherits its range of validity over the parameter space from the respective aligned-spin waveform.

Attention
A time-domain implementation of IMRPhenomPv2 is available in XLALChooseTDWaveform(). This is based on a straight-forward inverse Fourier transformation via XLALSimInspiralTDfromFD(), but it was not included in the IMRPhenomPv2 review. Use it at your own risk. IMRPhenomPv2_NRTidal is also available in the time domain through the same transformation. Visual checks have been performed during the review, and unphysical features may arise for mass ratios smaller than 1.5 and when both tidal parameters are greater than 2000. In this case, a warning is issued, both for the time and frequency domain version.
static REAL8 atan2tol (REAL8 a, REAL8 b, REAL8 tol)
 
int XLALSimIMRPhenomPCalculateModelParametersOld (REAL8 *chi1_l, REAL8 *chi2_l, REAL8 *chip, REAL8 *thetaJ, REAL8 *alpha0, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_ref, const REAL8 lnhatx, const REAL8 lnhaty, const REAL8 lnhatz, const REAL8 s1x, const REAL8 s1y, const REAL8 s1z, const REAL8 s2x, const REAL8 s2y, const REAL8 s2z, IMRPhenomP_version_type IMRPhenomP_version)
 Deprecated : used the old convention (view frame for the spins) Function to map LAL parameters (masses, 6 spin components and Lhat at f_ref) into IMRPhenomP intrinsic parameters (chi1_l, chi2_l, chip, thetaJ, alpha0). More...
 
int XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame (REAL8 *chi1_l, REAL8 *chi2_l, REAL8 *chip, REAL8 *thetaJN, REAL8 *alpha0, REAL8 *phi_aligned, REAL8 *zeta_polariz, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_ref, const REAL8 phiRef, const REAL8 incl, const REAL8 s1x, const REAL8 s1y, const REAL8 s1z, const REAL8 s2x, const REAL8 s2y, const REAL8 s2z, IMRPhenomP_version_type IMRPhenomP_version)
 Function to map LAL parameters (masses, 6 spin components, phiRef and inclination at f_ref) (assumed to be in the source frame where LN points in the z direction i.e. More...
 
int XLALSimIMRPhenomP (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip, const REAL8 thetaJ, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 distance, const REAL8 alpha0, const REAL8 phic, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, const REAL8 f_ref, IMRPhenomP_version_type IMRPhenomP_version, NRTidal_version_type NRTidal_version, LALDict *extraParams)
 Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenomP in the frequency domain. More...
 
int XLALSimIMRPhenomPFrequencySequence (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip, const REAL8 thetaJ, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 distance, const REAL8 alpha0, const REAL8 phic, const REAL8 f_ref, IMRPhenomP_version_type IMRPhenomP_version, NRTidal_version_type NRTidal_version, LALDict *extraParams)
 Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenomP in the frequency domain. More...
 

Go to the source code of this file.

Macros

#define omp   ignore
 
#define ROTATEZ(angle, vx, vy, vz)
 
#define ROTATEY(angle, vx, vy, vz)
 

Variables

const double sqrt_6 = 2.44948974278317788
 

Macro Definition Documentation

◆ omp

#define omp   ignore

Definition at line 50 of file LALSimIMRPhenomP.c.

◆ ROTATEZ

#define ROTATEZ (   angle,
  vx,
  vy,
  vz 
)
Value:
tmp1 = vx*cos(angle) - vy*sin(angle);\
tmp2 = vx*sin(angle) + vy*cos(angle);\
vx = tmp1;\
vy = tmp2
REAL8 tmp1
const double vy
const double vx

Definition at line 54 of file LALSimIMRPhenomP.c.

◆ ROTATEY

#define ROTATEY (   angle,
  vx,
  vy,
  vz 
)
Value:
tmp1 = vx*cos(angle) + vz*sin(angle);\
tmp2 = - vx*sin(angle) + vz*cos(angle);\
vx = tmp1;\
vz = tmp2
const double vz

Definition at line 60 of file LALSimIMRPhenomP.c.

Function Documentation

◆ PhenomPCore()

static int PhenomPCore ( COMPLEX16FrequencySeries **  hptilde,
COMPLEX16FrequencySeries **  hctilde,
const REAL8  chi1_l_in,
const REAL8  chi2_l_in,
const REAL8  chip,
const REAL8  thetaJ,
const REAL8  m1_SI_in,
const REAL8  m2_SI_in,
const REAL8  distance,
const REAL8  alpha0,
const REAL8  phic,
const REAL8  f_ref,
const REAL8Sequence freqs_in,
double  deltaF,
IMRPhenomP_version_type  IMRPhenomP_version,
NRTidal_version_type  NRTidal_version,
LALDict *  extraParams 
)
static

Internal core function to calculate plus and cross polarizations of the PhenomP model for a set of frequencies.

This can handle either user-specified frequency points or create an equally-spaced frequency series.

Parameters
[out]hptildeFrequency-domain waveform h+
[out]hctildeFrequency-domain waveform hx
chi1_l_inDimensionless aligned spin on companion 1
chi2_l_inDimensionless aligned spin on companion 2
chipEffective spin in the orbital plane
thetaJAngle between J0 and line of sight (z-direction)
m1_SI_inMass of companion 1 (kg)
m2_SI_inMass of companion 2 (kg)
distanceDistance of source (m)
alpha0Initial value of alpha angle (azimuthal precession angle)
phicOrbital phase at the peak of the underlying non precessing model (rad)
f_refReference frequency
freqs_inFrequency points at which to evaluate the waveform (Hz)
deltaFSampling frequency (Hz). If deltaF > 0, the frequency points given in freqs are uniformly spaced with spacing deltaF. Otherwise, the frequency points are spaced non-uniformly. Then we will use deltaF = 0 to create the frequency series we return.
IMRPhenomP_versionIMRPhenomPv1 uses IMRPhenomC, IMRPhenomPv2 uses IMRPhenomD, IMRPhenomPv2_NRTidal uses NRTidal framework with IMRPhenomPv2
NRTidal_versioneither NRTidal or NRTidalv2 for BNS waveform; NoNRT_V for BBH waveform
extraParamslinked list that may contain the extra testing GR parameters and/or tidal parameters

Definition at line 575 of file LALSimIMRPhenomP.c.

◆ PhenomPCoreOneFrequency()

static int PhenomPCoreOneFrequency ( const REAL8  fHz,
const REAL8  eta,
const REAL8  distance,
const REAL8  M,
const REAL8  phic,
IMRPhenomDAmplitudeCoefficients pAmp,
IMRPhenomDPhaseCoefficients pPhi,
BBHPhenomCParams PCparams,
PNPhasingSeries PNparams,
COMPLEX16 hPhenom,
REAL8 phasing,
IMRPhenomP_version_type  IMRPhenomP_version,
AmpInsPrefactors amp_prefactors,
PhiInsPrefactors phi_prefactors 
)
static

\[ \newcommand{\hP}{h^\mathrm{P}} \newcommand{\PAmp}{A^\mathrm{P}} \newcommand{\PPhase}{\phi^\mathrm{P}} \newcommand{\chieff}{\chi_\mathrm{eff}} \newcommand{\chip}{\chi_\mathrm{p}} \]

Internal core function to calculate plus and cross polarizations of the PhenomP model for a single frequency.

The general expression for the modes \(\hP_{2m}(t)\) is given by Eq. 1 of arXiv:1308.3271. We calculate the frequency domain l=2 plus and cross polarizations separately for each m = -2, ... , 2.

The expression of the polarizations times the \(Y_{lm}\) in code notation are:

\begin{equation*} \left(\tilde{h}_{2m}\right)_+ = e^{-2i \epsilon} \left(e^{-i m \alpha} d^2_{-2,m} (-2Y_{2m}) + e^{+i m \alpha} d^2_{2,m} (-2Y_{2m})^*\right) \cdot \hP / 2 \,, \end{equation*}

\begin{equation*} \left(\tilde{h}_{2m}\right)_x = e^{-2i \epsilon} \left(e^{-i m \alpha} d^2_{-2,m} (-2Y_{2m}) - e^{+i m \alpha} d^2_{2,m} (-2Y_{2m})^*\right) \cdot \hP / 2 \,, \end{equation*}

where the \(d^l_{m',m}\) are Wigner d-matrices evaluated at \(-\beta\), and \(\hP\) is the Phenom[C,D] frequency domain model:

\begin{equation*} \hP(f) = \PAmp(f) e^{-i \PPhase(f)} \,. \end{equation*}

Note that in arXiv:1308.3271, the angle \(\beta\) (beta) is called iota.

For IMRPhenomP(v1) we put all spin on the larger BH, convention: \(m_2 \geq m_1\). Hence:

\begin{eqnarray*} \chieff &=& \left( m_1 \cdot \chi_1 + m_2 \cdot \chi_2 \right)/M \,,\\ \chi_l &=& \chieff / m_2 \quad (\text{for } M=1) \,,\\ S_L &=& m_2^2 \chi_l = m_2 \cdot M \cdot \chieff = \frac{q}{1+q} \cdot \chieff \quad (\text{for } M=1) \,. \end{eqnarray*}

For IMRPhenomPv2 we use both aligned spins:

\begin{equation*} S_L = \chi_1 \cdot m_1^2 + \chi_2 \cdot m_2^2 \,. \end{equation*}

For both IMRPhenomP(v1) and IMRPhenomPv2 we put the in-plane spin on the larger BH:

\begin{equation*} S_\mathrm{perp} = \chip \cdot m_2^2 \end{equation*}

(perpendicular spin).

Parameters
fHzFrequency (Hz)
etaSymmetric mass ratio
distanceDistance of source (m)
MTotal mass (Solar masses)
phicOrbital phase at the peak of the underlying non precessing model (rad)
pAmpInternal IMRPhenomD amplitude coefficients
pPhiInternal IMRPhenomD phase coefficients
PCparamsInternal PhenomC parameters
PNparamsPN inspiral phase coefficients
hPhenomIMRPhenom waveform (before precession)
[out]phasingoverall phasing
IMRPhenomP_versionIMRPhenomP(v1) uses IMRPhenomC, IMRPhenomPv2 uses IMRPhenomD, IMRPhenomPv2_NRTidal uses NRTidal framework with IMRPhenomPv2
amp_prefactorspre-calculated (cached for saving runtime) coefficients for amplitude. See LALSimIMRPhenomD_internals.c
phi_prefactorspre-calculated (cached for saving runtime) coefficients for phase. See LALSimIMRPhenomD_internals.

Definition at line 1264 of file LALSimIMRPhenomP.c.

◆ PhenomPCoreOneFrequency_withTides()

static int PhenomPCoreOneFrequency_withTides ( const REAL8  fHz,
const REAL8  window,
const REAL8  phaseTidal,
const REAL8  ampTidal,
const REAL8  distance,
const REAL8  M,
const REAL8  phic,
IMRPhenomDAmplitudeCoefficients pAmp,
IMRPhenomDPhaseCoefficients pPhi,
PNPhasingSeries PNparams,
COMPLEX16 hPhenom,
REAL8 phasing,
AmpInsPrefactors amp_prefactors,
PhiInsPrefactors phi_prefactors 
)
static
Parameters
fHzFrequency (Hz)
windowPlanck_taper
phaseTidaltidal phasing at a frequency sample from NRTidal infrastructure
ampTidaltidal amplitude added to BBH amplitude, before Planck tapering
distanceDistance of source (m)
MTotal mass (Solar masses)
phicOrbital phase at the peak of the underlying non precessing model (rad)
pAmpInternal IMRPhenomD amplitude coefficients
pPhiInternal IMRPhenomD phase coefficients
PNparamsPN inspiral phase coefficients
[out]hPhenomIMRPhenom waveform (before precession)
[out]phasingoverall phasing
amp_prefactorspre-calculated (cached for saving runtime) coefficients for amplitude. See LALSimIMRPhenomD_internals.c
phi_prefactorspre-calculated (cached for saving runtime) coefficients for phase. See LALSimIMRPhenomD_internals.

Definition at line 1326 of file LALSimIMRPhenomP.c.

◆ PhenomPCoreTwistUp()

static int PhenomPCoreTwistUp ( const REAL8  fHz,
COMPLEX16  hPhenom,
const REAL8  eta,
const REAL8  chi1_l,
const REAL8  chi2_l,
const REAL8  chip,
const REAL8  M,
NNLOanglecoeffs angcoeffs,
SpinWeightedSphericalHarmonic_l2 Y2m,
const REAL8  alphaoffset,
const REAL8  epsilonoffset,
COMPLEX16 hp,
COMPLEX16 hc,
IMRPhenomP_version_type  IMRPhenomP_version 
)
static
Parameters
fHzFrequency (Hz)
[in]hPhenomIMRPhenom waveform (before precession)
etaSymmetric mass ratio
chi1_lDimensionless aligned spin on companion 1
chi2_lDimensionless aligned spin on companion 2
chipDimensionless spin in the orbital plane
MTotal mass (Solar masses)
angcoeffsStruct with PN coeffs for the NNLO angles
Y2mStruct of l=2 spherical harmonics of spin weight -2
alphaoffsetf_ref dependent offset for alpha angle (azimuthal precession angle)
epsilonoffsetf_ref dependent offset for epsilon angle
[out]hpplus polarization \(\tilde h_+\)
[out]hccross polarization \(\tilde h_x\)
IMRPhenomP_versionIMRPhenomP(v1) uses IMRPhenomC, IMRPhenomPv2 uses IMRPhenomD, IMRPhenomPv2_NRTidal uses NRTidal framework with IMRPhenomPv2

Definition at line 1376 of file LALSimIMRPhenomP.c.

◆ ComputeNNLOanglecoeffs()

static void ComputeNNLOanglecoeffs ( NNLOanglecoeffs angcoeffs,
const REAL8  q,
const REAL8  chil,
const REAL8  chip 
)
static

Next-to-next-to-leading order PN coefficients for Euler angles \(\alpha\) and \(\epsilon\).

Parameters
[out]angcoeffsStructure to store results
qMass-ratio (convention q>1)
chilDimensionless aligned spin of the largest BH
chipDimensionless spin component in the orbital plane

Definition at line 1499 of file LALSimIMRPhenomP.c.

◆ L2PNR()

static REAL8 L2PNR ( const REAL8  v,
const REAL8  eta 
)
static

Simple 2PN version of the orbital angular momentum L, without any spin terms expressed as a function of v.

For IMRPhenomP(v2).

Reference:

  • Bohé et al, 1212.5520v2 Eq 4.7 first line
Parameters
vCubic root of (Pi * Frequency (geometric))
etaSymmetric mass-ratio

Definition at line 1590 of file LALSimIMRPhenomP.c.

◆ L2PNR_v1()

static REAL8 L2PNR_v1 ( const REAL8  v,
const REAL8  eta 
)
static

Simple 2PN version of the orbital angular momentum L, without any spin terms expressed as a function of v.

For IMRPhenomP(v1).

Reference:

  • Kidder, Phys. Rev. D 52, 821–847 (1995), Eq. 2.9
Parameters
vCubic root of (Pi * Frequency (geometric))
etaSymmetric mass-ratio

Definition at line 1608 of file LALSimIMRPhenomP.c.

◆ WignerdCoefficients()

static void WignerdCoefficients ( REAL8 cos_beta_half,
REAL8 sin_beta_half,
const REAL8  v,
const REAL8  SL,
const REAL8  eta,
const REAL8  Sp 
)
static

Expressions used for the WignerD symbol with full expressions for the angles.

Used for IMRPhenomP(v2):

\begin{equation} \cos(\beta) = \hat J . \hat L = \left( 1 + \left( S_\mathrm{p} / (L + S_L) \right)^2 \right)^{-1/2} = \left( L + S_L \right) / \sqrt{ \left( L + S_L \right)^2 + S_p^2 } = \mathrm{sign}\left( L + S_L \right) \cdot \left( 1 + \left( S_p / \left(L + S_L\right)\right)^2 \right)^{-1/2} \end{equation}

Parameters
[out]cos_beta_halfcos(beta/2)
[out]sin_beta_halfsin(beta/2)
vCubic root of (Pi * Frequency (geometric))
SLDimensionfull aligned spin
etaSymmetric mass-ratio
SpDimensionfull spin component in the orbital plane

Definition at line 1637 of file LALSimIMRPhenomP.c.

◆ WignerdCoefficients_SmallAngleApproximation()

static void WignerdCoefficients_SmallAngleApproximation ( REAL8 cos_beta_half,
REAL8 sin_beta_half,
const REAL8  v,
const REAL8  SL,
const REAL8  eta,
const REAL8  Sp 
)
static

Expressions used for the WignerD symbol with small angle approximation.

Used for IMRPhenomP(v1):

\begin{equation} \cos(\beta) = \hat J . \hat L = \left(1 + \left( S_\mathrm{p} / (L + S_L)\right)^2 \right)^{-1/2} \end{equation}

We use the expression

\begin{equation} \cos(\beta/2) \approx (1 + s^2 / 4 )^{-1/2} \,, \end{equation}

where \(s := S_p / (L + S_L)\).

Parameters
cos_beta_halfOutput: cos(beta/2)
sin_beta_halfOutput: sin(beta/2)
vCubic root of (Pi * Frequency (geometric))
SLDimensionfull aligned spin
etaSymmetric mass-ratio
SpDimensionfull spin component in the orbital plane

Definition at line 1670 of file LALSimIMRPhenomP.c.

◆ CheckMaxOpeningAngle()

static void CheckMaxOpeningAngle ( const REAL8  m1,
const REAL8  m2,
const REAL8  chi1_l,
const REAL8  chi2_l,
const REAL8  chip 
)
static

In this helper function we check whether the maximum opening angle during the evolution becomes larger than pi/2 or pi/4, in which case a warning is issued.

If L+SL becomes <0, WignerdCoefficients does not track the angle between J and L anymore (see tech doc, choice of + sign so that the Wigner coefficients are OK in the aligned spin limit) and the model may become pathological as one moves away from the aligned spin limit. If this does not happen, then max_beta is the actual maximum opening angle as predicted by the model.

Parameters
m1Mass of companion 1 (solar masses)
m2Mass of companion 2 (solar masses)
chi1_lAligned spin of BH 1
chi2_lAligned spin of BH 2
chipDimensionless spin in the orbital plane

Definition at line 1690 of file LALSimIMRPhenomP.c.

◆ FinalSpinIMRPhenomD_all_in_plane_spin_on_larger_BH()

static REAL8 FinalSpinIMRPhenomD_all_in_plane_spin_on_larger_BH ( const REAL8  m1,
const REAL8  m2,
const REAL8  chi1_l,
const REAL8  chi2_l,
const REAL8  chip 
)
static

Wrapper for final-spin formula based on:

We use their convention m1>m2 and put all in-plane spin on the larger BH.

In the aligned limit return the FinalSpin0815 value.

Parameters
m1Mass of companion 1 (solar masses)
m2Mass of companion 2 (solar masses)
chi1_lAligned spin of BH 1
chi2_lAligned spin of BH 2
chipDimensionless spin in the orbital plane

Definition at line 1729 of file LALSimIMRPhenomP.c.

◆ FinalSpinBarausse2009_all_spin_on_larger_BH()

static REAL8 FinalSpinBarausse2009_all_spin_on_larger_BH ( const REAL8  nu,
const REAL8  chi,
const REAL8  chip 
)
static

Wrapper for final-spin formula based on:

  • Barausse & Rezzolla, Astrophys.J.Lett.704:L40-L44, 2009, arXiv:0904.2577

We use their convention m1>m2 and put all spin on the larger BH:

a1 = (chip, 0, chi), a2 = (0,0,0), L = (0,0,1)

Parameters
nuSymmetric mass-ratio
chiEffective aligned spin of the binary: chi = (m1*chi1 + m2*chi2)/M
chipDimensionless spin in the orbital plane

Definition at line 1765 of file LALSimIMRPhenomP.c.

◆ FinalSpinBarausse2009()

static REAL8 FinalSpinBarausse2009 ( const REAL8  nu,
const REAL8  a1,
const REAL8  a2,
const REAL8  cos_alpha,
const REAL8  cos_beta_tilde,
const REAL8  cos_gamma_tilde 
)
static

Final-spin formula based on:

  • Barausse & Rezzolla, Astrophys.J.Lett.704:L40-L44, 2009, arXiv:0904.2577

We use their convention m1>m2.

Parameters
nuSymmetric mass-ratio
a1|a_1| norm of dimensionless spin vector for BH 1
a2|a_2| norm of dimensionless spin vector for BH 2
cos_alpha\(\cos(\alpha) = \hat a_1 . \hat a_2\) (Eq. 7)
cos_beta_tilde\(\cos(\tilde \beta) = \hat a_1 . \hat L\) (Eq. 9)
cos_gamma_tilde\(\cos(\tilde \gamma) = \hat a_2 . \hat L\) (Eq. 9)

Definition at line 1795 of file LALSimIMRPhenomP.c.

◆ ComputeIMRPhenomCParamsRDmod()

static UNUSED BBHPhenomCParams* ComputeIMRPhenomCParamsRDmod ( const REAL8  m1,
const REAL8  m2,
const REAL8  chi,
const REAL8  chip,
LALDict *  extraParams 
)
static

PhenomC parameters for modified ringdown, uses final spin formula of:

  • Barausse & Rezzolla, Astrophys.J.Lett.704:L40-L44, 2009, arXiv:0904.2577
Parameters
m1Mass of companion 1 (solar masses)
m2Mass of companion 2 (solar masses)
chiReduced aligned spin of the binary chi = (m1*chi1 + m2*chi2)/M
chipDimensionless spin in the orbital plane
extraParamslinked list that may contain the extra testing GR parameters and/or tidal parameters

Definition at line 1841 of file LALSimIMRPhenomP.c.

◆ approximately_equal()

static bool approximately_equal ( REAL8  x,
REAL8  y,
REAL8  epsilon 
)
static

Definition at line 1906 of file LALSimIMRPhenomP.c.

◆ nudge()

static void nudge ( REAL8 x,
REAL8  X,
REAL8  epsilon 
)
static

Definition at line 1912 of file LALSimIMRPhenomP.c.

Variable Documentation

◆ sqrt_6

const double sqrt_6 = 2.44948974278317788

Definition at line 66 of file LALSimIMRPhenomP.c.