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>
35 #include <lal/Units.h>
36 #include <lal/XLALError.h>
37 #include <lal/AVFactories.h>
118 for (idx=0; idx < mass1.
length; idx++)
126 (&curr_phasing, mass1.
data[idx], mass2.
data[idx], chi1.
data[idx],
128 for (jdx=0; jdx < pnmaxnum; jdx++)
130 pv->
data[jdx*mass1.
length + idx] = curr_phasing->
v[jdx];
132 curr_phasing->
vlogv[jdx];
167 const REAL8 eta = m1 * m2 / (
m *
m);
178 htilde = *htilde_out;
202 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
208 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
214 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
219 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
224 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
229 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
234 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
279 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
283 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
288 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
293 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
298 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
303 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
349 REAL8 ref_phasing = 0.;
351 const REAL8 vref = cbrt(piM*f_ref);
352 const REAL8 logvref = log(vref);
353 const REAL8 v2ref = vref * vref;
354 const REAL8 v3ref = vref * v2ref;
355 const REAL8 v4ref = vref * v3ref;
356 const REAL8 v5ref = vref * v4ref;
357 const REAL8 v6ref = vref * v5ref;
358 const REAL8 v7ref = vref * v6ref;
359 const REAL8 v8ref = vref * v7ref;
360 const REAL8 v9ref = vref * v8ref;
361 const REAL8 v10ref = vref * v9ref;
362 const REAL8 v12ref = v2ref * v10ref;
363 const REAL8 v13ref = vref * v12ref;
364 const REAL8 v14ref = vref * v13ref;
365 const REAL8 v15ref = vref * v14ref;
366 ref_phasing += pfa7 * v7ref;
367 ref_phasing += (pfa6 + pfl6 * logvref) * v6ref;
368 ref_phasing += (pfa5 + pfl5 * logvref) * v5ref;
369 ref_phasing += pfa4 * v4ref;
370 ref_phasing += pfa3 * v3ref;
371 ref_phasing += pfa2 * v2ref;
372 ref_phasing += pfa1 * vref;
376 ref_phasing += pft15 * v15ref;
377 ref_phasing += pft14 * v14ref;
378 ref_phasing += pft13 * v13ref;
379 ref_phasing += pft12 * v12ref;
380 ref_phasing += pft10 * v10ref;
382 ref_phasing /= v5ref;
385 #pragma omp parallel for
388 const REAL8 v = cbrt(piM*f);
389 const REAL8 logv = log(v);
390 const REAL8 v2 = v * v;
391 const REAL8 v3 = v * v2;
392 const REAL8 v4 = v * v3;
393 const REAL8 v5 = v * v4;
394 const REAL8 v6 = v * v5;
395 const REAL8 v7 = v * v6;
396 const REAL8 v8 = v * v7;
397 const REAL8 v9 = v * v8;
398 const REAL8 v10 = v * v9;
399 const REAL8 v12 = v2 * v10;
400 const REAL8 v13 = v * v12;
401 const REAL8 v14 = v * v13;
402 const REAL8 v15 = v * v14;
408 phasing += pfa7 * v7;
409 phasing += (pfa6 + pfl6 * logv) * v6;
410 phasing += (pfa5 + pfl5 * logv) * v5;
411 phasing += pfa4 * v4;
412 phasing += pfa3 * v3;
413 phasing += pfa2 * v2;
418 phasing += pft15 * v15;
419 phasing += pft14 * v14;
420 phasing += pft13 * v13;
421 phasing += pft12 * v12;
422 phasing += pft10 * v10;
436 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
440 flux += (FTa6 + FTl6*logv) * v6;
441 dEnergy += dETa3 * v6;
442 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
447 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
452 dEnergy += dETa2 * v4;
453 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
458 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
463 dEnergy += dETa1 * v2;
464 #if __GNUC__ >= 7 && !defined __INTEL_COMPILER
475 dEnergy *= dETaN * v;
477 phasing += shft * f - 2.*phi_ref - ref_phasing;
478 amp = amp0 * sqrt(-dEnergy/flux) * v;
480 - amp * sin(phasing -
LAL_PI_4) * 1.0j;
483 *htilde_out = htilde;
525 const REAL8 vISCO = 1. / sqrt(6.);
526 const REAL8 fISCO = vISCO * vISCO * vISCO / piM;
555 if (( fEnd == 0. ) && ( tideO == 0 ))
557 else if (( fEnd == 0. ) && ( tideO != 0 )) {
559 f_max = (fCONT > fISCO) ? fISCO : fCONT;
565 n = (size_t) (
f_max / deltaF + 1);
573 iStart = (
INT4) ceil(fStart / deltaF);
581 #pragma omp parallel for
582 for (
i = iStart;
i < n;
i++) {
583 freqs->
data[
i-iStart] =
i * deltaF;
591 f_ref, shft,
r,
p, &pfa);
595 *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]