29#include <lal/FrequencySeries.h>
30#include <lal/LALConstants.h>
31#include <lal/Sequence.h>
32#include <lal/LALDatatypes.h>
33#include <lal/LALSimInspiralEOS.h>
34#include <lal/LALSimInspiral.h>
36#include <lal/XLALError.h>
37#include <lal/AVFactories.h>
121 for (idx=0; idx < mass1.
length; idx++)
129 (&curr_phasing, mass1.
data[idx], mass2.
data[idx], chi1.
data[idx],
131 for (jdx=0; jdx < pnmaxnum; jdx++)
133 pv->
data[jdx*mass1.
length + idx] = curr_phasing->
v[jdx];
135 curr_phasing->
vlogv[jdx];
171 const REAL8 eta = m1 * m2 / (
m *
m);
182 htilde = *htilde_out;
206#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
212#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
218#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
223#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
228#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
233#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
238#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
283#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
287#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
292#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
297#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
302#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
307#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
353 REAL8 ref_phasing = 0.;
355 const REAL8 vref = cbrt(piM*f_ref);
356 const REAL8 logvref = log(vref);
357 const REAL8 v2ref = vref * vref;
358 const REAL8 v3ref = vref * v2ref;
359 const REAL8 v4ref = vref * v3ref;
360 const REAL8 v5ref = vref * v4ref;
361 const REAL8 v6ref = vref * v5ref;
362 const REAL8 v7ref = vref * v6ref;
363 const REAL8 v8ref = vref * v7ref;
364 const REAL8 v9ref = vref * v8ref;
365 const REAL8 v10ref = vref * v9ref;
366 const REAL8 v12ref = v2ref * v10ref;
367 const REAL8 v13ref = vref * v12ref;
368 const REAL8 v14ref = vref * v13ref;
369 const REAL8 v15ref = vref * v14ref;
370 ref_phasing += pfa7 * v7ref;
371 ref_phasing += (pfa6 + pfl6 * logvref) * v6ref;
372 ref_phasing += (pfa5 + pfl5 * logvref) * v5ref;
373 ref_phasing += pfa4 * v4ref;
374 ref_phasing += pfa3 * v3ref;
375 ref_phasing += pfa2 * v2ref;
376 ref_phasing += pfa1 * vref;
380 ref_phasing += pft15 * v15ref;
381 ref_phasing += pft14 * v14ref;
382 ref_phasing += pft13 * v13ref;
383 ref_phasing += pft12 * v12ref;
384 ref_phasing += pft10 * v10ref;
386 ref_phasing /= v5ref;
389 #pragma omp parallel for
392 const REAL8 v = cbrt(piM*f);
393 const REAL8 logv = log(v);
394 const REAL8 v2 = v * v;
395 const REAL8 v3 = v * v2;
396 const REAL8 v4 = v * v3;
397 const REAL8 v5 = v * v4;
398 const REAL8 v6 = v * v5;
399 const REAL8 v7 = v * v6;
400 const REAL8 v8 = v * v7;
401 const REAL8 v9 = v * v8;
402 const REAL8 v10 = v * v9;
403 const REAL8 v12 = v2 * v10;
404 const REAL8 v13 = v * v12;
405 const REAL8 v14 = v * v13;
406 const REAL8 v15 = v * v14;
412 phasing += pfa7 * v7;
413 phasing += (pfa6 + pfl6 * logv) * v6;
414 phasing += (pfa5 + pfl5 * logv) * v5;
415 phasing += pfa4 * v4;
416 phasing += pfa3 * v3;
417 phasing += pfa2 * v2;
422 phasing += pft15 * v15;
423 phasing += pft14 * v14;
424 phasing += pft13 * v13;
425 phasing += pft12 * v12;
426 phasing += pft10 * v10;
440#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
444 flux += (FTa6 + FTl6*logv) * v6;
445 dEnergy += dETa3 * v6;
446#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
451#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
456 dEnergy += dETa2 * v4;
457#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
462#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
467 dEnergy += dETa1 * v2;
468#if __GNUC__ >= 7 && !defined __INTEL_COMPILER
479 dEnergy *= dETaN * v;
481 phasing += shft * f - 2.*phi_ref - ref_phasing;
482 amp = amp0 * sqrt(-dEnergy/flux) * v;
484 - amp * sin(phasing -
LAL_PI_4) * 1.0j;
487 *htilde_out = htilde;
529 const REAL8 vISCO = 1. / sqrt(6.);
530 const REAL8 fISCO = vISCO * vISCO * vISCO / piM;
559 if (( fEnd == 0. ) && ( tideO == 0 ))
561 else if (( fEnd == 0. ) && ( tideO != 0 )) {
563 f_max = (fCONT > fISCO) ? fISCO : fCONT;
569 n = (size_t) (
f_max / deltaF + 1);
577 iStart = (
INT4) ceil(fStart / deltaF);
585 #pragma omp parallel for
586 for (
i = iStart;
i < n;
i++) {
587 freqs->
data[
i-iStart] =
i * deltaF;
595 f_ref, shft,
r,
p, &pfa);
599 *htilde_out = htilde;
void XLALDestroyDict(LALDict *dict)
LALDict * XLALCreateDict(void)
int XLALSimInspiralSetQuadMonParamsFromLambdas(LALDict *LALparams)
if you do NOT provide a quadparam[1,2] term and you DO provide lamdba[1,2] then we calculate quad-mon...
REAL8 XLALSimInspiralContactFrequency(REAL8 m1_intr, REAL8 barlambda1, REAL8 m2_intr, REAL8 barlambda2)
This function estimates the radius for a binary of given masses and tidal deformability parameters.
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)
Module to compute the eccentric TaylorF2 inspiral waveform for small eccentricity....
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
#define LAL_SIM_INSPIRAL_TIDAL_ORDER_DEFAULT
#define PN_PHASING_SERIES_MAX_ORDER
Structure for passing around PN phasing coefficients.
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_5PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_6PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_75PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_7PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_0PN
@ LAL_SIM_INSPIRAL_TIDAL_ORDER_65PN
int XLALSimInspiralTaylorF2Core(COMPLEX16FrequencySeries **htilde_out, const REAL8Sequence *freqs, const REAL8 phi_ref, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_ref, const REAL8 shft, const REAL8 r, LALDict *p, PNPhasingSeries *pfaP)
int XLALSimInspiralTaylorF2AlignedPhasingArray(REAL8Vector **phasingvals, REAL8Vector mass1, REAL8Vector mass2, REAL8Vector chi1, REAL8Vector chi2, REAL8Vector lambda1, REAL8Vector lambda2, REAL8Vector dquadmon1, REAL8Vector dquadmon2)
int XLALSimInspiralTaylorF2(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 XLALSimInspiralTaylorF2AlignedPhasing(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.
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)
REAL8Vector * XLALCreateREAL8Vector(UINT4 length)
#define XLAL_CHECK(assertion,...)
LIGOTimeGPS * XLALGPSAdd(LIGOTimeGPS *epoch, REAL8 dt)
REAL8 vlogv[PN_PHASING_SERIES_MAX_ORDER+1]
REAL8 vlogvsq[PN_PHASING_SERIES_MAX_ORDER+1]
REAL8 v[PN_PHASING_SERIES_MAX_ORDER+1]