41 #ifndef _LALSIMIMRFACTORIZEDWAVEFORM_C
42 #define _LALSIMIMRFACTORIZEDWAVEFORM_C
45 #define UNUSED __attribute__ ((unused))
54 #define ninty4by3etc 18.687902694437592603
73 return - 5.82827 - 143.486 * eta + 447.045 * eta * eta;
109 coeffs->
n4 = -64. + 12.*
a4 + 4.*a5 + a6 + 64.*eta - 4.*eta2;
110 coeffs->
n5 = 32. -4.*
a4 - a5 - 24.*eta;
111 coeffs->
d0 = 4.*
a4*
a4 + 4.*
a4*a5 + a5*a5 -
a4*a6 + 16.*a6
112 + (32.*
a4 + 16.*a5 - 8.*a6) * eta + 4.*
a4*eta2 + 32.*eta3;
113 coeffs->
d1 = 4.*
a4*
a4 +
a4*a5 + 16.*a5 + 8.*a6 + (32.*
a4 - 2.*a6)*eta + 32.*eta2 + 8.*eta3;
114 coeffs->
d2 = 16.*
a4 + 8.*a5 + 4.*a6 + (8.*
a4 + 2.*a5)*eta + 32.*eta2;
115 coeffs->
d3 = 8.*
a4 + 4.*a5 + 2.*a6 + 32.*eta - 8.*eta2;
116 coeffs->
d4 = 4.*
a4 + 2.*a5 + a6 + 16.*eta - 4.*eta2;
117 coeffs->
d5 = 32. - 4.*
a4 - a5 - 24. * eta;
170 REAL8 NA, DA, dNA, dDA, dA;
187 dNA = 4. * coeffs->n4 * r3
188 + 5. * coeffs->n5 * r4;
191 + 2. * coeffs->d2 *
r
192 + 3. * coeffs->d3 *
r2
193 + 4. * coeffs->d4 * r3
194 + 5. * coeffs->d5 * r4;
196 dA = dNA * DA - dDA * NA;
214 return 1./(1.+6.*eta*
u2+2.*eta*(26.-3.*eta)*
u3);
241 z3 = 2. * ( 4. - 3. * eta ) * eta;
242 return sqrt( pr2 + eoba * ( 1. +
pp2/
r2 +
z3*pr2*pr2/
r2 ) );
261 REAL8 eta2 = eta*eta;
262 REAL8 eta3 = eta2 * eta;
273 REAL8 m1Plus3eta, m1Plus3eta2, m1Plus3eta3;
280 XLALPrintError(
"eta seems to be < 0.25 - this isn't allowed!\n" );
287 m1Plus3eta = - 1. + 3.*eta;
288 m1Plus3eta2 = m1Plus3eta * m1Plus3eta;
289 m1Plus3eta3 = m1Plus3eta * m1Plus3eta2;
304 coeffs->
rho22v2 = -43./42. + (55.*eta)/84.;
305 coeffs->
rho22v3 = (-2.*(chiS + chiA*dM - chiS*eta))/3.;
306 coeffs->
rho22v4 = -20555./10584. + (chiS*chiS + 2.*chiA*chiS*dM + chiA*chiA*dM2)/2.
307 - (33025.*eta)/21168. + (19583.*eta2)/42336.;
309 coeffs->
rho22v6 = 1556919113./122245200. + (89.*
a2)/252. - (48993925.*eta)/9779616.
310 - (6292061.*eta2)/3259872. + (10620745.*eta3)/39118464.
314 coeffs->
rho22v8 = -387216563023./160190110080. + (18353.*
a2)/21168. -
a2*
a2/8.;
316 coeffs->
rho22v10 = -16094530514677./533967033600.;
328 coeffs->
rho21v1 = (-3.*(chiS+chiA/dM))/(4.);
334 coeffs->
rho21v2 = -59./56. + (23.*eta)/84. - 9./32.*
a2;
335 coeffs->
rho21v3 = 1177./672.*
a - 27./128.*a3;
336 coeffs->
rho21v4 = -47009./56448.- (865.*
a2)/1792. - (405.*
a2*
a2)/2048. - (10993.*eta)/14112.
338 coeffs->
rho21v5 = (-98635.*
a)/75264. + (2031.*
a*
a2)/7168. - (1701.*
a2*a3)/8192.;
339 coeffs->
rho21v6 = 7613184941./2607897600.+ (9032393.*
a2)/1806336. + (3897.*
a2*
a2)/16384.
340 - (15309.*a3*a3)/65536.;
342 coeffs->
rho21v7 = (-3859374457.*
a)/1159065600. - (55169.*a3)/16384.
343 + (18603.*
a2*a3)/65536. - (72171.*
a2*
a2*a3)/262144.;
345 coeffs->
rho21v8 = -1168617463883./911303737344.;
347 coeffs->
rho21v10 = -63735873771463./16569158860800.;
357 coeffs->
delta33v5 = - 80897.*eta / 2430.;
359 coeffs->
rho33v2 = -7./6. + (2.*eta)/3.;
360 coeffs->
rho33v3 = (chiS*dM*(-4. + 5.*eta) + chiA*(-4. + 19.*eta))/(6.*dM);
361 coeffs->
rho33v4 = -6719./3960. +
a2/2. - (1861.*eta)/990. + (149.*eta2)/330.;
363 coeffs->
rho33v6 = 3203101567./227026800. + (5.*
a2)/36.;
366 coeffs->
rho33v8 = -57566572157./8562153600.;
370 coeffs->
delta32vh3 = (10. + 33.*eta)/(-15.*m1Plus3eta);
375 coeffs->
rho32v = (4.*chiS*eta)/(-3.*m1Plus3eta);
376 coeffs->
rho32v2 = (-4.*
a2*eta2)/(9.*m1Plus3eta2) + (328. - 1115.*eta
377 + 320.*eta2)/(270.*m1Plus3eta);
378 coeffs->
rho32v3 = (2.*(45.*
a*m1Plus3eta3
379 -
a*eta*(328. - 2099.*eta + 5.*(733. + 20.*
a2)*eta2
380 - 960.*eta3)))/(405.*m1Plus3eta3);
382 + 8050045.*eta - 4725605.*eta2 - 20338960.*eta3
383 + 3085640.*eta2*eta2)/(1603800.*m1Plus3eta2);
385 coeffs->
rho32v6 = 5849948554./940355325. + (488.*
a2)/405.;
387 coeffs->
rho32v8 = -10607269449358./3072140846775.;
398 coeffs->
rho31v2 = -13./18. - (2.*eta)/9.;
399 coeffs->
rho31v3 = (chiA*(-4. + 11.*eta) + chiS*dM*(-4. + 13.*eta))/(6.*dM);
401 - (5.*
a2)/6. - (1685.*eta)/1782. - (829.*eta2)/1782.;
403 coeffs->
rho31v6 = 11706720301./6129723600. - (49.*
a2)/108.;
406 coeffs->
rho31v8 = 2606097992581./4854741091200.;
412 coeffs->
delta44vh3 = (112. + 219.*eta)/(-120.*m1Plus3eta);
415 coeffs->
rho44v2 = (1614. - 5870.*eta + 2625.*eta2)/(1320.*m1Plus3eta);
416 coeffs->
rho44v3 = (chiA*(10. - 39.*eta)*dM + chiS*(10. - 41.*eta
417 + 42.*eta2))/(15.*m1Plus3eta);
419 + 2338945704.*eta - 313857376.*eta2 - 6733146000.*eta3
420 + 1252563795.*eta2*eta2)/(317116800.*m1Plus3eta2);
422 coeffs->
rho44v6 = 16600939332793./1098809712000. + (217.*
a2)/3960.;
427 coeffs->
delta43vh3 = (486. + 4961.*eta)/(810.*(1. - 2.*eta));
431 coeffs->
rho43v = (5.*(chiA - chiS*dM)*eta)/(8.*dM*(-1. + 2.*eta));
432 coeffs->
rho43v2 = (222. - 547.*eta + 160.*eta2)/(176.*(-1. + 2.*eta));
433 coeffs->
rho43v4 = -6894273./7047040. + (3.*
a2)/8.;
434 coeffs->
rho43v5 = (-12113.*
a)/6160.;
435 coeffs->
rho43v6 = 1664224207351./195343948800.;
439 coeffs->
delta42vh3 = (7.*(1. + 6.*eta))/(-15.*m1Plus3eta);
442 coeffs->
rho42v2 = (1146. - 3530.*eta + 285.*eta2)/(1320.*m1Plus3eta);
443 coeffs->
rho42v3 = (chiA*(10. - 21.*eta)*dM + chiS*(10. - 59.*eta
444 + 78.*eta2))/(15.*m1Plus3eta);
445 coeffs->
rho42v4 =
a2/2. + (-114859044. + 295834536.*eta + 1204388696.*eta2 - 3047981160.*eta3
446 - 379526805.*eta2*eta2)/(317116800.*m1Plus3eta2);
448 coeffs->
rho42v6 = 848238724511./219761942400. + (2323.*
a2)/3960.;
453 coeffs->
delta41vh3 = (2. + 507.*eta)/(10.*(1. - 2.*eta));
457 coeffs->
rho41v = (5.*(chiA - chiS*dM)*eta)/(8.*dM*(-1. + 2.*eta));
458 coeffs->
rho41v2 = (602. - 1385.*eta + 288.*eta2)/(528.*(-1. + 2.*eta));
459 coeffs->
rho41v4 = -7775491./21141120. + (3.*
a2)/8.;
460 coeffs->
rho41v5 = (-20033.*
a)/55440. - (5*
a*
a2)/6.;
461 coeffs->
rho41v6 = 1227423222031./1758095539200.;
468 coeffs->
delta55vh3 = (96875. + 857528.*eta)/(131250.*(1 - 2*eta));
470 coeffs->
rho55v2 = (487. - 1298.*eta + 512.*eta2)/(390.*(-1. + 2.*eta));
472 coeffs->
rho55v4 = -3353747./2129400. +
a2/2.;
473 coeffs->
rho55v5 = - 241. *
a / 195.;
479 coeffs->
rho54v2 = (-17448. + 96019.*eta - 127610.*eta2
480 + 33320.*eta3)/(13650.*(1. - 5.*eta + 5.*eta2));
482 coeffs->
rho54v4 = -16213384./15526875. + (2.*
a2)/5.;
488 coeffs->
rho53v2 = (375. - 850.*eta + 176.*eta2)/(390.*(-1. + 2.*eta));
490 coeffs->
rho53v4 = -410833./709800. +
a2/2.;
497 coeffs->
rho52v2 = (-15828. + 84679.*eta - 104930.*eta2
498 + 21980.*eta3)/(13650.*(1. - 5.*eta + 5.*eta2));
500 coeffs->
rho52v4 = -7187914./15526875. + (2.*
a2)/5.;
506 coeffs->
rho51v2 = (319. - 626.*eta + 8.*eta2)/(390.*(-1. + 2.*eta));
508 coeffs->
rho51v4 = -31877./304200. +
a2/2.;
516 coeffs->
rho66v2 = (-106. + 602.*eta - 861.*eta2
517 + 273.*eta3)/(84.*(1. - 5.*eta + 5.*eta2));
519 coeffs->
rho66v4 = -1025435./659736. +
a2/2.;
525 coeffs->
rho65v2 = (-185. + 838.*eta - 910.*eta2
526 + 220.*eta3)/(144.*(dM2 + 3.*eta2));
532 coeffs->
rho64v2 = (-86. + 462.*eta - 581.*eta2
533 + 133.*eta3)/(84.*(1. - 5.*eta + 5.*eta2));
535 coeffs->
rho64v4 = -476887./659736. +
a2/2.;
541 coeffs->
rho63v2 = (-169. + 742.*eta - 750.*eta2
542 + 156.*eta3)/(144.*(dM2 + 3.*eta2));
548 coeffs->
rho62v2 = (-74. + 378.*eta - 413.*eta2
549 + 49.*eta3)/(84.*(1. - 5.*eta + 5.*eta2));
551 coeffs->
rho62v4 = -817991./3298680. +
a2/2.;
557 coeffs->
rho61v2 = (-161. + 694.*eta - 670.*eta2
558 + 124.*eta3)/(144.*(dM2 + 3.*eta2));
567 coeffs->
rho77v2 = (-906. + 4246.*eta - 4963.*eta2
568 + 1380.*eta3)/(714.*(dM2 + 3.*eta2));
572 coeffs->
rho76v2 = (2144. - 16185.*eta + 37828.*eta2 - 29351.*eta3
573 + 6104.*eta2*eta2) / (1666.*(-1 + 7*eta - 14*eta2
580 coeffs->
rho75v2 = (-762. + 3382.*eta - 3523.*eta2
581 + 804.*eta3)/(714.*(dM2 + 3.*eta2));
585 coeffs->
rho74v2 = (17756. - 131805.*eta + 298872.*eta2 - 217959.*eta3
586 + 41076.*eta2*eta2) / (14994.*(-1. + 7.*eta - 14.*eta2
593 coeffs->
rho73v2 = (-666. + 2806.*eta - 2563.*eta2
594 + 420.*eta3)/(714.*(dM2 + 3.*eta2));
598 coeffs->
rho72v2 = (16832. - 123489.*eta + 273924.*eta2 - 190239.*eta3
599 + 32760.*eta2*eta2) /(14994.*(-1. + 7.*eta - 14.*eta2
606 coeffs->
rho71v2 = (-618. + 2518.*eta - 2083.*eta2
607 + 228.*eta3)/(714.*(dM2 + 3.*eta2));
613 coeffs->
rho88v2 = (3482. - 26778.*eta + 64659.*eta2 - 53445.*eta3
614 + 12243.*eta2*eta2) / (2736.*(-1. + 7.*eta - 14.*eta2
619 coeffs->
rho87v2 = (23478. - 154099.*eta + 309498.*eta2 - 207550.*eta3
620 + 38920*eta2*eta2) / (18240.*(-1 + 6*eta - 10*eta2
624 coeffs->
rho86v2 = (1002. - 7498.*eta + 17269.*eta2 - 13055.*eta3
625 + 2653.*eta2*eta2) / (912.*(-1. + 7.*eta - 14.*eta2
630 coeffs->
rho85v2 = (4350. - 28055.*eta + 54642.*eta2 - 34598.*eta3
631 + 6056.*eta2*eta2) / (3648.*(-1. + 6.*eta - 10.*eta2
635 coeffs->
rho84v2 = (2666. - 19434.*eta + 42627.*eta2 - 28965.*eta3
636 + 4899.*eta2*eta2) / (2736.*(-1. + 7.*eta - 14.*eta2
641 coeffs->
rho83v2 = (20598. - 131059.*eta + 249018.*eta2 - 149950.*eta3
642 + 24520.*eta2*eta2) / (18240.*(-1. + 6.*eta - 10.*eta2
646 coeffs->
rho82v2 = (2462. - 17598.*eta + 37119.*eta2 - 22845.*eta3
647 + 3063.*eta2*eta2) / (2736.*(-1. + 7.*eta - 14.*eta2
652 coeffs->
rho81v2 = (20022. - 126451.*eta + 236922.*eta2 - 138430.*eta3
653 + 21640.*eta2*eta2) / (18240.*(-1. + 6.*eta - 10.*eta2
708 REAL8 r = values->data[0];
709 REAL8 pphi = values->data[3];
714 return 2. * (1. + 2. * eta * ( -1. + sqrt( (1. + pphi*pphi/(
r*
r)) * A ) ) )
740 REAL8 r,
pr,
pp, Omega, v2, vh, vh3, k, hathatk, eulerlogxabs;
741 REAL8 Hreal, Heff, Slm, deltalm, rholm, rholmPwrl;
744 gsl_sf_result lnr1, arg1,
z2;
763 XLALPrintError(
"Eta seems to be > 0.25 - this isn't allowed!\n" );
766 else if ( eta == 0.25 &&
m % 2 )
774 pr = values->data[2];
775 pp = values->data[3];
778 Hreal = sqrt( 1.0 + 2.0 * eta * ( Heff - 1.0) );
792 vPhi =
r * cbrt(vPhi);
805 if ( ( (
l+
m)%2 ) == 0)
818 if (
status != GSL_SUCCESS)
824 if (
status != GSL_SUCCESS)
829 Tlm = cexp( ( lnr1.val +
LAL_PI * hathatk ) + I * (
830 arg1.val + 2.0 * hathatk * log(4.0*k/sqrt(
LAL_E)) ) );
854 rholm = 1. + v*(hCoeffs->
rho21v1
879 rholm = 1. + v*(hCoeffs->
rho32v
903 rholm = 1. + v2*(hCoeffs->
rho44v2
906 + hCoeffs->
rho44v6l*eulerlogxabs)*v))));
911 rholm = 1. + v*(hCoeffs->
rho43v
918 rholm = 1. + v2*(hCoeffs->
rho42v2
925 rholm = 1. + v*(hCoeffs->
rho41v
940 rholm = 1. + v2*( hCoeffs->
rho55v2
951 rholm = 1. + v2*(hCoeffs->
rho53v2
961 rholm = 1. + v2*(hCoeffs->
rho51v2
1013 rholm = 1. + hCoeffs->
rho76v2 * v2;
1021 rholm = 1. + hCoeffs->
rho74v2 * v2;
1029 rholm = 1. + hCoeffs->
rho72v2 * v2;
1045 rholm = 1. + hCoeffs->
rho88v2 * v2;
1049 rholm = 1. + hCoeffs->
rho87v2 * v2;
1053 rholm = 1. + hCoeffs->
rho86v2 * v2;
1057 rholm = 1. + hCoeffs->
rho85v2 * v2;
1061 rholm = 1. + hCoeffs->
rho84v2 * v2;
1065 rholm = 1. + hCoeffs->
rho83v2 * v2;
1069 rholm = 1. + hCoeffs->
rho82v2 * v2;
1073 rholm = 1. + hCoeffs->
rho81v2 * v2;
1093 *hlm = Tlm * cexp(I * deltalm) * Slm * rholmPwrl;
static UNUSED int XLALSimIMREOBCalculateNewtonianMultipole(COMPLEX16 *multipole, REAL8 x, UNUSED REAL8 r, REAL8 phi, UINT4 l, INT4 m, EOBParams *params)
This function calculates the Newtonian multipole part of the factorized waveform for the EOBNRv2 mode...
static REAL8 UNUSED z3(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
static REAL8 UNUSED z2(REAL8 e0, REAL8 f0, REAL8 inc, REAL8 bet, REAL8 FPlus, REAL8 FCross)
Module containing the energy and flux functions for waveform generation.
#define XLAL_CALLGSL(statement)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
Structure containing the coefficients for EOBNRv2 A potential function.
Structure containing all the parameters needed for the EOB waveform.