Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALSimulation 6.2.0.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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
50typedef 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
83typedef 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
101static REAL8
103 REAL8 zeta, /**< post-Newtonian parameter */
104 expnCoeffsTaylorEt UNUSED *ak /**< coefficients for TaylorEt evolution */
105 )
106{
107 return sqrt(zeta);
108}
109
110static 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
120static 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
132static 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
157static 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
167static 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
178static 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
191static 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
217static 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
227static 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
238static 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
251static 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
266static 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
282static 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
300static 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
320typedef struct
321{
326
327/*
328 * This function is used in the zeta intialization.
329 */
330typedef struct
331{
335
336static 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 */
349static int
350XLALSimInspiralTaylorEtPNEvolveOrbitIntegrand(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 */
366static 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>
667int 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
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
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)
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 y
string status
p
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