33 #ifndef _LALSIMIMRSPINEOBHAMILTONIAN_C
34 #define _LALSIMIMRSPINEOBHAMILTONIAN_C
39 #include <lal/LALSimInspiral.h>
40 #include <lal/LALSimIMR.h>
48 #define TwoToOneThird 1.25992104989487316476721060728
49 #define ThreeToOneThird 1.44224957030740838232163831078
53 static const double sqrt_pi_2 = 1.2533141373155002512078826424;
54 static const double sqrt_2_pi = 0.7978845608028653558798921199;
55 static const double _1_sqrt_2pi = 0.3989422804014326779399460599;
56 static const double pi_2 = 1.5707963267948966192313216916;
60 0.76435138664186000189,
61 -0.43135547547660179313,
62 0.43288199979726653054,
63 -0.26973310338387111029,
64 0.08416045320876935378,
65 -0.01546524484461381958,
66 0.00187855423439822018,
67 -0.00016264977618887547,
68 0.00001057397656383260,
69 -0.00000053609339889243,
70 0.00000002181658454933,
71 -0.00000000072901621186,
72 0.00000000002037332546,
73 -0.00000000000048344033,
74 0.00000000000000986533,
75 -0.00000000000000017502,
76 0.00000000000000000272,
77 -0.00000000000000000004
86 0.63041404314570539241,
87 -0.42344511405705333544,
88 0.37617172643343656625,
89 -0.16249489154509567415,
90 0.03822255778633008694,
91 -0.00564563477132190899,
92 0.00057454951976897367,
93 -0.00004287071532102004,
94 0.00000245120749923299,
95 -0.00000011098841840868,
96 0.00000000408249731696,
97 -0.00000000012449830219,
98 0.00000000000320048425,
99 -0.00000000000007032416,
100 0.00000000000000133638,
101 -0.00000000000000002219,
102 0.00000000000000000032,
112 double xx = 2.0*x_8*x_8 - 1.0;
116 double ot2 = 2.0*x_8*t1 - ot1;
123 for (n=2; n < 18; n++)
128 ot2 = 2.0*x_8*t2 - ot1;
132 double sqrtx=sqrt(
x);
139 0.97462779093296822410,
140 -0.02424701873969321371,
141 0.00103400906842977317,
142 -0.00008052450246908016,
143 0.00000905962481966582,
144 -0.00000131016996757743,
145 0.00000022770820391497,
146 -0.00000004558623552026,
147 0.00000001021567537083,
148 -0.00000000251114508133,
149 0.00000000066704761275,
150 -0.00000000018931512852,
151 0.00000000005689898935,
152 -0.00000000001798219359,
153 0.00000000000594162963,
154 -0.00000000000204285065,
155 0.00000000000072797580,
156 -0.00000000000026797428,
157 0.00000000000010160694,
158 -0.00000000000003958559,
159 0.00000000000001581262,
160 -0.00000000000000646411,
161 0.00000000000000269981,
162 -0.00000000000000115038,
163 0.00000000000000049942,
164 -0.00000000000000022064,
165 0.00000000000000009910,
166 -0.00000000000000004520,
167 0.00000000000000002092,
168 -0.00000000000000000982,
169 0.00000000000000000467,
170 -0.00000000000000000225,
171 0.00000000000000000110,
172 -0.00000000000000000054,
173 0.00000000000000000027,
174 -0.00000000000000000014,
175 0.00000000000000000007,
176 -0.00000000000000000004,
177 0.00000000000000000002,
178 -0.00000000000000000001,
179 0.00000000000000000001
184 0.99461545179407928910,
185 -0.00524276766084297210,
186 0.00013325864229883909,
187 -0.00000770856452642713,
188 0.00000070848077032045,
189 -0.00000008812517411602,
190 0.00000001359784717148,
191 -0.00000000246858295747,
192 0.00000000050925789921,
193 -0.00000000011653400634,
194 0.00000000002906578309,
195 -0.00000000000779847361,
196 0.00000000000222802542,
197 -0.00000000000067239338,
198 0.00000000000021296411,
199 -0.00000000000007041482,
200 0.00000000000002419805,
201 -0.00000000000000861080,
202 0.00000000000000316287,
203 -0.00000000000000119596,
204 0.00000000000000046444,
205 -0.00000000000000018485,
206 0.00000000000000007527,
207 -0.00000000000000003131,
208 0.00000000000000001328,
209 -0.00000000000000000574,
210 0.00000000000000000252,
211 -0.00000000000000000113,
212 0.00000000000000000051,
213 -0.00000000000000000024,
214 0.00000000000000000011,
215 -0.00000000000000000005,
216 0.00000000000000000002,
217 -0.00000000000000000001,
218 0.00000000000000000001
227 double xx = 128.0/(
x*
x) - 1.0;
234 double cosx = cos(
x);
235 double sinx = sin(
x);
236 double oneoversqrtx = 1.0/sqrt(
x);
237 double oneoverx = oneoversqrtx*oneoversqrtx;
238 for(n = 2; n < 35; n++)
245 for(n = 35; n < 41; n++)
282 return x2*( 1./(x2 - 1.) + 5./6./(1. - x5_3));
288 return 2.*
x*( -1./(x2 - 1.)/(x2 - 1.) + 5./6.*(1. - 1./6.*x5_3)/(1. - x5_3)/(1. - x5_3));
295 -0.006944444444444445,
297 -0.007120198902606311
303 for(
int i=0;
i<5;
i++) {
312 -0.01388888888888889,
314 -0.02848079561042524,
321 for(
int i=0;
i<5;
i++) {
361 SpinAlignedEOBversion);
413 XLALPrintError(
"XLAL Error - %s: mode number l must be 2 or 3!\n", __func__);
419 REAL8 Omega = pow(
u, 1.5);
422 REAL8 x5_3 = pow(
x, 5./3.);
423 REAL8 sqrtepsm = sqrt(256./5.*eta*pow(w0l/
m, 5./3.));
424 REAL8 that = 8./5./sqrtepsm * (1. - x5_3);
425 REAL8 argcossin = 3./8.*that*that;
429 if(fabs(
x-1.)>1
e-2) {
438 REAL8 fresnelS = fres[0];
439 REAL8 fresnelC = fres[1];
440 REAL8 fresnelterm = sqrt(
LAL_PI/3.)/sqrtepsm * x2*((1. + 2.*fresnelS)*cos(argcossin) - (1. + 2.*fresnelC)*sin(argcossin));
441 REAL8 klTidaleff = al + bl*(resonantterm + fresnelterm);
475 XLALPrintError(
"XLAL Error - %s: mode number l must be 2 or 3!\n", __func__);
481 REAL8 Omega = pow(
u, 1.5);
485 REAL8 x5_3 = pow(
x, 5./3.);
486 REAL8 sqrtepsm = sqrt(256./5.*eta*pow(w0l/
m, 5./3.));
487 REAL8 that = 8./5./sqrtepsm * (1. - x5_3);
488 REAL8 that_u = -8./3./sqrtepsm * x5_3/
x * x_u;
489 REAL8 argcossin = 3./8.*that*that;
490 REAL8 argcossin_u = 3./4.*that*that_u;
493 REAL8 resonantterm, resonantterm_u;
494 if(fabs(
x-1.)>1
e-2) {
505 REAL8 fresnelS = fres[0];
506 REAL8 fresnelC = fres[1];
507 REAL8 fresnelterm = sqrt(
LAL_PI/3.)/sqrtepsm * x2*((1. + 2.*fresnelS)*cos(argcossin) - (1. + 2.*fresnelC)*sin(argcossin));
508 REAL8 fresnelterm_u = sqrt(
LAL_PI/3.)/sqrtepsm * (2.*
x*x_u*((1. + 2.*fresnelS)*cos(argcossin) - (1. + 2.*fresnelC)*sin(argcossin)) - x2*argcossin_u*((1. + 2.*fresnelS)*sin(argcossin) + (1. + 2.*fresnelC)*cos(argcossin)));
509 REAL8 klTidaleff = al + bl*(resonantterm + fresnelterm);
510 REAL8 klTidaleff_u = bl*(resonantterm_u + fresnelterm_u);
527 REAL8 lambda2TidalNS,
531 return - 3.*XCompanion/XNS*lambda2TidalNS*k2TidalNSeff*u6* ( 1. + 5./2.*
u*XNS +
u2*(3. + XNS/8. + 337./28.*XNS*XNS) );
544 REAL8 lambda2TidalNS,
550 return (6./
u + ( 5./2.*XNS + 2.*
u*(3. + XNS/8. + 337./28.*XNS*XNS) )/( 1. + 5./2.*
u*XNS +
u2*(3. + XNS/8. + 337./28.*XNS*XNS) ) + k2TidalNSeff_u/k2TidalNSeff)*deltaUQSingle;
567 REAL8 k2Tidal1eff = 0.;
568 REAL8 k2Tidal2eff = 0.;
594 REAL8 k2Tidal1eff = 0.;
595 REAL8 k2Tidal2eff = 0.;
596 REAL8 k2Tidal1eff_u = 0.;
597 REAL8 k2Tidal2eff_u = 0.;
598 REAL8 deltaUQ_u = 0.;
600 REAL8 k2Tidal1eff_and_k2Tidal1eff[2];
602 k2Tidal1eff = k2Tidal1eff_and_k2Tidal1eff[0];
603 k2Tidal1eff_u = k2Tidal1eff_and_k2Tidal1eff[1];
607 REAL8 k2Tidal2eff_and_k2Tidal2eff[2];
609 k2Tidal2eff = k2Tidal2eff_and_k2Tidal2eff[0];
610 k2Tidal2eff_u = k2Tidal2eff_and_k2Tidal2eff[1];
627 REAL8 lambda3TidalNS,
631 return - 15.*XCompanion/XNS*lambda3TidalNS*k3TidalNSeff*u8* (1. +
u*(15./2.*XNS - 2.) +
u2*(8./3. - 311./24.*XNS + 110./3.*XNS*XNS) );
644 REAL8 lambda3TidalNS,
650 return (8./
u + ((15./2.*XNS - 2.) + 2.*
u*(8./3. - 311./24.*XNS + 110./3.*XNS*XNS) )/(1. +
u*(15./2.*XNS - 2.) +
u2*(8./3. - 311./24.*XNS + 110./3.*XNS*XNS) ) + k3TidalNSeff_u/k3TidalNSeff)*deltaUOSingle;
666 REAL8 k3Tidal1eff = 0.;
667 REAL8 k3Tidal2eff = 0.;
693 REAL8 k3Tidal1eff = 0.;
694 REAL8 k3Tidal2eff = 0.;
695 REAL8 k3Tidal1eff_u = 0.;
696 REAL8 k3Tidal2eff_u = 0.;
697 REAL8 deltaUO_u = 0.;
702 k3Tidal1eff_u =
output[1];
710 k3Tidal2eff_u =
output[1];
736 return deltaUQ + deltaUO;
753 REAL8 deltaUO_u = 0.;
758 return deltaUQ_u + deltaUO_u;
781 REAL8 s1_x = s1Vec->data[0];
782 REAL8 s1_y = s1Vec->data[1];
783 REAL8 s1_z = s1Vec->data[2];
784 REAL8 s2_x = s2Vec->data[0];
785 REAL8 s2_y = s2Vec->data[1];
786 REAL8 s2_z = s2Vec->data[2];
789 REAL8 s1s1 = s1_x * s1_x + s1_y * s1_y + s1_z * s1_z;
790 REAL8 s2s2 = s2_x * s2_x + s2_y * s2_y + s2_z * s2_z;
793 deltaHss = 0.5 *
u3 / eta * ((quadparam1 - 1.) * m2ByM/m1ByM * (3. * s1n*s1n - s1s1) + (quadparam2 - 1.) * m1ByM/m2ByM * (3. * s2n*s2n - s2s2));
833 REAL8 sKerr_x, sKerr_y, sKerr_z,
a,
a2;
834 REAL8 sStar_x, sStar_y, sStar_z;
835 REAL8 e3_x, e3_y, e3_z;
842 REAL8 D,
qq,
ww,
B,
w, MU, nu,
BR,
wr,
nur,
mur;
845 REAL8 deltaSigmaStar_x, deltaSigmaStar_y, deltaSigmaStar_z;
867 x->data[0] *
x->data[0] +
x->data[1] *
x->data[1] +
868 x->data[2] *
x->data[2];
874 sKerr_x = sigmaKerr->data[0];
875 sKerr_y = sigmaKerr->data[1];
876 sKerr_z = sigmaKerr->data[2];
878 sStar_x = sigmaStar->data[0];
879 sStar_y = sigmaStar->data[1];
880 sStar_z = sigmaStar->data[2];
882 a2 = sKerr_x * sKerr_x + sKerr_y * sKerr_y + sKerr_z * sKerr_z;
902 xi_x = -e3_z *
ny + e3_y *
nz;
903 xi_y = e3_z *
nx - e3_x *
nz;
904 xi_z = -e3_y *
nx + e3_x *
ny;
906 vx = -
nz * xi_y +
ny * xi_z;
907 vy =
nz * xi_x -
nx * xi_z;
908 vz = -
ny * xi_x +
nx * xi_y;
925 1. + eta * coeffs->
k0 + eta * log (1. + coeffs->
k1 *
u + coeffs->
k2 *
u2 +
928 coeffs->
k5l *
u5 * log (
u));
942 u * (2. * coeffs->
k2 +
943 u * (3. * coeffs->
k3 +
944 u * (4. * coeffs->
k4 +
946 coeffs->
k5l * log (
u)) *
u))))) / (1. +
968 deltaT_r = 2. *
r *
deltaU - deltaU_u;
972 D = 1. + log (1. + 6. * eta *
u2 + 2. * (26. - 3. * eta) * eta *
u3);
976 qq = 2. * eta * (4. - 3. * eta);
978 ww = 2. *
a *
r + coeffs->
b3 * eta *
a2 *
a *
u + coeffs->
bb3 * eta *
a *
u;
991 prT =
p->data[0] *
nx +
p->data[1] *
ny +
p->data[2] *
nz;
997 pxir = (tmpP[0] * xi_x + tmpP[1] * xi_y + tmpP[2] * xi_z) *
r;
998 pvr = (tmpP[0] *
vx + tmpP[1] *
vy + tmpP[2] *
vz) *
r;
999 pn = tmpP[0] *
nx + tmpP[1] *
ny + tmpP[2] *
nz;
1028 MU = 0.5 * log (
rho2);
1030 Lambda_r = 4. *
r *
w2 -
a2 * deltaT_r *
xi2;
1033 2. *
a - (
a2 *
a * coeffs->
b3 * eta) *
u2 - coeffs->
bb3 * eta *
a *
u2;
1070 eta * (-8. * sKerr_x - 36. *
pn2 *
r * sKerr_x + 3. *
pp *
r * sKerr_x +
1071 14. * sStar_x - 30. *
pn2 *
r * sStar_x +
1072 4. *
pp *
r * sStar_x) / (12. *
r);
1075 eta * (-8. * sKerr_y - 36. *
pn2 *
r * sKerr_y + 3. *
pp *
r * sKerr_y +
1076 14. * sStar_y - 30. *
pn2 *
r * sStar_y +
1077 4. *
pp *
r * sStar_y) / (12. *
r);
1080 eta * (-8. * sKerr_z - 36. *
pn2 *
r * sKerr_z + 3. *
pp *
r * sKerr_z +
1081 14. * sStar_z - 30. *
pn2 *
r * sStar_z +
1082 4. *
pp *
r * sStar_z) / (12. *
r);
1122 -(2. * eta * (-353. + 27. * eta) +
1123 2. * (103. * eta - 60. * eta * eta) *
pp *
r +
1124 120. * (-3. * eta * eta) *
pn2 *
pn2 *
r *
r +
1125 (eta * (23. + 3. * eta)) *
pp *
pp *
r *
r +
1126 6. *
pn2 *
r * (-47. * eta + 54. * eta * eta +
1128 21. * eta * eta) *
pp *
r)) / (72. *
r *
r);
1140 (-16. * (7. * eta * (8. + 3. * eta)) +
1141 4. * (-109. * eta + 51. * eta * eta) *
pp *
r +
1142 810. * eta * eta *
pn2 *
pn2 *
r *
r - 45. * eta *
pp *
pp *
r *
r -
1143 6. *
pn2 *
r * (16. * eta + 147. * eta * eta +
1145 39. * eta * eta) *
pp *
r)) / (144. *
r *
r);
1155 deltaSigmaStar_x += coeffs->
d1 * eta * sigmaStar->data[0] / (
r *
r *
r);
1156 deltaSigmaStar_y += coeffs->
d1 * eta * sigmaStar->data[1] / (
r *
r *
r);
1157 deltaSigmaStar_z += coeffs->
d1 * eta * sigmaStar->data[2] / (
r *
r *
r);
1158 deltaSigmaStar_x += coeffs->
d1v2 * eta * sigmaKerr->data[0] / (
r *
r *
r);
1159 deltaSigmaStar_y += coeffs->
d1v2 * eta * sigmaKerr->data[1] / (
r *
r *
r);
1160 deltaSigmaStar_z += coeffs->
d1v2 * eta * sigmaKerr->data[2] / (
r *
r *
r);
1166 sx = sStar_x + deltaSigmaStar_x;
1167 sy = sStar_y + deltaSigmaStar_y;
1168 sz = sStar_z + deltaSigmaStar_z;
1171 sxi =
sx * xi_x +
sy * xi_y +
sz * xi_z;
1175 s3 =
sx * e3_x +
sy * e3_y +
sz * e3_z;
1178 (exp (-3. * MU - nu) * sqrt (
deltaR) *
1181 B *
B *
xi2 * (exp (2. * MU) * (sqrt (
Q) +
Q) *
sv +
1188 (exp (-3. * MU - nu) *
1190 (-(exp (2. * (MU + nu)) *
pxir *
pxir) +
1191 B *
B * (
pvr *
pvr - exp (2. * MU) * (sqrt (
Q) +
Q) *
xi2)) -
1200 (exp (-MU + 2. * nu) * (-
B + exp (MU + nu)) *
pxir *
s3) / (
B *
B *
1205 (exp (-2. * MU + nu) *
1207 (-(
BR * exp (MU + nu) *
pxir * (1. + sqrt (
Q)) *
sv) +
1208 B * (exp (MU + nu) *
nur *
pxir * (1. + 2. * sqrt (
Q)) *
sv +
1228 coeffs->
dheffSS * eta * (sKerr_x * sStar_x + sKerr_y * sStar_y +
1229 sKerr_z * sStar_z) / (
r *
r *
r *
r);
1236 * (s1Vec->data[0] * s1Vec->data[0] + s1Vec->data[1] * s1Vec->data[1] +
1237 s1Vec->data[2] * s1Vec->data[2] + s2Vec->data[0] * s2Vec->data[0] +
1238 s2Vec->data[1] * s2Vec->data[1] + s2Vec->data[2] * s2Vec->data[2]);
1242 Hreal = sqrt (1. + 2. * eta * (
H - 1.));
1266 const UINT4 SpinAlignedEOBversion
1277 static const REAL8 c0 = 1.4467;
1278 static const REAL8 c1 = -1.7152360250654402;
1279 static const REAL8 c2 = -3.246255899738242;
1281 static const REAL8 c20 = 1.712;
1282 static const REAL8 c21 = -1.803949138004582;
1283 static const REAL8 c22 = -39.77229225266885;
1284 static const REAL8 c23 = 103.16588921239249;
1294 coeffs->
KK = KK =
c0 +
c1 * eta +
c2 * eta * eta;
1295 if (SpinAlignedEOBversion == 2)
1298 c20 + c21 * eta + c22 * eta * eta + c23 * eta * eta * eta;
1301 REAL8 chi =
a / (1. - 2. * eta);
1302 REAL8 eta2 = eta * eta, eta3 = eta2 * eta;
1303 REAL8 chi2 = chi * chi, chi3 = chi2 * chi;
1305 if (SpinAlignedEOBversion == 4)
1316 m1PlusEtaKK = -1. + eta * KK;
1318 coeffs->
k0 =
k0 = KK * (m1PlusEtaKK - 1.);
1319 coeffs->
k1 =
k1 = -2. * (
k0 + KK) * m1PlusEtaKK;
1323 (
k1 * (
k1 - 4. * m1PlusEtaKK)) / 2. -
1324 a *
a *
k0 * m1PlusEtaKK * m1PlusEtaKK;
1328 * m1PlusEtaKK -
a *
a *
k1 * m1PlusEtaKK * m1PlusEtaKK;
1331 64. *
k1 *
k1 *
k1 * m1PlusEtaKK + 48. *
a *
a * (
k1 *
k1 -
1333 m1PlusEtaKK * m1PlusEtaKK + 96. *
k1 * (
k3 + 2. *
k2 * m1PlusEtaKK) -
1334 m1PlusEtaKK * (192. *
k3 +
1335 m1PlusEtaKK * (-3008. + 123. *
LAL_PI *
LAL_PI))) / 96.;
1336 coeffs->
k5 =
k5 = 0.0;
1337 coeffs->
k5l = k5l = 0.0;
1338 if (SpinAlignedEOBversion == 2)
1340 coeffs->
k5 =
k5 = m1PlusEtaKK * m1PlusEtaKK
1341 * (-4237. / 60. + 128. / 5. *
LAL_GAMMA +
1345 (k1p3 * k1p2 - 5. * k1p3 *
k2 + 5. *
k1 *
k2 *
k2 +
1346 5. * k1p2 *
k3 - 5. *
k2 *
k3 -
1347 5. *
k1 *
k4) / 5. / m1PlusEtaKK / m1PlusEtaKK + (k1p2 * k1p2 -
1352 m1PlusEtaKK + 256. / 5. * log (2.));
1353 coeffs->
k5l = k5l = m1PlusEtaKK * m1PlusEtaKK * 64. / 5.;
1355 if (SpinAlignedEOBversion == 4)
1358 coeffs->
k5 =
k5 = m1PlusEtaKK * m1PlusEtaKK
1359 * (-4237. / 60. + 128. / 5. *
LAL_GAMMA +
1363 (k1p3 * k1p2 - 5. * k1p3 *
k2 + 5. *
k1 *
k2 *
k2 +
1364 5. * k1p2 *
k3 - 5. *
k2 *
k3 -
1365 5. *
k1 *
k4) / 5. / m1PlusEtaKK / m1PlusEtaKK + (k1p2 * k1p2 -
1370 m1PlusEtaKK + 256. / 5. * log (2.) + (41. *
LAL_PI *
LAL_PI / 32. -
1372 coeffs->
k5l = k5l = m1PlusEtaKK * m1PlusEtaKK * 64. / 5.;
1379 coeffs->
d1 = coeffs->
d1v2 = 0.0;
1381 switch (SpinAlignedEOBversion)
1388 coeffs->
d1v2 = -74.71 - 156. * eta + 627.5 * eta * eta;
1389 coeffs->
dheffSSv2 = 8.127 - 154.2 * eta + 830.8 * eta * eta;
1411 (
"XLAL Error - %s: wrong SpinAlignedEOBversion value, must be 1 or 2!\n",
1459 1. + eta * coeffs->
k0 + eta * log (1. + coeffs->
k1 *
u + coeffs->
k2 *
u2 +
1460 coeffs->
k3 *
u3 + coeffs->
k4 *
u4 +
1462 coeffs->
k5l *
u5 * log (
u));
1505 D = 1. + log (1. + 6. * eta *
u2 + 2. * (26. - 3. * eta) * eta *
u3);
1531 REAL8 cartValues[6];
1543 params.values = cartValues;
1551 memset (cartValues, 0,
sizeof (cartValues));
1552 cartValues[0] =
r = values[0];
1553 cartValues[3] = values[2];
1554 cartValues[4] = values[3] / values[0];
1559 XLAL_CALLGSL (gslStatus = gsl_deriv_central (&F, cartValues[4],
1560 STEP_SIZE, &omega, &absErr));
1562 if (gslStatus != GSL_SUCCESS)
1564 XLALPrintError (
"XLAL Error - %s: Failure in GSL function\n", __func__);
1594 memcpy (tmpValues, values,
sizeof (tmpValues));
1603 r3 = values[0] * values[0] * values[0];
1605 return 1.0 / (omegaCirc * omegaCirc * r3);
1632 memcpy (tmpValues, values,
sizeof (tmpValues));
1634 sqrt (values[0] * values[0] + values[1] * values[1] +
1635 values[2] * values[2]);
1638 tmpValues[3] = sqrt ((values[0] * values[4] - values[1] * values[3])
1639 * (values[0] * values[4] - values[1] * values[3])
1640 + (values[2] * values[3] - values[0] * values[5])
1641 * (values[2] * values[3] - values[0] * values[5])
1642 + (values[1] * values[5] - values[2] * values[4])
1643 * (values[1] * values[5] - values[2] * values[4]));
1651 r3 = tmpValues[0] * tmpValues[0] * tmpValues[0];
1653 return 1.0 / (omegaCirc * omegaCirc * r3);
1676 memcpy (tmpVec, dParams->
values, sizeof (tmpVec));
1682 r.length =
p.length = 3;
1684 p.data = tmpVec + 3;
1687 sigmaKerr, sigmaStar,
static double df_keffresonant_pert(REAL8 x)
static REAL8 XLALSimIMRTEOBdeltaUTidalOctuSingleNS_u(REAL8 u, REAL8 u2, REAL8 u8, REAL8 XNS, REAL8 XCompanion, REAL8 lambda3TidalNS, REAL8 k3TidalNSeff, REAL8 k3TidalNSeff_u)
Function to compute the u-derivative of the octupolar tidal contribution to the EOB Delta_u potential...
static const double f_data_b2[18]
static REAL8 XLALSimIMRTEOBdeltaUTidal_u(REAL8 u, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the u-derivative of the tidal contribution to the EOB Delta_u potential.
static int XLALSimIMRCalculateSpinEOBHCoeffs(SpinEOBHCoeffs *coeffs, const REAL8 eta, const REAL8 a, const UINT4 SpinAlignedEOBversion)
This function is used to calculate some coefficients which will be used in the spinning EOB Hamiltoni...
static REAL8 XLALSimIMRTEOBdeltaUTidalOctuSingleNS(REAL8 u, REAL8 u2, REAL8 u8, REAL8 XNS, REAL8 XCompanion, REAL8 lambda3TidalNS, REAL8 k3TidalNSeff)
Function to compute the octupolar tidal contribution to the EOB Delta_u potential for just one NS.
static REAL8 XLALSimIMRSpinAlignedEOBCalcOmega(const REAL8 values[], SpinEOBParams *funcParams, REAL8 STEP_SIZE)
Function to calculate the value of omega for the spin-aligned EOB waveform.
static REAL8 UNUSED XLALSimIMRSpinEOBNonKeplerCoeff(const REAL8 values[], SpinEOBParams *funcParams)
Function to calculate the non-Keplerian coefficient for the spin-aligned EOB model.
static void fresnel_sincos_0_8(double x, double output[2])
static int XLALSimIMRTEOBkleff_and_kleff_u(INT4 l, REAL8 u, REAL8 eta, TidalEOBParams *tidal, REAL8 output[2])
Function to compute the enhancement of kltidal and its u-derivative due to the presence of f-mode res...
static REAL8 XLALSimIMRSpinEOBHamiltonianDeltaR(SpinEOBHCoeffs *coeffs, const REAL8 r, const REAL8 eta, const REAL8 a)
This function calculates the DeltaR potential function in the spin EOB Hamiltonian.
static REAL8 XLALSimIMRTEOBdeltaUTidalOctu(REAL8 u, REAL8 u2, REAL8 u8, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the octupolar tidal contribution to the EOB Delta_u potential.
static const double df_keffresonant_pertdata[5]
static double df_keffresonant(double x, double x5_3)
static REAL8 XLALSimIMRSpinEOBHamiltonian(const REAL8 eta, REAL8Vector *restrict x, REAL8Vector *restrict p, REAL8Vector *restrict s1Vec, REAL8Vector *restrict s2Vec, REAL8Vector *restrict sigmaKerr, REAL8Vector *restrict sigmaStar, int tortoise, SpinEOBHCoeffs *coeffs)
static const double sqrt_2_pi
static REAL8 XLALSimIMRTEOBdeltaUTidal(REAL8 u, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the tidal contribution to the EOB Delta_u potential.
static const double _1_sqrt_2pi
static double f_keffresonant_pert(REAL8 x)
static const double f_data_a[18]
static REAL8 XLALSimIMRTEOBdeltaUTidalQuad(REAL8 u, REAL8 u2, REAL8 u6, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the quadrupolar tidal contribution to the EOB Delta_u potential.
static double f_keffresonant(double x, double x5_3)
Function to compute k2tidal, k3tidal: resonant terms f(x) with x=omega0l/(m*Omega) (with m=l here) is...
static void fresnel_sincos_8_inf(double x, double output[2])
static REAL8 XLALSimIMRTEOBkleff(INT4 l, REAL8 u, REAL8 eta, TidalEOBParams *tidal)
Function to compute the enhancement of kltidal due to the presence of f-mode resonance Implements (11...
static REAL8 XLALSimIMRTEOBdeltaUTidalQuad_u(REAL8 u, REAL8 u2, REAL8 u6, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the u-derivative of the quadrupolar tidal contribution to the EOB Delta_u potenti...
static const double sqrt_pi_2
static REAL8 XLALSimIMRTEOBdeltaUTidalOctu_u(REAL8 u, REAL8 u2, REAL8 u8, REAL8 eta, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the u-derivative of the octupolar tidal contribution to the EOB Delta_u potential...
static double GSLSpinAlignedHamiltonianWrapper(double x, void *params)
static void fresnel_sc(double x, double output[2])
static const REAL8 STEP_SIZE_CALCOMEGA
static const double f_keffresonant_pertdata[5]
static double f_data_e[41]
static REAL8 XLALSimIMRTEOBdeltaUTidalQuadSingleNS(REAL8 u, REAL8 u2, REAL8 u6, REAL8 XNS, REAL8 XCompanion, REAL8 lambda2TidalNS, REAL8 k2TidalNSeff)
Function to compute the quadrupolar tidal contribution to the EOB Delta_u potential for just one NS.
static REAL8 XLALSimIMRTEOBdeltaUTidalQuadSingleNS_u(REAL8 u, REAL8 u2, REAL8 u6, REAL8 XNS, REAL8 XCompanion, REAL8 lambda2TidalNS, REAL8 k2TidalNSeff, REAL8 k2TidalNSeff_u)
Function to compute the u-derivative of the quadrupolar tidal contribution to the EOB Delta_u potenti...
static double f_data_f[35]
static REAL8 XLALSimIMRTEOBdeltaHssQuadMonLO(const REAL8 eta, REAL8 u, REAL8Vector *restrict s1Vec, REAL8Vector *restrict s2Vec, REAL8 nx, REAL8 ny, REAL8 nz, TidalEOBParams *tidal1, TidalEOBParams *tidal2)
Function to compute the leading-order 2PN spin-induced quadrupole contribution to Heff/mu consistentl...
static REAL8 XLALSimIMRSpinEOBHamiltonianDeltaT(SpinEOBHCoeffs *coeffs, const REAL8 r, const REAL8 eta, const REAL8 a)
This function calculates the function which appears in the spinning EOB potential function.
static REAL8 XLALSimIMRSpinAlignedEOBNonKeplerCoeff(const REAL8 values[], SpinEOBParams *funcParams)
Function to calculate the non-Keplerian coefficient for the spin-aligned EOB model.
static const REAL8 coeff12dSO
static const REAL8 coeff00dSO
static const REAL8 coeff02K
static const REAL8 coeff21dSO
static const REAL8 coeff12dSS
static const REAL8 coeff31dSS
static const REAL8 coeff20K
static const REAL8 coeff31dSO
static const REAL8 coeff32dSS
static const REAL8 coeff23K
static const REAL8 coeff33K
static const REAL8 coeff32K
static const REAL8 coeff11dSS
static const REAL8 coeff11dSO
static const REAL8 coeff21K
static const REAL8 coeff10dSO
static const REAL8 coeff31K
static const REAL8 coeff23dSO
static const REAL8 coeff10dSS
static const REAL8 coeff01K
static const REAL8 coeff02dSS
static const REAL8 coeff13dSS
static const REAL8 coeff10K
static const REAL8 coeff20dSS
static const REAL8 coeff30dSS
static const REAL8 coeff11K
static const REAL8 coeff03K
static const REAL8 coeff22K
static const REAL8 coeff23dSS
static const REAL8 coeff20dSO
static const REAL8 coeff03dSS
static const REAL8 coeff22dSO
static const REAL8 coeff32dSO
static const REAL8 coeff33dSS
static const REAL8 coeff33dSO
static const REAL8 coeff01dSS
static const REAL8 coeff02dSO
static const REAL8 coeff03dSO
static const REAL8 coeff21dSS
static const REAL8 coeff13K
static const REAL8 coeff22dSS
static const REAL8 coeff00K
static const REAL8 coeff00dSS
static const REAL8 coeff01dSO
static const REAL8 coeff12K
static const REAL8 coeff30K
static const REAL8 coeff30dSO
static const REAL8 coeff13dSO
#define XLAL_CALLGSL(statement)
const double sMultiplier1
const double sMultiplier2
#define XLAL_ERROR_REAL8(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_IS_REAL8_FAIL_NAN(val)
Structure containing all the parameters needed for the EOB waveform.
Parameters for the spinning EOB model, used in calculating the Hamiltonian.
UINT4 SpinAlignedEOBversion
Parameters for the spinning EOB model.
SpinEOBHCoeffs * seobCoeffs
Tidal parameters for EOB model of NS: mByM - dimensionless ratio m_{NS}/M lambda2Tidal - dimensionles...
char output[FILENAME_MAX]