24 #include <lal/FrequencySeries.h>
25 #include <lal/LALConstants.h>
26 #include <lal/LALDatatypes.h>
27 #include <lal/LALSimInspiral.h>
28 #include <lal/Units.h>
29 #include <lal/XLALError.h>
61 const REAL8 eta = m1 * m2 / (
m *
m);
65 const REAL8 mSevenBySix = -7./6.;
66 const REAL8 vISCO = 1. / sqrt(6.);
67 const REAL8 fISCO = vISCO * vISCO * vISCO / piM;
70 REAL8 psiNewt, psi2, psi3, psi4, psi5, psi6, psi6L, psi7, psi3S, psi4S, psi5S, psi10T1, psi10T2, psi10, psi12T1, psi12T2, psi12;
71 REAL8 alpha2, alpha3, alpha4, alpha5, alpha6, alpha6L, alpha7, alpha3S, alpha4S, alpha5S;
91 n = (size_t) (
f_max / deltaF + 1);
95 memset((*htilde)->data->data, 0, n *
sizeof(
COMPLEX16));
105 psi4S = 63845.*(-81. + 4.*eta)*chi*chi/(8.*pow(-113. + 76.*eta, 2.));
106 psi5S = -565.*(-146597. + 135856.*eta + 17136.*eta*eta)*chi/(2268.*(-113. + 76.*eta));
108 alpha3S = (113.*chi)/24.;
109 alpha4S = (12769.*chi*chi*(-81. + 4.*eta))/(32.*pow(-113. + 76.*eta,2));
110 alpha5S = (-113.*chi*(502429. - 591368.*eta + 1680*eta*eta))/(16128.*(-113 + 76*eta));
114 psi10T1 = -24./xi1 * (1. + 11. *
xi2) * lam1 * xi1*xi1*xi1*xi1*xi1;
116 psi12T1 = -5./28./xi1 * (3179. - 919.* xi1 - 2286.* xi1*xi1 + 260.* xi1*xi1*xi1)* lam1 * xi1*xi1*xi1*xi1*xi1;
119 psiNewt = 3./(128.*eta);
120 psi2 = 3715./756. + 55.*eta/9.;
121 psi3 = psi3S - 16.*
LAL_PI;
122 psi4 = 15293365./508032. + 27145.*eta/504. + 3085.*eta*eta/72. + psi4S;
123 psi5 = (38645.*
LAL_PI/756. - 65.*
LAL_PI*eta/9. + psi5S);
126 + (76055.*eta*eta)/1728. - (127825.*eta*eta*eta)/1296.;
128 psi7 = (77096675.*
LAL_PI)/254016. + (378515.*
LAL_PI*eta)/1512.
129 - (74045.*
LAL_PI*eta*eta)/756.;
130 psi10 = psi10T1+psi10T2;
131 psi12 = psi12T1+psi12T2;
134 alpha2 = 1.1056547619047619 + (11*eta)/8.;
136 alpha4 = 0.8939214212884228 + (18913*eta)/16128. + (1379*eta*eta)/1152. + alpha4S;
137 alpha5 = (-4757*
LAL_PI)/1344. + (57*eta*
LAL_PI)/16. + alpha5S;
138 alpha6 = -58.601030974347324 + (3526813753*eta)/2.7869184e7 -
139 (1041557*eta*eta)/258048. + (67999*eta*eta*eta)/82944. +
142 alpha7 = (-5111593*
LAL_PI)/2.709504e6 - (72221*eta*
LAL_PI)/24192. -
143 (1349*eta*eta*
LAL_PI)/24192.;
150 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
155 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
160 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
165 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
171 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
176 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
187 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
192 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
197 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
202 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
208 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
213 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
221 iStart = (size_t) ceil(fStart / deltaF);
222 data = (*htilde)->data->data;
223 const REAL8 logv0=log(v0);
226 for (
i = iStart;
i < n;
i++) {
228 const REAL8 f =
i * deltaF;
229 const REAL8 v3 = piM*f;
233 const REAL8 v = cbrt(v3);
234 const REAL8 logv=log(v);
235 const REAL8 v2 = v*v;
236 const REAL8 v4 = v3*v;
237 const REAL8 v5 = v4*v;
238 const REAL8 v6 = v3*v3;
239 const REAL8 v7 = v6*v;
240 const REAL8 v10 = v5*v5;
241 const REAL8 v12 = v6*v6;
244 Psi = psiNewt / v5 * (1.
245 + psi2 * v2 + psi3 * v3 + psi4 * v4
246 + psi5 * v5 * (1. + 3. * (logv - logv0))
247 + (psi6 + psi6L * (
log4 + logv)) * v6 + psi7 * v7)
248 + psi10 * v10 + psi12 * v12;
250 amp = amp0 * pow(f, mSevenBySix) * (1.
251 + alpha2 * v2 + alpha3 * v3 + alpha4 * v4 + alpha5 * v5
255 data[
i] = amp * cos(Psi + shft * f - 2.*phic -
LAL_PI_4) - I * (amp * sin(Psi + shft * f - 2.*phic -
LAL_PI_4));
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
int XLALSimInspiralTaylorF2ReducedSpinTidal(COMPLEX16FrequencySeries **htilde, const REAL8 phic, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 lam1, const REAL8 lam2, const REAL8 fStart, const REAL8 fEnd, const REAL8 r, const INT4 phaseO, const INT4 ampO)
Generate the "reduced-spin templates" proposed in http://arxiv.org/abs/1107.1267 Add the tidal phase ...
const LALUnit lalStrainUnit
const LALUnit lalSecondUnit
LALUnit * XLALUnitMultiply(LALUnit *output, const LALUnit *unit1, const LALUnit *unit2)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)