Interface routine needed to generate all waveforms in the Inspiral Waveforms package. More...
Interface routine needed to generate all waveforms in the Inspiral Waveforms package.
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).
signalvec: Output containing the inspiral waveform. params: Input containing binary chirp parameters. signalvec1: Output containing the 0-phase inspiral waveform. signalvec2: Output containing the \(\pi/2\)-phase inspiral waveform. params: Input containing binary chirp parameters. 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.
Simple use of switch statement to access different PN approximations.
Depending on the user inputs one of the following functions is called:
Approximant is one of TaylorT1, TaylorT2, TaylorT3, PadeT1, EOB, SpinTaylorT3, PhenSpinTaylorRD, SpinQuadTaylor 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.
| 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
| hplus | +-polarization waveform |
| hcross | x-polarization waveform |
| thisRow | row from the sim_inspiral table containing waveform parameters |
| deltaT | time step |
Definition at line 143 of file LALInspiralWave.c.
| 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().
| hplus | +-polarization waveform |
| hcross | x-polarization waveform |
| thisRow | row from the sim_inspiral table containing waveform parameters |
| deltaT | time step (s) |
Definition at line 227 of file LALInspiralWave.c.
| 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().
| hplus | +-polarization waveform |
| hcross | x-polarization waveform |
| params | stucture containing waveform parameters |
Definition at line 330 of file LALInspiralWave.c.
| void LALInspiralWave | ( | LALStatus * | status, |
| REAL4Vector * | signalvec, | ||
| InspiralTemplate * | params | ||
| ) |
Definition at line 372 of file LALInspiralWave.c.
| void LALInspiralWaveTemplates | ( | LALStatus * | status, |
| REAL4Vector * | signalvec1, | ||
| REAL4Vector * | signalvec2, | ||
| InspiralTemplate * | params | ||
| ) |
Definition at line 525 of file LALInspiralWave.c.
| void LALInspiralWaveForInjection | ( | LALStatus * | status, |
| CoherentGW * | waveform, | ||
| InspiralTemplate * | inspiralParams, | ||
| PPNParamStruc * | ppnParams | ||
| ) |
Definition at line 661 of file LALInspiralWave.c.