LALInspiral 5.0.3.1-eeff03c
LALInspiralWave.c File Reference

Interface routine needed to generate all waveforms in the Inspiral Waveforms package. More...

Prototypes

int XLALSimInspiralChooseWaveformFromSimInspiral (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, SimInspiralTable *thisRow, REAL8 deltaT)
 Generate the plus and cross polarizations for a waveform form a row of the sim_inspiral table. More...
 
int XLALInspiralTDWaveformFromSimInspiral (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, SimInspiralTable *thisRow, REAL8 deltaT)
 Generate the plus and cross polarizations for a conditioned waveform form a row of the sim_inspiral table. More...
 
int XLALSimInspiralChooseWaveformFromInspiralTemplate (REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, InspiralTemplate *params)
 Generate the plus and cross polarizations for a waveform form a row of the InspiralTemplate structure. More...
 
void LALInspiralWave (LALStatus *status, REAL4Vector *signalvec, InspiralTemplate *params)
 
void LALInspiralWaveTemplates (LALStatus *status, REAL4Vector *signalvec1, REAL4Vector *signalvec2, InspiralTemplate *params)
 
void LALInspiralWaveForInjection (LALStatus *status, CoherentGW *waveform, InspiralTemplate *inspiralParams, PPNParamStruc *ppnParams)
 

Detailed Description

Interface routine needed to generate all waveforms in the Inspiral Waveforms package.

Author
Churches, D. K and Sathyaprakash, B.S. and Cokelaer. T

To generate a waveform a user is noramlly required to (a) choose the binary parameters, starting frequency, number of bins of leading and trailing zero-padding, etc., in the structure InspiralTemplate params and (b) call the following three functions in the order given: LALInspiralParameterCalc(), LALInspiralWaveLength() and LALInspiralWave(). Either a time- or a frequency-domain signal is returned depending upon the approximant requested (see Notes below).

Prototypes

LALInspiralWave()

  • signalvec: Output containing the inspiral waveform.
  • params: Input containing binary chirp parameters.

LALInspiralWaveTemplates()

  • signalvec1: Output containing the 0-phase inspiral waveform.
  • signalvec2: Output containing the \(\pi/2\)-phase inspiral waveform.
  • params: Input containing binary chirp parameters.

Description

The code LALInspiralWave() is the user interface to the inspiral codes. It takes from the user all the physical parameters which specify the binary, and calls the relevent wave generation function. Currently ten different approximants are fully implemented. These are TaylorT1, TaylorT2, TaylorT3, TaylorF1, TaylorF2, TaylorF2RedSpin, PadeT1, EOB, BCV, SpinTaylorT3, PhenSpinTaylorRD. Taylor approximants can all be generated at seven different post-Newtonian orders, from Newtonian to 3.5 PN order, PadeT1 exists at order 1.5PN and higher, EOB at orders 2 and higher. SpinTaylorT3 is implemented only at 2PN order by solving the evolution equations for the spin and orbital angular momenta and a time-domain phasing formula. Finally, PN order is undefined for BCV. The approximant and the order are set up by the enums Approximant and LALPNOrder, respectively.

The waveforms are all terminated one bin before the last stable orbit is reached. The last stable orbit corresponding to a given Approximant and LALPNOrder is defined as follows: For all Taylor approximants at orders 0PN, 1PN and 1.5PN \(v_\textrm{lso}^2=1/6,\) and at 2PN, 2.5PN, 3PN and 3.5PN \(v_\textrm{lso}^2 = x^\textrm{lso}_{T_4},\) where \(x^\textrm{lso}_{T_4}\) is defined in this table. In the case of Pade approximant at 1.5PN order \(v_\textrm{lso}^2=1/6,\) and at orders 2PN, 2.5PN, 3PN and 3.5PN \(v_\textrm{lso}^2 = x^\textrm{lso}_{P_4},\) where \(x^\textrm{lso}_{P_4}\) is defined in this table. In the case of EOB approximant, defined only at orders greater than 2PN, the plunge waveform is terminated at the light-ring orbit defined by Eq. \eqref{eq_LightRing}.

In the case of LALInspiralWaveTemplates() *signalvec1 contains the ‘0-phase’ inspiral template and *signalvec2 contains a signal that is \(\pi/2\) out of phase with respect to *signalvec1. Currently, a template pair is generated only for the following approximants: TaylorT1, TaylorT2, TaylorT3, PadeT1, EOB.

See the test codes for examples of how to generate different approximations.

Algorithm

Simple use of switch statement to access different PN approximations.

Uses

Depending on the user inputs one of the following functions is called:

