LALSimulation  5.4.0.1-fe68b98
LALSimIMRPhenomPv3HM.c File Reference

PhenomPv3HM model. More...

Prototypes

static LALDict * IMRPhenomPv3HM_setup_mode_array (LALDict *extraParams)
 read in a LALDict. More...
 
static int IMRPhenomPv3HM_check_mode_array (LALValue *ModeArray)
 Reads in a ModeArray and checks that it is valid. More...
 
static UNUSED int init_PhenomPv3HM_Storage (PhenomPv3HMStorage *p, sysq *pAngles, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, const REAL8 f_ref)
 Precomputes useful quantities and populates the PhenomPv3HMStorage and sysq (for precession angles) structs. More...
 
int XLALSimIMRPhenomPv3HMGetHplusHcross (UNUSED COMPLEX16FrequencySeries **hptilde, UNUSED COMPLEX16FrequencySeries **hctilde, UNUSED REAL8Sequence *freqs, UNUSED REAL8 m1_SI, UNUSED REAL8 m2_SI, UNUSED REAL8 chi1x, UNUSED REAL8 chi1y, UNUSED REAL8 chi1z, UNUSED REAL8 chi2x, UNUSED REAL8 chi2y, UNUSED REAL8 chi2z, UNUSED const REAL8 distance, UNUSED const REAL8 inclination, UNUSED const REAL8 phiRef, UNUSED const REAL8 deltaF, UNUSED REAL8 f_ref, UNUSED LALDict *extraParams)
 This version doesn't construct precessing hlm modes but instead constructs hplus, hcross directly. More...
 
int XLALSimIMRPhenomPv3 (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, const REAL8 f_ref, LALDict *extraParams)
 Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenomPv3 in the frequency domain. More...
 
static int IMRPhenomPv3HM_Compute_a_b_e (REAL8 *alpha, REAL8 *beta, REAL8 *mprime_epsilon, REAL8 fHz, INT4 mprime, const REAL8 twopi_Msec, PhenomPv3HMStorage *pv3HM, sysq *pAngles)
 This is an internal function that returns the precession angles at a single frequency. More...
 
static int IMRPhenomPv3HM_wigner_loop (COMPLEX16 *Term1, COMPLEX16 *Term2, INT4 ell, INT4 mprime, IMRPhenomPv3HMYlmStruct *ylms, IMRPhenomPv3HMAlphaStruct *als, IMRPhenomPv3HMWignderStruct *wigs)
 This is an internal function computes terms required to compute hptilde and hctilde. More...
 
static int IMRPhenomPv3HM_Compute_Mode (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, UINT4 ell, INT4 mprime, const REAL8 Mtot_Msun, PhenomPv3HMStorage *pv3HM, SphHarmFrequencySeries **hlmsD, sysq *pAngles, REAL8Sequence *freqs_seq)
 This is an internal function that returns hptilde and hctilde for a single mode in the inertial frame. More...
 
int XLALSimIMRPhenomPv3HMModes (SphHarmFrequencySeries **hlms, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 phiRef, const REAL8 deltaF, const REAL8 f_ref, LALDict *extraParams)
 Returns frequency domain hlm's in inertial frame. More...
 

Detailed Description

PhenomPv3HM model.

Author
Sebastian Khan

Inspiral-merger and ringdown phenomenological, frequecny domain waveform model for spinning precessing binary black holes systems. Models not only the dominant (l,|m|) = (2,2) modes but also some of the sub-domant modes too in the co-precessing frame.

The model has been validated against precessing NR simulations up to mass-ratio 6 but due to lack of precessing NR simulations above mass-ratio 6 we cannot validate it's accuracy.

Tested Range: up to mass-ratio 6, any spin magnitude and orientation. Usage Range: up to mass-ratio 20, any spin magnitude and orientation.

Definition in file LALSimIMRPhenomPv3HM.c.

Go to the source code of this file.

Macros

#define L_MAX_PLUS_1   5
 
#define PHENOM_DEFAULT_MAXF   0.5
 

Macro Definition Documentation

◆ L_MAX_PLUS_1

#define L_MAX_PLUS_1   5

Definition at line 51 of file LALSimIMRPhenomPv3HM.c.

◆ PHENOM_DEFAULT_MAXF

#define PHENOM_DEFAULT_MAXF   0.5

