LALSimulation  5.4.0.1-fe68b98
LALSimInspiralTaylorEt.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2011 D. Keppel
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with with program; see the file COPYING. If not, write to the
16  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17  * MA 02110-1301 USA
18  */
19 
20 #include <math.h>
21 
22 #include <gsl/gsl_const.h>
23 #include <gsl/gsl_errno.h>
24 #include <gsl/gsl_math.h>
25 #include <gsl/gsl_odeiv.h>
26 
27 #include <lal/LALSimInspiral.h>
28 #include <lal/FindRoot.h>
29 #include <lal/LALConstants.h>
30 #include <lal/LALStdlib.h>
31 #include <lal/TimeSeries.h>
32 #include <lal/Units.h>
33 
36 #include "check_series_macros.h"
37 
38 #ifdef __GNUC__
39 #define UNUSED __attribute__ ((unused))
40 #else
41 #define UNUSED
42 #endif
43 
44 /*
45  * This structure contains the intrinsic parameters and post-newtonian
46  * co-efficients for the denergy/dv and flux expansions.
47  * These are computed by XLALSimInspiralTaylorT1Setup routine.
48  */
49 
50 typedef struct
51 {
52  /* coefficients for the TaylorEt phase evolution */
53  REAL8 phN, ph1, ph2, ph3;
54 
55  /* coefficients for the TaylorEt zeta evolution */
56  REAL8 zN, z2, z3, z4, z5, z6, z6l, z7;
57 
58  /* coefficients for the TaylorEt v(zeta) function */
59  REAL8 v1, v2, v3;
61 
63  REAL8 zeta, /**< post-Newtonian parameter */
64  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
65 );
66 
68  REAL8 zeta, /**< post-Newtonian parameter */
69  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
70 );
71 
73  REAL8 zeta, /**< post-Newtonian parameter */
74  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
75 );
76 
77 /*
78  * This strucuture contains pointers to the functions for calculating
79  * the post-newtonian terms at the desired order. They can be set by
80  * XLALSimInspiralTaylorT1Setup by passing an appropriate PN order.
81  */
82 
83 typedef struct
84 {
89 
90 
91 /*
92  * Computes v(zeta) for a post-Newtonian inspiral.
93  *
94  * Implements the square root of Equation 3.11 of: Alessandra Buonanno, Bala R
95  * Iyer, Evan Ochsner, Yi Pan, and B S Sathyaprakash, "Comparison of
96  * post-Newtonian templates for compact binary inspiral signals in
97  * gravitational-wave detectors", Phys. Rev. D 80, 084043 (2009),
98  * arXiv:0907.0700v1
99  */
100 
101 static REAL8
103  REAL8 zeta, /**< post-Newtonian parameter */
104  expnCoeffsTaylorEt UNUSED *ak /**< coefficients for TaylorEt evolution */
105  )
106 {
107  return sqrt(zeta);
108 }
109 
110 static REAL8
112  REAL8 zeta, /**< post-Newtonian parameter */
113  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
114  )
115 {
116  return sqrt(zeta * (1.0
117  + ak->v1 * zeta));
118 }
119 
120 static REAL8
122  REAL8 zeta, /**< post-Newtonian parameter */
123  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
124  )
125 {
126  REAL8 zeta2 = zeta*zeta;
127  return sqrt(zeta * (1.0
128  + ak->v1 * zeta
129  + ak->v2 * zeta2));
130 }
131 
132 static REAL8
134  REAL8 zeta, /**< post-Newtonian parameter */
135  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
136  )
137 {
138  REAL8 zeta2 = zeta*zeta;
139  REAL8 zeta3 = zeta2*zeta;
140  return sqrt(zeta * (1.0
141  + ak->v1 * zeta
142  + ak->v2 * zeta2
143  + ak->v3 * zeta3));
144 }
145 
146 
147 /*
148  * Computes the rate of increase of the phase for a post-Newtonian
149  * inspiral.
150  *
151  * Implements Equation 3.13a of: Alessandra Buonanno, Bala R Iyer, Evan
152  * Ochsner, Yi Pan, and B S Sathyaprakash, "Comparison of post-Newtonian
153  * templates for compact binary inspiral signals in gravitational-wave
154  * detectors", Phys. Rev. D 80, 084043 (2009), arXiv:0907.0700v1
155  */
156 
157 static REAL8
159  REAL8 zeta, /**< post-Newtonian parameter */
160  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
161  )
162 {
163  REAL8 zeta3_2 = pow(zeta, 3.0/2.0);
164  return ak->phN * zeta3_2;
165 }
166 
167 static REAL8
169  REAL8 zeta, /**< post-Newtonian parameter */
170  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
171  )
172 {
173  REAL8 zeta3_2 = pow(zeta, 3.0/2.0);
174  return ak->phN * zeta3_2 * (1.0
175  + ak->ph1 * zeta);
176 }
177 
178 static REAL8
180  REAL8 zeta, /**< post-Newtonian parameter */
181  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
182  )
183 {
184  REAL8 zeta3_2 = pow(zeta, 3.0/2.0);
185  REAL8 zeta2 = zeta*zeta;
186  return ak->phN * zeta3_2 * (1.0
187  + ak->ph1 * zeta
188  + ak->ph2 * zeta2);
189 }
190 
191 static REAL8
193  REAL8 zeta, /**< post-Newtonian parameter */
194  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
195  )
196 {
197  REAL8 zeta3_2 = pow(zeta, 3.0/2.0);
198  REAL8 zeta2 = zeta*zeta;
199  REAL8 zeta3 = zeta*zeta2;
200  return ak->phN * zeta3_2 * (1.0
201  + ak->ph1 * zeta
202  + ak->ph2 * zeta2
203  + ak->ph3 * zeta3);
204 }
205 
206 
207 /*
208  * Computes the rate of increase of zeta for a post-Newtonian
209  * inspiral.
210  *
211  * Implements Equation 3.13b of: Alessandra Buonanno, Bala R Iyer, Evan
212  * Ochsner, Yi Pan, and B S Sathyaprakash, "Comparison of post-Newtonian
213  * templates for compact binary inspiral signals in gravitational-wave
214  * detectors", Phys. Rev. D 80, 084043 (2009), arXiv:0907.0700v1
215  */
216 
217 static REAL8
219  REAL8 zeta, /**< post-Newtonian parameter */
220  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
221  )
222 {
223  REAL8 zeta5 = pow(zeta, 5.0);
224  return ak->zN * zeta5;
225 }
226 
227 static REAL8
229  REAL8 zeta, /**< post-Newtonian parameter */
230  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
231  )
232 {
233  REAL8 zeta5 = pow(zeta, 5.0);
234  return ak->zN * zeta5 * (1.0
235  + ak->z2 * zeta);
236 }
237 
238 static REAL8
240  REAL8 zeta, /**< post-Newtonian parameter */
241  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
242  )
243 {
244  REAL8 zeta1_2 = sqrt(zeta);
245  REAL8 zeta5 = pow(zeta, 5.0);
246  return ak->zN * zeta5 * (1.0
247  + ak->z2 * zeta
248  + ak->z3 * zeta * zeta1_2);
249 }
250 
251 static REAL8
253  REAL8 zeta, /**< post-Newtonian parameter */
254  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
255  )
256 {
257  REAL8 zeta2 = zeta*zeta;
258  REAL8 zeta1_2 = sqrt(zeta);
259  REAL8 zeta5 = pow(zeta, 5.0);
260  return ak->zN * zeta5 * (1.0
261  + ak->z2 * zeta
262  + ak->z3 * zeta * zeta1_2
263  + ak->z4 * zeta2);
264 }
265 
266 static REAL8
268  REAL8 zeta, /**< post-Newtonian parameter */
269  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
270  )
271 {
272  REAL8 zeta2 = zeta*zeta;
273  REAL8 zeta1_2 = sqrt(zeta);
274  REAL8 zeta5 = pow(zeta, 5.0);
275  return ak->zN * zeta5 * (1.0
276  + ak->z2 * zeta
277  + ak->z3 * zeta * zeta1_2
278  + ak->z4 * zeta2
279  + ak->z5 * zeta2 * zeta1_2);
280 }
281 
282 static REAL8
284  REAL8 zeta, /**< post-Newtonian parameter */
285  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
286  )
287 {
288  REAL8 zeta2 = zeta*zeta;
289  REAL8 zeta3 = zeta2*zeta;
290  REAL8 zeta1_2 = sqrt(zeta);
291  REAL8 zeta5 = zeta2*zeta3;
292  return ak->zN * zeta5 * (1.0
293  + ak->z2 * zeta
294  + ak->z3 * zeta * zeta1_2
295  + ak->z4 * zeta2
296  + ak->z5 * zeta2 * zeta1_2
297  + (ak->z6 + ak->z6l * log(16.0 * zeta)) * zeta3);
298 }
299 
300 static REAL8
302  REAL8 zeta, /**< post-Newtonian parameter */
303  expnCoeffsTaylorEt *ak /**< coefficients for TaylorEt evolution */
304  )
305 {
306  REAL8 zeta2 = zeta*zeta;
307  REAL8 zeta3 = zeta2*zeta;
308  REAL8 zeta1_2 = sqrt(zeta);
309  REAL8 zeta5 = zeta2*zeta3;
310  return ak->zN * zeta5 * (1.0
311  + ak->z2 * zeta
312  + ak->z3 * zeta * zeta1_2
313  + ak->z4 * zeta2
314  + ak->z5 * zeta2 * zeta1_2
315  + (ak->z6 + ak->z6l * log(16.0 * zeta)) * zeta3
316  + ak->z7 * zeta3 * zeta1_2);
317 }
318 
319 
320 typedef struct
321 {
326 
327 /*
328  * This function is used in the zeta intialization.
329  */
330 typedef struct
331 {
335 
336 static REAL8
338  REAL8 zeta,
339  void *params
340  )
341 {
343  return wrapperparams->f_target - wrapperparams->eoparams->dphase(zeta, &(wrapperparams->eoparams->ak));
344 }
345 
346 /*
347  * This function is used in the call to the GSL integrator.
348  */
349 static int
350 XLALSimInspiralTaylorEtPNEvolveOrbitIntegrand(double UNUSED t, const double y[], double ydot[], void *params)
351 {
353  ydot[0] = p->dzeta(y[0],&p->ak);
354  ydot[1] = p->dphase(y[0],&p->ak);
355  return GSL_SUCCESS;
356 }
357 
358 
359 /*
360  * Set up the expnCoeffsTaylorEt and expnFuncTaylorEt structures for
361  * generating a TaylorEt waveform and select the post-newtonian
362  * functions corresponding to the desired order.
363  *
364  * Inputs given in SI units.
365  */
366 static int
368  expnCoeffsTaylorEt *ak, /**< coefficients for TaylorEt evolution [modified] */
369  expnFuncTaylorEt *f, /**< functions for TaylorEt evolution [modified] */
370  REAL8 m1, /**< mass of companion 1 */
371  REAL8 m2, /**< mass of companion 2 */
372  int O /**< twice post-Newtonian order */
373  )
374 {
375  REAL8 m = m1 + m2;
376  REAL8 nu = m1 * m2 / (m * m);
377  m *= LAL_G_SI * pow(LAL_C_SI, -3.0);
378 
379  /* Taylor co-efficients for dPhase/dt. */
384 
385  /* Taylor co-efficients for dZeta/dt. */
394 
395  /* Taylor co-efficients for v(zeta). */
399 
400  switch (O)
401  {
402  case 0:
406  break;
407  case 1:
408  XLALPrintError("XLAL Error - %s: PN approximant not supported for PN order %d\n", __func__,O);
410  break;
411  case 2:
415  break;
416  case 3:
420  break;
421  case 4:
425  break;
426  case 5:
430  break;
431  case 6:
435  break;
436  case 7:
437  case -1:
441  break;
442  case 8:
443  XLALPrintError("XLAL Error - %s: PN approximant not supported for PN order %d\n", __func__,O);
445  break;
446  default:
447  XLALPrintError("XLAL Error - %s: Unknown PN order in switch\n", __func__);
449  }
450 
451  return 0;
452 }
453 
454 /**
455  * @addtogroup LALSimInspiralTaylorXX_c
456  * @{
457  * @name Routines for TaylorEt Waveforms
458  * @sa
459  * Section IIIE of Alessandra Buonanno, Bala R Iyer, Evan
460  * Ochsner, Yi Pan, and B S Sathyaprakash, "Comparison of post-Newtonian
461  * templates for compact binary inspiral signals in gravitational-wave
462  * detectors", Phys. Rev. D 80, 084043 (2009), arXiv:0907.0700v1
463  * @{
464  */
465 
466 /**
467  * Evolves a post-Newtonian orbit using the Taylor Et method.
468  *
469  * See Section IIIE: Alessandra Buonanno, Bala R Iyer, Evan
470  * Ochsner, Yi Pan, and B S Sathyaprakash, "Comparison of post-Newtonian
471  * templates for compact binary inspiral signals in gravitational-wave
472  * detectors", Phys. Rev. D 80, 084043 (2009), arXiv:0907.0700v1
473  */
475  REAL8TimeSeries **V, /**< post-Newtonian parameter [returned] */
476  REAL8TimeSeries **phi, /**< orbital phase [returned] */
477  REAL8 phic, /**< orbital phase at end */
478  REAL8 deltaT, /**< sampling interval */
479  REAL8 m1, /**< mass of companion 1 */
480  REAL8 m2, /**< mass of companion 2 */
481  REAL8 f_min, /**< start frequency */
482  int O /**< twice post-Newtonian order */
483  )
484 {
485  const UINT4 blocklen = 1024;
486  const REAL8 visco = 1./sqrt(6.);
488  expnFuncTaylorEt expnfunc;
490 
491  if(XLALSimInspiralTaylorEtSetup(&ak,&expnfunc,m1,m2,O))
493 
494  params.dphase = expnfunc.dphase;
495  params.dzeta = expnfunc.dzeta;
496  params.ak = ak;
497 
498  UINT4 j;
500  double y[2];
501  double yerr[2];
502  const gsl_odeiv_step_type *T = gsl_odeiv_step_rk4;
503  gsl_odeiv_step *s;
504  gsl_odeiv_system sys;
505 
506  /* setup ode system */
508  sys.jacobian = NULL;
509  sys.dimension = 2;
510  sys.params = &params;
511 
512  /* allocate memory */
513  *V = XLALCreateREAL8TimeSeries( "ORBITAL_VELOCITY_PARAMETER", &tc, 0., deltaT, &lalDimensionlessUnit, blocklen );
514  *phi = XLALCreateREAL8TimeSeries( "ORBITAL_PHASE", &tc, 0., deltaT, &lalDimensionlessUnit, blocklen );
515  if ( !V || !phi )
517 
519  wrapperparams.f_target = LAL_PI * f_min;
520  wrapperparams.eoparams = &params;
521  REAL8 v_min = cbrt(f_min * LAL_PI * LAL_G_SI * (m1 + m2))/LAL_C_SI;
522  REAL8 xmax = 10.0 * v_min*v_min;
523  REAL8 xacc = 1.0e-8;
524  REAL8 xmin = 0.1 * v_min*v_min;
525 
526  y[0] = XLALDBisectionFindRoot(XLALSimInspiralTaylorEtPhasingWrapper, xmin, xmax, xacc, (void*) (&wrapperparams));
527  y[1] = (*phi)->data->data[0] = 0.;
528  (*V)->data->data[0] = expnfunc.vOfZeta(y[0], &ak);
529  j = 0;
530 
531  s = gsl_odeiv_step_alloc(T, 2);
532  while (1) {
533  REAL8 tmpv;
534  ++j;
535  gsl_odeiv_step_apply(s, j*deltaT, deltaT, y, yerr, NULL, NULL, &sys);
536  tmpv = expnfunc.vOfZeta(y[0], &ak);
537  if ( tmpv > visco ) {
538  XLALPrintInfo("XLAL Info - %s: PN inspiral terminated at ISCO\n", __func__);
539  break;
540  }
541  if ( j >= (*V)->data->length ) {
542  if ( ! XLALResizeREAL8TimeSeries(*V, 0, (*V)->data->length + blocklen) )
544  if ( ! XLALResizeREAL8TimeSeries(*phi, 0, (*phi)->data->length + blocklen) )
546  }
547  (*V)->data->data[j] = tmpv;
548  (*phi)->data->data[j] = y[1];
549  }
550  gsl_odeiv_step_free(s);
551 
552  /* make the correct length */
553  if ( ! XLALResizeREAL8TimeSeries(*V, 0, j) )
555  if ( ! XLALResizeREAL8TimeSeries(*phi, 0, j) )
557 
558  /* adjust to correct time */
559  XLALGPSAdd(&(*V)->epoch, -1.0*j*deltaT);
560  XLALGPSAdd(&(*phi)->epoch, -1.0*j*deltaT);
561 
562  /* Shift phase so phi = phic at the end */
563  phic -= (*phi)->data->data[j-1];
564  for (j = 0; j < (*phi)->data->length; ++j)
565  (*phi)->data->data[j] += phic;
566 
567  return (int)(*V)->data->length;
568 }
569 
570 
571 /**
572  * Driver routine to compute the post-Newtonian inspiral waveform.
573  *
574  * This routine allows the user to specify different pN orders
575  * for phasing calcuation vs. amplitude calculations.
576  */
578  REAL8TimeSeries **hplus, /**< +-polarization waveform */
579  REAL8TimeSeries **hcross, /**< x-polarization waveform */
580  REAL8 phic, /**< orbital phase at end */
581  REAL8 v0, /**< tail-term gauge choice (default = 1) */
582  REAL8 deltaT, /**< sampling interval */
583  REAL8 m1, /**< mass of companion 1 */
584  REAL8 m2, /**< mass of companion 2 */
585  REAL8 f_min, /**< start frequency */
586  REAL8 r, /**< distance of source */
587  REAL8 i, /**< inclination of source (rad) */
588  int amplitudeO, /**< twice post-Newtonian amplitude order */
589  int phaseO /**< twice post-Newtonian phase order */
590  )
591 {
593  REAL8TimeSeries *phi;
594  int status;
595  int n;
596  n = XLALSimInspiralTaylorEtPNEvolveOrbit(&V, &phi, phic, deltaT, m1, m2, f_min, phaseO);
597  if ( n < 0 )
599  status = XLALSimInspiralPNPolarizationWaveforms(hplus, hcross, V, phi, v0, m1, m2, r, i, amplitudeO);
602  if ( status < 0 )
604  return n;
605 }
606 
607 
608 /**
609  * Driver routine to compute the post-Newtonian inspiral waveform.
610  *
611  * This routine uses the same pN order for phasing and amplitude
612  * (unless the order is -1 in which case the highest available
613  * order is used for both of these -- which might not be the same).
614  *
615  * Constant log term in amplitude set to 1. This is a gauge choice.
616  */
618  REAL8TimeSeries **hplus, /**< +-polarization waveform */
619  REAL8TimeSeries **hcross, /**< x-polarization waveform */
620  REAL8 phic, /**< orbital phase at end */
621  REAL8 deltaT, /**< sampling interval */
622  REAL8 m1, /**< mass of companion 1 */
623  REAL8 m2, /**< mass of companion 2 */
624  REAL8 f_min, /**< start frequency */
625  REAL8 r, /**< distance of source */
626  REAL8 i, /**< inclination of source (rad) */
627  int O /**< twice post-Newtonian order */
628  )
629 {
630  /* set v0 to default value 1 */
631  return XLALSimInspiralTaylorEtPNGenerator(hplus, hcross, phic, 1.0, deltaT, m1, m2, f_min, r, i, O, O);
632 }
633 
634 
635 /**
636  * Driver routine to compute the restricted post-Newtonian inspiral waveform.
637  *
638  * This routine computes the phasing to the specified order, but
639  * only computes the amplitudes to the Newtonian (quadrupole) order.
640  *
641  * Constant log term in amplitude set to 1. This is a gauge choice.
642  */
644  REAL8TimeSeries **hplus, /**< +-polarization waveform */
645  REAL8TimeSeries **hcross, /**< x-polarization waveform */
646  REAL8 phic, /**< orbital phase at end */
647  REAL8 deltaT, /**< sampling interval */
648  REAL8 m1, /**< mass of companion 1 */
649  REAL8 m2, /**< mass of companion 2 */
650  REAL8 f_min, /**< start frequency */
651  REAL8 r, /**< distance of source */
652  REAL8 i, /**< inclination of source (rad) */
653  int O /**< twice post-Newtonian phase order */
654  )
655 {
656  /* use Newtonian order for amplitude */
657  /* set v0 to default value 1 */
658  return XLALSimInspiralTaylorEtPNGenerator(hplus, hcross, phic, 1.0, deltaT, m1, m2, f_min, r, i, 0, O);
659 }
660 
661 /** @} */
662 /** @} */
663 
664 #if 0
665 #include <lal/PrintFTSeries.h>
666 #include <lal/PrintFTSeries.h>
667 int main(void)
668 {
669  LIGOTimeGPS tc = { 888888888, 222222222 };
670  REAL8 phic = 1.0;
671  REAL8 deltaT = 1.0/16384.0;
672  REAL8 m1 = 1.4*LAL_MSUN_SI;
673  REAL8 m2 = 1.4*LAL_MSUN_SI;
674  REAL8 r = 1e6*LAL_PC_SI;
675  REAL8 i = 0.5*LAL_PI;
676  REAL8 f_min = 100.0;
677  int O = -1;
678  REAL8TimeSeries *hplus;
679  REAL8TimeSeries *hcross;
680  XLALSimInspiralTaylorEtPN(&hplus, &hcross, &tc, phic, deltaT, m1, m2, f_min, r, i, O);
681  LALDPrintTimeSeries(hplus, "hp.dat");
682  LALDPrintTimeSeries(hcross, "hc.dat");
686  return 0;
687 }
688 #endif
REAL8 zeta
void LALCheckMemoryLeaks(void)
static REAL8 UNUSED z4(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z6(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z7(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z5(REAL8 UNUSED f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z3(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED XLALSimInspiralTaylorEtVOfZeta_6PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtVOfZeta_4PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_6PNLogCoeff(REAL8 UNUSED eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtPhasing_4PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_4PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_3PNCoeff(REAL8 UNUSED eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtPhasing_0PNCoeff(REAL8 m)
Computes the PN Coefficients for using in the TaylorEt dPhase/dt equation.
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_6PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_0PNCoeff(REAL8 m, REAL8 eta)
Computes the PN Coefficients for using in the TaylorEt dZeta/dt equation.
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_7PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_2PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtPhasing_2PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtZeta_5PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtPhasing_6PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorEtVOfZeta_2PNCoeff(REAL8 eta)
Computes the PN Coefficients for using in the TaylorEt v(zeta) equation, which is the square root of ...
static REAL8 XLALSimInspiralTaylorEtPhasing_2PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_3PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtPhasing_0PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
REAL8() SimInspiralTaylorEtdZeta(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_4PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtVOfZeta_2PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
REAL8() SimInspiralTaylorEtVOfZeta(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtPhasing_6PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_0PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtVOfZeta_6PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtPhasing_4PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static int XLALSimInspiralTaylorEtPNEvolveOrbitIntegrand(double UNUSED t, const double y[], double ydot[], void *params)
static REAL8 XLALSimInspiralTaylorEtPhasingWrapper(REAL8 zeta, void *params)
static REAL8 XLALSimInspiralTaylorEtZeta_2PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_7PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static int XLALSimInspiralTaylorEtSetup(expnCoeffsTaylorEt *ak, expnFuncTaylorEt *f, REAL8 m1, REAL8 m2, int O)
REAL8() SimInspiralTaylorEtdPhase(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_5PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtZeta_6PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtVOfZeta_4PN(REAL8 zeta, expnCoeffsTaylorEt *ak)
static REAL8 XLALSimInspiralTaylorEtVOfZeta_0PN(REAL8 zeta, expnCoeffsTaylorEt UNUSED *ak)
Module containing the energy and flux functions for waveform generation.
int main(int argc, char *argv[])
Definition: bh_qnmode.c:226
int s
Definition: bh_qnmode.c:137
double i
Definition: bh_ringdown.c:118
REAL8 XLALDBisectionFindRoot(REAL8(*y)(REAL8, void *), REAL8 xmin, REAL8 xmax, REAL8 xacc, void *params)
#define LAL_C_SI
#define LAL_MSUN_SI
#define LAL_PI
#define LAL_PC_SI
#define LAL_G_SI
#define LIGOTIMEGPSZERO
double REAL8
uint32_t UINT4
int XLALSimInspiralPNPolarizationWaveforms(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 r, REAL8 i, int ampO)
Given time series for a binary's orbital dynamical variables, construct the waveform polarizations h+...
int XLALSimInspiralTaylorEtPNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phic, REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 r, REAL8 i, int amplitudeO, int phaseO)
Driver routine to compute the post-Newtonian inspiral waveform.
int XLALSimInspiralTaylorEtPNRestricted(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phic, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 r, REAL8 i, int O)
Driver routine to compute the restricted post-Newtonian inspiral waveform.
int XLALSimInspiralTaylorEtPNEvolveOrbit(REAL8TimeSeries **V, REAL8TimeSeries **phi, REAL8 phic, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, int O)
Evolves a post-Newtonian orbit using the Taylor Et method.
int XLALSimInspiralTaylorEtPN(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phic, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 r, REAL8 i, int O)
Driver routine to compute the post-Newtonian inspiral waveform.
void LALDPrintTimeSeries(REAL8TimeSeries *series, const CHAR *filename)
static const INT4 r
static const INT4 m
REAL8TimeSeries * XLALResizeREAL8TimeSeries(REAL8TimeSeries *series, int first, size_t length)
REAL8TimeSeries * XLALCreateREAL8TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
const LALUnit lalDimensionlessUnit
int int int XLALPrintInfo(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_ERROR(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
XLAL_EFUNC
XLAL_EINVAL
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
list p
list y
string status
REAL8Sequence * data
REAL8(* dphase)(REAL8 zeta, expnCoeffsTaylorEt *ak)
XLALSimInspiralTaylorEtPNEvolveOrbitParams * eoparams
SimInspiralTaylorEtdZeta * dzeta
SimInspiralTaylorEtdPhase * dphase
SimInspiralTaylorEtVOfZeta * vOfZeta
Definition: burst.c:245
double V
Definition: unicorn.c:25
double f_min
Definition: unicorn.c:22
double deltaT
Definition: unicorn.c:24