LALInspiralWave1()
LALEOBWaveform()
void LALBCVWaveform(LALStatus *status, REAL4Vector *signalvec, InspiralTemplate *params)
void LALInspiralWave3(LALStatus *status, REAL4Vector *signalvec, InspiralTemplate *params)
int XLALInspiralStationaryPhaseApprox2(REAL4Vector *signalvec, InspiralTemplate *params)
int XLALInspiralStationaryPhaseApprox1(REAL4Vector *signalvec, InspiralTemplate *params)
void LALInspiralSpinModulatedWave(LALStatus *status, REAL4Vector *signalvec, InspiralTemplate *in)
int XLALInspiralWave2(REAL4Vector *signalvec, InspiralTemplate *params)

Notes

  • A time-domain waveform is returned when the Approximant is one of TaylorT1, TaylorT2, TaylorT3, PadeT1, EOB, SpinTaylorT3, PhenSpinTaylorRD, SpinQuadTaylor
  • A frequency-domain waveform is returned when the Approximant is one of TaylorF1, TaylorF2, TaylorF2RedSpin, BCV. In these cases the code returns the real and imagninary parts of the Fourier domain signal in the convention of fftw. For a signal vector of length n=signalvec->length (n even):
    • signalvec->data[0] is the real 0th frequency component of the Fourier transform.
    • signalvec->data[n/2] is the real Nyquist frequency component of the Fourier transform.
    • signalvec->data[k] and signalvec->data[n-k], for k=1,..., n/2-1, are the real and imaginary parts of the Fourier transform at a frequency \(k\Delta f=k/T,\) \(T\) being the duration of the signal and \(\Delta f=1/T\) is the frequency resolution.

Definition in file LALInspiralWave.c.

Go to the source code of this file.

Function Documentation

◆ XLALSimInspiralChooseWaveformFromSimInspiral()

int XLALSimInspiralChooseWaveformFromSimInspiral ( REAL8TimeSeries **  hplus,
REAL8TimeSeries **  hcross,
SimInspiralTable thisRow,
REAL8  deltaT 
)

Generate the plus and cross polarizations for a waveform form a row of the sim_inspiral table.

Parses a row from the sim_inspiral table and passes the appropriate members to XLALSimInspiralChooseWaveform().

FIXME: this should eventually be moved to lalsimulation along with the appropriate string parsing functions

Parameters
hplus+-polarization waveform
hcrossx-polarization waveform
thisRowrow from the sim_inspiral table containing waveform parameters
deltaTtime step

Definition at line 143 of file LALInspiralWave.c.

◆ XLALInspiralTDWaveformFromSimInspiral()

int XLALInspiralTDWaveformFromSimInspiral ( REAL8TimeSeries **  hplus,
REAL8TimeSeries **  hcross,
SimInspiralTable thisRow,
REAL8  deltaT 
)

Generate the plus and cross polarizations for a conditioned waveform form a row of the sim_inspiral table.

Parses a row from the sim_inspiral table and passes the appropriate members to XLALSimInspiralTD().

Parameters
hplus+-polarization waveform
hcrossx-polarization waveform
thisRowrow from the sim_inspiral table containing waveform parameters
deltaTtime step (s)

Definition at line 227 of file LALInspiralWave.c.

◆ XLALSimInspiralChooseWaveformFromInspiralTemplate()

int XLALSimInspiralChooseWaveformFromInspiralTemplate ( REAL8TimeSeries **  hplus,
REAL8TimeSeries **  hcross,
InspiralTemplate params 
)

Generate the plus and cross polarizations for a waveform form a row of the InspiralTemplate structure.

Parses the InspiralTemplate stucture and passes the appropriate members to XLALSimInspiralChooseWaveform().

Parameters
hplus+-polarization waveform
hcrossx-polarization waveform
paramsstucture containing waveform parameters

Definition at line 330 of file LALInspiralWave.c.

◆ LALInspiralWave()

void LALInspiralWave ( LALStatus status,
REAL4Vector signalvec,
InspiralTemplate params 
)

Definition at line 372 of file LALInspiralWave.c.

◆ LALInspiralWaveTemplates()

void LALInspiralWaveTemplates ( LALStatus status,
REAL4Vector signalvec1,
REAL4Vector signalvec2,
InspiralTemplate params 
)

Definition at line 525 of file LALInspiralWave.c.

◆ LALInspiralWaveForInjection()

void LALInspiralWaveForInjection ( LALStatus status,
CoherentGW waveform,
InspiralTemplate inspiralParams,
PPNParamStruc ppnParams 
)

Definition at line 661 of file LALInspiralWave.c.