LALSimulation  5.4.0.1-fe68b98
LALSimIMRPhenomXHM_multiband.c File Reference

Prototypes

IMRPhenomXMultiBandingGridStruct XLALSimIMRPhenomXGridComp (REAL8 fSTART, REAL8 fEND, REAL8 mydf)
 
INT4 XLALSimIMRPhenomXMultibandingGrid (REAL8 fstartIn, REAL8 fend, REAL8 MfLorentzianEnd, REAL8 Mfmax, REAL8 evaldMf, REAL8 dfpower, REAL8 dfcoefficient, IMRPhenomXMultiBandingGridStruct *allGrids, REAL8 dfmerger, REAL8 dfringdown)
 
INT4 deltaF_MergerRingdown (REAL8 *dfmerger, REAL8 *dfringdown, REAL8 resTest, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp, IMRPhenomXHMPhaseCoefficients *pPhase)
 
int IMRPhenomXHMMultiBandOneMode (COMPLEX16FrequencySeries **htildelm, IMRPhenomXWaveformStruct *pWF, UINT4 ell, UINT4 emm, LALDict *lalParams)
 
int IMRPhenomXHMMultiBandOneModeMixing (COMPLEX16FrequencySeries **htildelm, COMPLEX16FrequencySeries *htilde22, IMRPhenomXWaveformStruct *pWF, UINT4 ell, UINT4 emm, LALDict *lalParams)
 
static int interpolateAmplitude (double *fineAmp, double coarsefreqs[], double coarseAmp[], double finefreqs[], int lengthCoarse, int lengthFine, int ampinterpolorder)
 
static int interpolateAmplitudeMixing (double *fineAmp, double *fineAmpSS, double coarsefreqs[], double coarsefreqsSS[], double coarseAmp[], double coarseAmpSS[], double finefreqs[], int lengthCoarse, int lengthCoarseSS, int lengthFine, int sphericalfinecount, int sphericalfinecountMax, int ampinterpolorder)
 
static int SetupWFArraysReal (REAL8Sequence **freqs, REAL8FrequencySeries **amphase, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, LIGOTimeGPS ligotimegps_zero)
 
static int IMRPhenomXHM_Amplitude (REAL8FrequencySeries **amplm, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXAmpCoefficients *pAmp22, IMRPhenomXPhaseCoefficients *pPhase22, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp, IMRPhenomXHMPhaseCoefficients *pPhase)
 Functions to compute coarse amplitude and phase. More...
 
static int IMRPhenomXHM_AmplitudeMixing (REAL8FrequencySeries **amplm, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp, UNUSED IMRPhenomXHMPhaseCoefficients *pPhase)
 
static int IMRPhenomXHM_Phase (REAL8FrequencySeries **phaselm, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXAmpCoefficients *pAmp22, IMRPhenomXPhaseCoefficients *pPhase22, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMAmpCoefficients *pAmp, IMRPhenomXHMPhaseCoefficients *pPhase)
 
static int IMRPhenomXHM_PhaseMixing (REAL8FrequencySeries **phaselm, const REAL8Sequence *freqs_In, IMRPhenomXWaveformStruct *pWF, IMRPhenomXHMWaveformStruct *pWFHM, IMRPhenomXHMPhaseCoefficients *pPhase)
 
static double logbase (double base, double x)
 
static double deltaF_mergerBin (REAL8 fdamp, REAL8 alpha4, REAL8 abserror)
 
static double deltaF_ringdownBin (REAL8 fdamp, REAL8 alpha4, REAL8 LAMBDA, REAL8 abserror)
 
Routines for IMRPhenomXHM Multibanding

C code for applying Multibanding to IMRPhenomXHM_Multimode

Author
Cecilio García Quirós, Sascha Husa

This is a technique to make the evaluation of waveform models faster by evaluating the model in a coarser non-uniform grid and interpolate this to the final fine uniform grid. We apply this technique to the fourier domain model IMRPhenomXHM as described in this paper: https://arxiv.org/abs/2001.10897

Multibanding flags: ThresholdMband: Determines the strength of the Multibanding algorithm. The lower this value is, the slower is the evaluation but more accurate is the final waveform compared to the one without multibanding.

  • 0.001: DEFAULT value
  • 0: switch off the multibanding

AmpInterpol: Determines the gsl interpolation order for the amplitude.

  • 1: linear interpolation (DEFAULT)
  • 3: cubic interpolation
