Prototypes | |
static int | IMRPhenomXPHMTwistUp (const REAL8 Mf, const COMPLEX16 hHM, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, INT4 ell, INT4 emmprime, COMPLEX16 *hp, COMPLEX16 *hc) |
static int | IMRPhenomXPHMTwistUpOneMode (const REAL8 Mf, const COMPLEX16 hlmprime, const COMPLEX16 hlmprime_antisym, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, UINT4 l, UINT4 mprime, INT4 m, COMPLEX16Sequence *hlminertial) |
LALDict * | IMRPhenomXPHM_setup_mode_array (LALDict *lalParams) |
Wrapper function for setup ModeArray of modes in the precessing frame to be twisted up. More... | |
static int | IMRPhenomXPHM_hplushcross (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *lalParams) |
Core function of XLALSimIMRPhenomXPHM and XLALSimIMRPhenomXPHMFrequencySequence. More... | |
static int | IMRPhenomXPHM_hplushcross_from_modes (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, LALDict *lalParams) |
static int | IMRPhenomXPHM_OneMode (COMPLEX16FrequencySeries **hlmpos, COMPLEX16FrequencySeries **hlmneg, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec, UINT4 ell, INT4 m, LALDict *lalParams) |
Core funciton to compute an individual precessing mode hlm in the inertial J-frame. More... | |
static int | Get_alpha_beta_epsilon (REAL8 *alpha, REAL8 *cBetah, REAL8 *sBetah, REAL8 *epsilon, INT4 mprime, REAL8 Mf, IMRPhenomXPrecessionStruct *pPrec, IMRPhenomXWaveformStruct *pWF) |
static double | Get_alpha_epsilon_offset (REAL8 *alpha_offset_mprime, REAL8 *epsilon_offset_mprime, INT4 mprime, IMRPhenomXPrecessionStruct *pPrec) |
int | XLALSimIMRPhenomXPHMModes (SphHarmFrequencySeries **hlms, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 deltaF, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 phiRef, REAL8 distance, REAL8 inclination, LALDict *lalParams) |
Function to obtain a SphHarmFrequencySeries with the individual modes h_lm. More... | |
INT4 | check_input_mode_array_Jframe (LALValue *ModeArrayJframe) |
INT4 | XLALSimIMRPhenomXPHMMultibandingGrid (REAL8Sequence **coarseFreqs, UINT4 ell, UINT4 emmprime, IMRPhenomXWaveformStruct *pWF, LALDict *lalParams) |
Routines for IMRPhenomXPHM | |
C code for IMRPhenomXPHM phenomenological waveform model. This is a frequency domain precessing model based on the twisting-up of the aligned spin model with higher modes IMRPhenomXHM. See G.Pratten et al arXiv:2004.06503 for details. Any studies that use this waveform model should include a reference to this paper.
Waveform flags: All the flags for IMRPhenomXP apply here plus the following ones: TwistPhenomHM: option to twist-up the AS model PhenomHM instead of PhenomXHM. It is only available for the polarizations, not for individual modes.
UseModes: Determine how the polarizations hp, hc are computed.
ModesL0Frame: Determine in which frame the individual precessing modes are returned.
PrecModes: Determine which indiviual modes are returned, the non-precessing or the precessing.
Multibanding flags: PrecThresholdMband: Determines the accuracy and speed of the Multibanding algorithm for the Euler angles. The higher the threshold the faster is the algorithm but also less accurate.
MBandPrecVersion: Determines the algorithm to build the non-uniform frequency grid for the Euler angles.
| |
int | XLALSimIMRPhenomXPHM (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 fRef_In, LALDict *lalParams) |
Returns hptilde and hctilde of the multimode precessing waveform for positive frequencies in an equally spaced grid. More... | |
int | XLALSimIMRPhenomXPHMFromModes (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 fRef_In, LALDict *lalParams) |
Returns hptilde and hctilde of the multimode precessing waveform for positive frequencies in an equally space grid. More... | |
int | XLALSimIMRPhenomXPHMFrequencySequence (COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams) |
Returns hptilde and hctilde as a complex frequency series with entries exactly at the frequencies specified in the REAL8Sequence *freqs (which can be unequally spaced). More... | |
int | XLALSimIMRPhenomXPHMOneMode (COMPLEX16FrequencySeries **hlmpos, COMPLEX16FrequencySeries **hlmneg, const UINT4 l, const INT4 m, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, const REAL8 fRef_In, LALDict *lalParams) |
Function to compute one hlm precessing mode in an uniform frequency grid. More... | |
int | XLALSimIMRPhenomXPHMFrequencySequenceOneMode (COMPLEX16FrequencySeries **hlmpos, COMPLEX16FrequencySeries **hlmneg, const REAL8Sequence *freqs, const UINT4 l, const INT4 m, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 fRef_In, LALDict *lalParams) |
Function to compute one hlm precessing mode on a custom frequency grid. More... | |
Go to the source code of this file.
Macros | |
#define | omp ignore |
#define | L_MAX 4 |
#define | DEBUG 0 |
#define | PHENOMXDEBUG 0 |
#define | MIN(a, b) (((a)<(b))?(a):(b)) |
#define | MAX(a, b) (((a)>(b))?(a):(b)) |
#define omp ignore |
Definition at line 36 of file LALSimIMRPhenomXPHM.c.
#define L_MAX 4 |
Definition at line 39 of file LALSimIMRPhenomXPHM.c.
#define DEBUG 0 |
Definition at line 42 of file LALSimIMRPhenomXPHM.c.
#define PHENOMXDEBUG 0 |
Definition at line 43 of file LALSimIMRPhenomXPHM.c.
Definition at line 53 of file LALSimIMRPhenomXPHM.c.
Definition at line 54 of file LALSimIMRPhenomXPHM.c.
|
static |
Mf | Frequency (Hz) | |
hHM | Underlying aligned-spin IMRPhenomXAS waveform | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomXP Precession Struct | |
ell | l index of the (l,m) mode | |
emmprime | m index of the (l,m) mode | |
[out] | hp | h_+ polarization \(\tilde h_+\) |
[out] | hc | h_x polarization \(\tilde h_x\) |
Definition at line 1806 of file LALSimIMRPhenomXPHM.c.
|
static |
Mf | Frequency (Mf geometric units) | |
hlmprime | Underlying aligned-spin IMRPhenomXHM waveform. The loop is with mprime positive, but the mode has to be the negative one for positive frequencies. | |
hlmprime_antisym | antisymmetric waveform in the co-precessing frame | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomXP Precession Struct | |
l | l index of the (l,m) (non-)precessing mode | |
mprime | second index of the (l,mprime) non-precessing mode | |
m | second index of the (l,m) precessing mode | |
[out] | hlminertial | hlm for one frequency in the inertial frame (precessing mode) |
Definition at line 3142 of file LALSimIMRPhenomXPHM.c.
LALDict * IMRPhenomXPHM_setup_mode_array | ( | LALDict * | lalParams | ) |
Wrapper function for setup ModeArray of modes in the precessing frame to be twisted up.
Definition at line 3522 of file LALSimIMRPhenomXPHM.c.
|
static |
Core function of XLALSimIMRPhenomXPHM and XLALSimIMRPhenomXPHMFrequencySequence.
Returns hptilde, hctilde for positive frequencies. The default non-precessing modes are 2|2|, 2|1|, 3|3|, 3|2| and 4|4|. It returns also the contribution of the corresponding negatives modes. It can be evaulated in a non-uniform frequency grid. Assumes positive frequencies.
[out] | hptilde | Frequency domain h+ GW strain |
[out] | hctilde | Frequency domain hx GW strain |
freqs_In | Frequency array to evaluate the model. (fmin, fmax) for equally spaced grids. | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomXP Precession Struct | |
lalParams | LAL Dictionary Structure |
Definition at line 740 of file LALSimIMRPhenomXPHM.c.
|
static |
[out] | hptilde | Frequency domain h+ GW strain |
[out] | hctilde | Frequency domain hx GW strain |
freqs_In | Frequency array to evaluate the model. (fmin, fmax) for equally spaced grids. | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomXP Precession Struct | |
lalParams | LAL Dictionary Structure |
Definition at line 1649 of file LALSimIMRPhenomXPHM.c.
|
static |
Core funciton to compute an individual precessing mode hlm in the inertial J-frame.
Returns two frequency series, one for the positive frequencies and other for the negative frequencies. It can be evaluated in a non-uniform frequency grid through the argument REAL8Seuqnce *freqs_In. This is in fact done when Calling XLALSimIMRPhenomXPHMFrequencySequence with the option of 'UseModes' activated.
[out] | hlmpos | Frequency domain hlm GW strain inertial frame positive frequencies |
[out] | hlmneg | Frequency domain hlm GW strain inertial frame negative frequencies |
freqs_In | Input frequency grid (Hz) | |
pWF | IMRPhenomX Waveform Struct | |
pPrec | IMRPhenomXP Precession Struct | |
ell | l index of the (l,m) precessing mode | |
m | m index of the (l,m) precessing mode | |
lalParams | LAL Dictionary Structure |
Definition at line 2797 of file LALSimIMRPhenomXPHM.c.
|
static |
[out] | alpha | Azimuthal angle of L w.r.t J |
[out] | cBetah | Cosine of polar angle between L and J |
[out] | sBetah | Sine of polar angle between L and J |
[out] | epsilon | Minus the third Euler angle (-gamma) describing L w.r.t J, fixed by minimal rotation condition |
mprime | Second index of the non-precesssing mode (l, mprime) | |
Mf | Frequency geometric units | |
pPrec | IMRPhenomXP Precessing structure | |
pWF | IMRPhenomX Waveform structure |
Definition at line 3632 of file LALSimIMRPhenomXPHM.c.
|
static |
[out] | alpha_offset_mprime | Offset alpha angle at reference frequency |
[out] | epsilon_offset_mprime | Offset epsilon angle at reference frequency |
mprime | Second index of the non-precesssing mode (l, mprime) | |
pPrec | IMRPhenomXP Precessing structure |
Definition at line 3585 of file LALSimIMRPhenomXPHM.c.
int XLALSimIMRPhenomXPHMModes | ( | SphHarmFrequencySeries ** | hlms, |
REAL8 | m1_SI, | ||
REAL8 | m2_SI, | ||
REAL8 | S1x, | ||
REAL8 | S1y, | ||
REAL8 | S1z, | ||
REAL8 | S2x, | ||
REAL8 | S2y, | ||
REAL8 | S2z, | ||
REAL8 | deltaF, | ||
REAL8 | f_min, | ||
REAL8 | f_max, | ||
REAL8 | f_ref, | ||
REAL8 | phiRef, | ||
REAL8 | distance, | ||
REAL8 | inclination, | ||
LALDict * | lalParams | ||
) |
Function to obtain a SphHarmFrequencySeries with the individual modes h_lm.
By default it returns all the modes available in the model, positive and negatives. With the mode array option in the LAL dictionary, the user can specify a custom mode array. The modes are computed in the inertial J-frame, so the mode array option does not refers to the modes in the co-precessing frame conversely to the functions for the polarizations XLALSimIMRPhenomXPHM. This function is to be used by ChooseFDModes.
[out] | hlms | list with single modes h_lm in the J-frame |
m1_SI | mass of companion 1 (kg) | |
m2_SI | mass of companion 2 (kg) | |
S1x | x-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) | |
S1y | y-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) | |
S1z | z-component of the dimensionless spin of object 1 w.r.t. Lhat = (0,0,1) | |
S2x | x-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) | |
S2y | y-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) | |
S2z | z-component of the dimensionless spin of object 2 w.r.t. Lhat = (0,0,1) | |
deltaF | frequency spacing (Hz) | |
f_min | starting GW frequency (Hz) | |
f_max | ending GW frequency (Hz) | |
f_ref | reference GW frequency (Hz) | |
phiRef | phase shift at reference frequency | |
distance | distance of source (m) | |
inclination | inclination of source (rad) | |
lalParams | LAL dictionary with extra options |
Definition at line 3400 of file LALSimIMRPhenomXPHM.c.
INT4 check_input_mode_array_Jframe | ( | LALValue * | ModeArrayJframe | ) |
Definition at line 3566 of file LALSimIMRPhenomXPHM.c.
INT4 XLALSimIMRPhenomXPHMMultibandingGrid | ( | REAL8Sequence ** | coarseFreqs, |
UINT4 | ell, | ||
UINT4 | emmprime, | ||
IMRPhenomXWaveformStruct * | pWF, | ||
LALDict * | lalParams | ||
) |
[out] | coarseFreqs | Non-uniform coarse frequency grid (1D array) |
ell | First index non-precessing mode | |
emmprime | Second index non-precessing mode | |
pWF | IMRPhenomX Waveform Struct | |
lalParams | LAL dictionary |
Definition at line 3687 of file LALSimIMRPhenomXPHM.c.