Definition at line 52 of file LALSimIMRPhenomPv3HM.c.

Function Documentation

◆ IMRPhenomPv3HM_setup_mode_array()

static LALDict* IMRPhenomPv3HM_setup_mode_array ( LALDict *  extraParams)
static

read in a LALDict.

If ModeArray in LALDict is NULL then create a ModrArray with the default modes in PhenomPv3HM. If ModeArray is not NULL then use the modes supplied by user.

Definition at line 60 of file LALSimIMRPhenomPv3HM.c.

◆ IMRPhenomPv3HM_check_mode_array()

static int IMRPhenomPv3HM_check_mode_array ( LALValue *  ModeArray)
static

Reads in a ModeArray and checks that it is valid.

i.e., that it contains the 2,2 mode and may only contain the modes in the model i.e., 22, 21, 33, 32, 44, 43 Only checks upto ell=8 though.

Definition at line 104 of file LALSimIMRPhenomPv3HM.c.

◆ init_PhenomPv3HM_Storage()

static UNUSED int init_PhenomPv3HM_Storage ( PhenomPv3HMStorage p,
sysq pAngles,
REAL8  m1_SI,
REAL8  m2_SI,
REAL8  S1x,
REAL8  S1y,
REAL8  S1z,
REAL8  S2x,
REAL8  S2y,
REAL8  S2z,
const REAL8  distance,
const REAL8  inclination,
const REAL8  phiRef,
const REAL8  deltaF,
const REAL8  f_min,
const REAL8  f_max,
const REAL8  f_ref 
)
static

Precomputes useful quantities and populates the PhenomPv3HMStorage and sysq (for precession angles) structs.

Parameters
[out]pPhenomPv3Storage struct
[out]pAnglesprecession angle pre-computations struct
m1_SImass of primary in SI (kg)
m2_SImass of secondary in SI (kg)
S1xx-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S1yy-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S1zz-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S2xx-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
S2yy-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
S2zz-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
distancedistance of source (m)
inclinationinclination of source (rad)
phiRefreference orbital phase (rad)
deltaFSampling frequency (Hz)
f_minStarting GW frequency (Hz)
f_maxEnd frequency; 0 defaults to ringdown cutoff freq
f_refReference GW frequency (Hz)

Definition at line 155 of file LALSimIMRPhenomPv3HM.c.

◆ XLALSimIMRPhenomPv3HMGetHplusHcross()

int XLALSimIMRPhenomPv3HMGetHplusHcross ( UNUSED COMPLEX16FrequencySeries **  hptilde,
UNUSED COMPLEX16FrequencySeries **  hctilde,
UNUSED REAL8Sequence freqs,
UNUSED REAL8  m1_SI,
UNUSED REAL8  m2_SI,
UNUSED REAL8  chi1x,
UNUSED REAL8  chi1y,
UNUSED REAL8  chi1z,
UNUSED REAL8  chi2x,
UNUSED REAL8  chi2y,
UNUSED REAL8  chi2z,
UNUSED const REAL8  distance,
UNUSED const REAL8  inclination,
UNUSED const REAL8  phiRef,
UNUSED const REAL8  deltaF,
UNUSED REAL8  f_ref,
UNUSED LALDict *  extraParams 
)

This version doesn't construct precessing hlm modes but instead constructs hplus, hcross directly.

Parameters
[out]hptildeFrequency-domain waveform h+
[out]hctildeFrequency-domain waveform hx
freqsfrequency sequency in Hz
m1_SImass of companion 1 (kg)
m2_SImass of companion 2 (kg)
chi1xx-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi1yy-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi1zz-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi2xx-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
chi2yy-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
chi2zz-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
distancedistance of source (m)
inclinationinclination of source (rad)
phiRefreference orbital phase (rad)
deltaFSampling frequency (Hz). To use arbitrary frequency points set deltaF <= 0.
f_refReference frequency
extraParamsLALDict struct

Definition at line 283 of file LALSimIMRPhenomPv3HM.c.

◆ XLALSimIMRPhenomPv3()