int XLALSimIMRPhenomXHMMultiBandOneMode (COMPLEX16FrequencySeries **htildelm, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, UINT4 ell, INT4 emmIn, REAL8 distance, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
 Return htildelm, the waveform of one mode without mode-mixing. More...
 
int XLALSimIMRPhenomXHMMultiBandOneModeMixing (COMPLEX16FrequencySeries **htildelm, COMPLEX16FrequencySeries *htilde22, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, UINT4 ell, INT4 emmIn, REAL8 distance, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
 Returns htildelm the waveform of one mode that present mode-mixing. More...
 

Go to the source code of this file.

Function Documentation

◆ XLALSimIMRPhenomXGridComp()

IMRPhenomXMultiBandingGridStruct XLALSimIMRPhenomXGridComp ( REAL8  fSTART,
REAL8  fEND,
REAL8  mydf 
)
Parameters
fSTARTStarting frequency of the uniform bin *
fENDEnding frequency of the uniform bin *
mydfFrequency spacing of the bin *

Definition at line 38 of file LALSimIMRPhenomXHM_multiband.c.

◆ XLALSimIMRPhenomXMultibandingGrid()

INT4 XLALSimIMRPhenomXMultibandingGrid ( REAL8  fstartIn,
REAL8  fend,
REAL8  MfLorentzianEnd,
REAL8  Mfmax,
REAL8  evaldMf,
REAL8  dfpower,
REAL8  dfcoefficient,
IMRPhenomXMultiBandingGridStruct allGrids,
REAL8  dfmerger,
REAL8  dfringdown 
)
Parameters
fstartInMinimun frequency in NR unit s*
fendEnd of inspiral frequency bins *
MfLorentzianEndDetermines the last frequency bin *
MfmaxMaximun frequency in NR units *
evaldMfSpacing of the uniform frequency grid (NR units) *
dfpowerdecaying frequency power to estimate frequency spacing *
dfcoefficientmultiplying factor to the estimate of the frequency spacing *
[out]allGridslist of non-uniform frequency bins*
[out]dfmergerSpacing merger bin*
[out]dfringdownSpacing ringdown bin*

Definition at line 74 of file LALSimIMRPhenomXHM_multiband.c.

◆ deltaF_MergerRingdown()

INT4 deltaF_MergerRingdown ( REAL8 dfmerger,
REAL8 dfringdown,
REAL8  resTest,
IMRPhenomXHMWaveformStruct pWFHM,
IMRPhenomXHMAmpCoefficients pAmp,
IMRPhenomXHMPhaseCoefficients pPhase 
)

Definition at line 407 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHMMultiBandOneMode()

int IMRPhenomXHMMultiBandOneMode ( COMPLEX16FrequencySeries **  htildelm,
IMRPhenomXWaveformStruct pWF,
UINT4  ell,
UINT4  emm,
LALDict *  lalParams 
)

Mode non-zero

Compute 22 using PhenomX functions

Higher modes

Parameters
[out]htildelmFD waveform *
pWFWaveform structure 22 mode *
ellFirst index (l,m) mode *
emmSecond incex (l,m) mode *
lalParamsLAL dictionary *

Definition at line 578 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHMMultiBandOneModeMixing()

int IMRPhenomXHMMultiBandOneModeMixing ( COMPLEX16FrequencySeries **  htildelm,
COMPLEX16FrequencySeries htilde22,
IMRPhenomXWaveformStruct pWF,
UINT4  ell,
UINT4  emm,
LALDict *  lalParams 
)
Parameters
[out]htildelmFD waveform
htilde22Recycle the 22 mode if previously computed *
pWFStructure of 22 mode *
ellFirst index (l,m) mode *
emmSecond incex (l,m) mode *
lalParamsLAL dictionary *

Definition at line 1381 of file LALSimIMRPhenomXHM_multiband.c.

◆ interpolateAmplitude()

static int interpolateAmplitude ( double *  fineAmp,
double  coarsefreqs[],
double  coarseAmp[],
double  finefreqs[],
int  lengthCoarse,
int  lengthFine,
int  ampinterpolorder 
)
static
Parameters
[out]fineAmpamplitude in the fine uniform grid *
coarsefreqsnon-uniform frequency array*
coarseAmpamplitude in the non-uniform frequency array *
finefreqsuniform fine frequency grid*
lengthCoarselength of non-uniform freq array *
lengthFinelength of uniform fine freq array *
ampinterpolorderorder of the gsl interpolation *

Definition at line 2190 of file LALSimIMRPhenomXHM_multiband.c.

◆ interpolateAmplitudeMixing()

static int interpolateAmplitudeMixing ( double *  fineAmp,
double *  fineAmpSS,
double  coarsefreqs[],
double  coarsefreqsSS[],
double  coarseAmp[],
double  coarseAmpSS[],
double  finefreqs[],
int  lengthCoarse,
int  lengthCoarseSS,
int  lengthFine,
int  sphericalfinecount,
int  sphericalfinecountMax,
int  ampinterpolorder 
)
static
Parameters
[out]fineAmpspherical amplitude in the fine uniform grid *
[out]fineAmpSSspheroidal amplitude in the fine uniform grid *
coarsefreqsnon-uniform frequency array*
coarsefreqsSSnon-uniform frequency array spheroidal *
coarseAmpamplitude in the non-uniform frequency array *
coarseAmpSSspheroidal amplitude in the non-uniform frequency array *
finefreqsuniform fine frequency grid*
lengthCoarselength of non-uniform freq array *
lengthCoarseSSlength of non-uniform freq array Sphroidal *
lengthFinelength of uniform fine freq array *
sphericalfinecountlength of spherical fine grid *
sphericalfinecountMaxlength of spherical fine grid *
ampinterpolorderorder of interpolation *

Definition at line 2247 of file LALSimIMRPhenomXHM_multiband.c.

◆ SetupWFArraysReal()

static int SetupWFArraysReal ( REAL8Sequence **  freqs,
REAL8FrequencySeries **  amphase,
const REAL8Sequence freqs_In,
IMRPhenomXWaveformStruct pWF,
LIGOTimeGPS  ligotimegps_zero 
)
static
Parameters
[out]freqsFrequency array to evaluate model *
[out]amphaseInitialize amplitude or phase with the length of freqs *
freqs_InInput frequency array or fmin, fmax *
pWFStructure of the 22 mode *
ligotimegps_zeroNeeded to initialize amphase *

Definition at line 2310 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHM_Amplitude()

static int IMRPhenomXHM_Amplitude ( REAL8FrequencySeries **  amplm,
const REAL8Sequence freqs_In,
IMRPhenomXWaveformStruct pWF,
IMRPhenomXAmpCoefficients pAmp22,
IMRPhenomXPhaseCoefficients pPhase22,
IMRPhenomXHMWaveformStruct pWFHM,
IMRPhenomXHMAmpCoefficients pAmp,
IMRPhenomXHMPhaseCoefficients pPhase 
)
static

Functions to compute coarse amplitude and phase.

Parameters
[out]amplmamplitude of hlm mode *
freqs_InFrequency array to evaluate model or fmin, fmax *
pWFStructure of the 22 mode *
pAmp22Amplitude coefficients 22
pPhase22Phase coefficients 22
pWFHMwaveform parameters lm mode
pAmpAmplitude coefficients lm
pPhasePhase coefficients 22

Definition at line 2426 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHM_AmplitudeMixing()

static int IMRPhenomXHM_AmplitudeMixing ( REAL8FrequencySeries **  amplm,
const REAL8Sequence freqs_In,
IMRPhenomXWaveformStruct pWF,
IMRPhenomXHMWaveformStruct pWFHM,
IMRPhenomXHMAmpCoefficients pAmp,
UNUSED IMRPhenomXHMPhaseCoefficients pPhase 
)
static
Parameters
[out]amplmamplitude of hlm mode *
freqs_InFrequency array to evaluate model or fmin, fmax *
pWFStructure of the 22 mode *
pWFHMwaveform parameters lm mode
pAmpAmplitude coefficients lm
pPhasePhase coefficients 22

Definition at line 2509 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHM_Phase()

static int IMRPhenomXHM_Phase ( REAL8FrequencySeries **  phaselm,
const REAL8Sequence freqs_In,
IMRPhenomXWaveformStruct pWF,
IMRPhenomXAmpCoefficients pAmp22,
IMRPhenomXPhaseCoefficients pPhase22,
IMRPhenomXHMWaveformStruct pWFHM,
IMRPhenomXHMAmpCoefficients pAmp,
IMRPhenomXHMPhaseCoefficients pPhase 
)
static
Parameters
[out]phaselmphase of hlm mode *
freqs_InFrequency array to evaluate model or fmin, fmax *
pWFStructure of the 22 mode *
pAmp22Amplitude coefficients 22
pPhase22Phase coefficients 22
pWFHMwaveform parameters lm mode
pAmpAmplitude coefficients lm
pPhasePhase coefficients 22

Definition at line 2570 of file LALSimIMRPhenomXHM_multiband.c.

◆ IMRPhenomXHM_PhaseMixing()

static int IMRPhenomXHM_PhaseMixing ( REAL8FrequencySeries **  phaselm,
const REAL8Sequence freqs_In,
IMRPhenomXWaveformStruct pWF,
IMRPhenomXHMWaveformStruct pWFHM,
IMRPhenomXHMPhaseCoefficients pPhase 
)
static
Parameters
[out]phaselmphase of hlm mode *
freqs_InFrequency array to evaluate model or fmin, fmax *
pWFStructure of the 22 mode *
pWFHMwaveform parameters lm mode
pPhasePhase coefficients 22

Definition at line 2675 of file LALSimIMRPhenomXHM_multiband.c.

◆ logbase()

static double logbase ( double  base,
double  x 
)
static

Definition at line 2731 of file LALSimIMRPhenomXHM_multiband.c.

◆ deltaF_mergerBin()

static double deltaF_mergerBin ( REAL8  fdamp,
REAL8  alpha4,
REAL8  abserror 
)
static

Definition at line 2736 of file LALSimIMRPhenomXHM_multiband.c.

◆ deltaF_ringdownBin()

static double deltaF_ringdownBin ( REAL8  fdamp,
REAL8  alpha4,
REAL8  LAMBDA,
REAL8  abserror 
)
static

Definition at line 2743 of file LALSimIMRPhenomXHM_multiband.c.