29 #include <lal/FrequencySeries.h>
30 #include <lal/LALConstants.h>
31 #include <lal/Sequence.h>
32 #include <lal/LALDatatypes.h>
33 #include <lal/LALSimInspiral.h>
34 #include <lal/Units.h>
35 #include <lal/XLALError.h>
112 REAL8 Mtot = m1_SI + m2_SI ;
113 REAL8 Mchirp = pow((m1_SI*m2_SI), 0.6) / pow(Mtot, 0.2) ;
122 C1 =
C2 * pow(m1_SI/Mtot, 2./3.) * Anl1 ;
125 C1 =
C2 * pow(m1_SI/Mtot, 2./3.) * Anl1 * pow(
fref, -a1) / a1 ;
129 C2 =
C2 * pow(m2_SI/Mtot, 2./3.) * Anl2 ;
132 C2 =
C2 * pow(m2_SI/Mtot, 2./3.) * Anl2 * pow(
fref, -
a2) /
a2 ;
140 while ((i<freqs->length) && (freqs->
data[
i] < fo1)) {
141 dphi->
data[
i] = 0.0 ;
145 while ((i<freqs->length) && (freqs->
data[
i] < fo2)) {
150 while (i<freqs->length) {
151 f = log( freqs->
data[
i] ) ;
156 while (i<freqs->length) {
163 while ((i<freqs->length) && (freqs->
data[
i] < fo2)) {
168 while (i<freqs->length) {
170 dphi->
data[
i] =
C1 * ( pow(f, a1) -
b1 ) +
C2 * ( log( f ) -
b2 ) ;
174 while (i<freqs->length) {
182 while ((i<freqs->length) && (freqs->
data[
i] < fo2)) {
183 dphi->
data[
i] = 0.0 ;
187 while ((i<freqs->length) && (freqs->
data[
i] < fo1)) {
192 while (i<freqs->length) {
193 f = log( freqs->
data[
i] ) ;
198 while (i<freqs->length) {
200 dphi->
data[
i] =
C2 * ( log( f ) -
b2 ) +
C1 * ( pow(f, a1) -
b1 ) ;
205 while ((i<freqs->length) && (freqs->
data[
i] < fo1)) {
210 while (i<freqs->length) {
216 while (i<freqs->length) {
249 const REAL8 eta = m1 * m2 / (
m *
m);
251 const REAL8 m1OverM = m1 /
m;
252 const REAL8 m2OverM = m2 /
m;
262 htilde = *htilde_out;
288 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
294 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
300 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
305 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
310 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
315 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
320 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
365 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
370 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
416 REAL8 ref_phasing = 0.;
418 const REAL8 vref = cbrt(piM*f_ref);
419 const REAL8 logvref = log(vref);
420 const REAL8 v2ref = vref * vref;
421 const REAL8 v3ref = vref * v2ref;
422 const REAL8 v4ref = vref * v3ref;
423 const REAL8 v5ref = vref * v4ref;
424 const REAL8 v6ref = vref * v5ref;
425 const REAL8 v7ref = vref * v6ref;
426 const REAL8 v8ref = vref * v7ref;
427 const REAL8 v9ref = vref * v8ref;
428 const REAL8 v10ref = vref * v9ref;
429 const REAL8 v12ref = v2ref * v10ref;
430 ref_phasing += pfa7 * v7ref;
431 ref_phasing += (pfa6 + pfl6 * logvref) * v6ref;
432 ref_phasing += (pfa5 + pfl5 * logvref) * v5ref;
433 ref_phasing += pfa4 * v4ref;
434 ref_phasing += pfa3 * v3ref;
435 ref_phasing += pfa2 * v2ref;
436 ref_phasing += pfa1 * vref;
440 ref_phasing += pft12 * v12ref;
441 ref_phasing += pft10 * v10ref;
443 ref_phasing /= v5ref;
463 #pragma omp parallel for
466 const REAL8 v = cbrt(piM*f);
467 const REAL8 logv = log(v);
468 const REAL8 v2 = v * v;
469 const REAL8 v3 = v * v2;
470 const REAL8 v4 = v * v3;
471 const REAL8 v5 = v * v4;
472 const REAL8 v6 = v * v5;
473 const REAL8 v7 = v * v6;
474 const REAL8 v8 = v * v7;
475 const REAL8 v9 = v * v8;
476 const REAL8 v10 = v * v9;
477 const REAL8 v12 = v2 * v10;
483 phasing += pfa7 * v7;
484 phasing += (pfa6 + pfl6 * logv) * v6;
485 phasing += (pfa5 + pfl5 * logv) * v5;
486 phasing += pfa4 * v4;
487 phasing += pfa3 * v3;
488 phasing += pfa2 * v2;
493 phasing += pft12 * v12;
494 phasing += pft10 * v10;
508 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
512 flux += (FTa6 + FTl6*logv) * v6;
513 dEnergy += dETa3 * v6;
514 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
519 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
524 dEnergy += dETa2 * v4;
525 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
530 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
535 dEnergy += dETa1 * v2;
536 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
547 dEnergy *= dETaN * v;
549 phasing += shft * f - 2.*phi_ref - ref_phasing + nonlinear_phasing->
data[
i];
550 amp = amp0 * sqrt(-dEnergy/flux) * v;
552 - amp * sin(phasing -
LAL_PI_4) * 1.0j;
558 *htilde_out = htilde;
600 const REAL8 vISCO = 1. / sqrt(6.);
601 const REAL8 fISCO = vISCO * vISCO * vISCO / piM;
629 n = (size_t) (
f_max / deltaF + 1);
637 iStart = (
INT4) ceil(fStart / deltaF);
645 #pragma omp parallel for
646 for (
i = iStart;
i < n;
i++) {
647 freqs->
data[
i-iStart] =
i * deltaF;
650 S1z, S2z, f_ref, shft,
r,
p);
654 *htilde_out = htilde;
static REAL8 UNUSED C2(REAL8 e0, REAL8 f0)
static REAL8 UNUSED C1(REAL8 Mtotal)
static REAL8 UNUSED XLALSimInspiralPNFlux_5PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNEnergy_4PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNFlux_0PNCoeff(REAL8 eta)
Computes the flux PN Coefficients.
static REAL8 UNUSED XLALSimInspiralPNFlux_3PNCoeff(REAL8 UNUSED eta)
static REAL8 UNUSED XLALSimInspiralPNEnergy_2PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNFlux_4PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNEnergy_0PNCoeff(REAL8 eta)
Computes the PN Coefficients for using in the PN energy equation.
static REAL8 UNUSED XLALSimInspiralPNFlux_2PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNFlux_7PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNFlux_6PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralPNFlux_6PNLogCoeff(REAL8 UNUSED eta)
static void UNUSED XLALSimInspiralPNPhasing_F2(PNPhasingSeries *pfa, const REAL8 m1, const REAL8 m2, const REAL8 chi1L, const REAL8 chi2L, const REAL8 chi1sq, const REAL8 chi2sq, const REAL8 chi1dotchi2, LALDict *p)
static REAL8 UNUSED XLALSimInspiralPNEnergy_6PNCoeff(REAL8 eta)
static REAL8 UNUSED XLALSimInspiralTaylorF2Phasing_12PNTidalCoeff(REAL8 mByM)
static REAL8 UNUSED XLALSimInspiralTaylorF2Phasing_10PNTidalCoeff(REAL8 mByM)
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_5PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_6PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_ALL
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_0PN
int XLALSimInspiralTaylorF2CoreNLTides(COMPLEX16FrequencySeries **htilde_out, const REAL8Sequence *freqs, const REAL8 phi_ref, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 S1z, const REAL8 S2z, const REAL8 f_ref, const REAL8 shft, const REAL8 r, LALDict *p)
int XLALSimInspiralTaylorF2AlignedPhasingNLTides(PNPhasingSeries **pn, const REAL8 m1, const REAL8 m2, const REAL8 chi1, const REAL8 chi2, LALDict *p)
Returns structure containing TaylorF2 phasing coefficients for given physical parameters.
int XLALSimInspiralTaylorF2NLTides(COMPLEX16FrequencySeries **htilde_out, const REAL8 phi_ref, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 S1z, const REAL8 S2z, const REAL8 fStart, const REAL8 fEnd, const REAL8 f_ref, const REAL8 r, LALDict *p)
Computes the stationary phase approximation to the Fourier transform of a chirp waveform.
int XLALSimInspiralTaylorF2NLPhase(REAL8Sequence *dphi, const REAL8Sequence *freqs, const REAL8 Anl1, const REAL8 n1, const REAL8 fo1, const REAL8 m1_SI, const REAL8 Anl2, const REAL8 n2, const REAL8 fo2, const REAL8 m2_SI)
void XLALDestroyREAL8Sequence(REAL8Sequence *sequence)
REAL8Sequence * XLALCreateREAL8Sequence(size_t length)
const LALUnit lalStrainUnit
const LALUnit lalSecondUnit
LALUnit * XLALUnitMultiply(LALUnit *output, const LALUnit *unit1, const LALUnit *unit2)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
REAL8 vlogv[PN_PHASING_SERIES_MAX_ORDER+1]
REAL8 v[PN_PHASING_SERIES_MAX_ORDER+1]