int XLALSimIMRPhenomPv3 ( COMPLEX16FrequencySeries **  hptilde,
COMPLEX16FrequencySeries **  hctilde,
REAL8Sequence freqs,
REAL8  m1_SI,
REAL8  m2_SI,
REAL8  S1x,
REAL8  S1y,
REAL8  S1z,
REAL8  S2x,
REAL8  S2y,
REAL8  S2z,
const REAL8  distance,
const REAL8  inclination,
const REAL8  phiRef,
const REAL8  deltaF,
const REAL8  f_ref,
LALDict *  extraParams 
)

Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenomPv3 in the frequency domain.

Reference:

  • Hannam et al., arXiv:1308.3271 [gr-qc]
  • Bohe et al., PhenomPv2 technical document LIGO-T1500602
  • Chatziioannou et al., arXiv 1703.03967 [gr-qc]

This function can be used for equally-spaced frequency series. For unequal spacing, use XLALSimIMRPhenomPv3FrequencySequence instead.

This function calls XLALSimIMRPhenomPv3HMGetHplusHcross with just the l=m=2 mode

Parameters
[out]hptildeFrequency-domain waveform h+
[out]hctildeFrequency-domain waveform hx
freqsfrequency sequency in Hz
m1_SImass of companion 1 (kg)
m2_SImass of companion 2 (kg)
S1xx-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S1yy-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S1zz-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
S2xx-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
S2yy-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
S2zz-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
distancedistance of source (m)
inclinationinclination of source (rad)
phiRefreference orbital phase (rad)
deltaFSampling frequency (Hz)
f_refReference frequency
extraParamslinked list containing the extra testing GR parameters

Definition at line 551 of file LALSimIMRPhenomPv3HM.c.

◆ IMRPhenomPv3HM_Compute_a_b_e()

static int IMRPhenomPv3HM_Compute_a_b_e ( REAL8 alpha,
REAL8 beta,
REAL8 mprime_epsilon,
REAL8  fHz,
INT4  mprime,
const REAL8  twopi_Msec,
PhenomPv3HMStorage pv3HM,
sysq pAngles 
)
static

This is an internal function that returns the precession angles at a single frequency.

Definition at line 619 of file LALSimIMRPhenomPv3HM.c.

◆ IMRPhenomPv3HM_wigner_loop()

static int IMRPhenomPv3HM_wigner_loop ( COMPLEX16 Term1,
COMPLEX16 Term2,
INT4  ell,
INT4  mprime,
IMRPhenomPv3HMYlmStruct ylms,
IMRPhenomPv3HMAlphaStruct als,
IMRPhenomPv3HMWignderStruct wigs 
)
static

This is an internal function computes terms required to compute hptilde and hctilde.

Definition at line 648 of file LALSimIMRPhenomPv3HM.c.

◆ IMRPhenomPv3HM_Compute_Mode()

static int IMRPhenomPv3HM_Compute_Mode ( COMPLEX16FrequencySeries **  hptilde,
COMPLEX16FrequencySeries **  hctilde,
UINT4  ell,
INT4  mprime,
const REAL8  Mtot_Msun,
PhenomPv3HMStorage pv3HM,
SphHarmFrequencySeries **  hlmsD,
sysq pAngles,
REAL8Sequence freqs_seq 
)
static

This is an internal function that returns hptilde and hctilde for a single mode in the inertial frame.

Definition at line 740 of file LALSimIMRPhenomPv3HM.c.

◆ XLALSimIMRPhenomPv3HMModes()

int XLALSimIMRPhenomPv3HMModes ( SphHarmFrequencySeries **  hlms,
REAL8Sequence freqs,
REAL8  m1_SI,
REAL8  m2_SI,
REAL8  chi1x,
REAL8  chi1y,
REAL8  chi1z,
REAL8  chi2x,
REAL8  chi2y,
REAL8  chi2z,
const REAL8  phiRef,
const REAL8  deltaF,
const REAL8  f_ref,
LALDict *  extraParams 
)

Returns frequency domain hlm's in inertial frame.

Parameters
[out]hlmsSphHarmFrequencySeries struct containing inertial frame hlm modes
freqsfrequency sequency in Hz
m1_SImass of companion 1 (kg)
m2_SImass of companion 2 (kg)
chi1xx-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi1yy-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi1zz-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1)
chi2xx-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
chi2yy-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
chi2zz-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1)
phiRefreference orbital phase (rad)
deltaFSampling frequency (Hz)
f_refReference frequency
extraParamslinked list containing the extra testing GR parameters

Definition at line 850 of file LALSimIMRPhenomPv3HM.c.