1#include <lal/LALStdlib.h>
2#include <lal/LALSimInspiral.h>
3#include <lal/LALDict.h>
5#include <lal/LALSimIMR.h>
12#include <lal/FrequencySeries.h>
13#include <lal/AVFactories.h>
16#define UNUSED __attribute__ ((unused))
138 LALSimInspiralGenerator *myself
141 REAL8 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance, inclination;
147 XLALSimInspiralParseDictionaryToChooseFDModes(&m1, &m2, &S1x, &S1y, &S1z, &S2x, &S2y, &S2z, &deltaF, &
f_min, &
f_max, &f_ref, &phiRef, &distance, &inclination,
params);
149 *hlm =
XLALSimInspiralChooseFDModes_legacy(m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance, inclination,
params,
approximant);
159 LALSimInspiralGenerator *myself
162 REAL8 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno, deltaF,
f_min,
f_max, f_ref;
168 XLALSimInspiralParseDictionaryToChooseFDWaveform(&m1, &m2, &S1x, &S1y, &S1z, &S2x, &S2y, &S2z, &distance, &inclination, &phiRef, &longAscNodes, &eccentricity, &meanPerAno, &deltaF, &
f_min, &
f_max, &f_ref,
params);
170 return XLALSimInspiralChooseFDWaveform_legacy(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno, deltaF,
f_min,
f_max, f_ref,
params,
approximant);
177 LALSimInspiralGenerator *myself
180 REAL8 phiRef,
deltaT, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref, distance;
187 XLALSimInspiralParseDictionaryToChooseTDModes(&phiRef, &
deltaT, &m1, &m2, &S1x, &S1y, &S1z, &S2x, &S2y, &S2z, &
f_min, &f_ref, &distance, &lmax,
params);
189 *hlm =
XLALSimInspiralChooseTDModes_legacy(phiRef,
deltaT, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref, distance,
params, lmax,
approximant);
199 LALSimInspiralGenerator *myself
202 REAL8 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref;
209 XLALSimInspiralParseDictionaryToChooseTDWaveform(&m1, &m2, &S1x, &S1y, &S1z, &S2x, &S2y, &S2z, &distance, &inclination, &phiRef, &longAscNodes, &eccentricity, &meanPerAno, &
deltaT, &
f_min, &f_ref,
params);
211 return XLALSimInspiralChooseTDWaveform_legacy(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
218#define DEFINE_GENERATOR_TEMPLATE(approx, fd_modes, fd_waveform, td_modes, td_waveform) \
219 static Approximant _lal ## approx ## GeneratorInternalData = approx; \
220 const LALSimInspiralGenerator lal ## approx ## GeneratorTemplate = { \
222 .initialize = initialize, \
224 .generate_fd_modes = fd_modes, \
225 .generate_fd_waveform = fd_waveform, \
226 .generate_td_modes = td_modes, \
227 .generate_td_waveform = td_waveform, \
228 .internal_data = &_lal ## approx ## GeneratorInternalData \
366 REAL8 LNhatx, LNhaty, LNhatz, E1x, E1y, E1z;
385 REAL8 lambda3A_UR = 0.;
386 REAL8 omega2TidalA_UR = 0.;
387 REAL8 omega3TidalA_UR = 0.;
388 REAL8 lambda3B_UR = 0.;
389 REAL8 omega2TidalB_UR = 0.;
390 REAL8 omega3TidalB_UR = 0.;
391 REAL8 quadparam1_UR = 0.;
392 REAL8 quadparam2_UR = 0.;
400 XLALPrintError(
"XLAL Error - %s: Passed in non-NULL pointer to LALSimInspiralTestGRParam for an approximant that does not use LALSimInspiralTestGRParam\n", __func__);
408 UINT4 SpinAlignedEOBversion;
409 REAL8 spin1x, spin1y, spin1z;
410 REAL8 spin2x, spin2y, spin2z;
411 REAL8 polariz = longAscNodes;
414 UINT4 PrecEOBversion;
415 REAL8 spin1[3], spin2[3];
425 XLALPrintWarning(
"XLAL Warning - %s: Large value of deltaT = %e requested.\nPerhaps sample rate and time step size were swapped?\n", __func__,
deltaT);
427 XLALPrintWarning(
"XLAL Warning - %s: Small value of deltaT = %e requested.\nCheck for errors, this could create very large time series.\n", __func__,
deltaT);
429 XLALPrintWarning(
"XLAL Warning - %s: Small value of m1 = %e (kg) = %e (Msun) requested.\nPerhaps you have a unit conversion error?\n", __func__, m1, m1 /
LAL_MSUN_SI);
431 XLALPrintWarning(
"XLAL Warning - %s: Small value of m2 = %e (kg) = %e (Msun) requested.\nPerhaps you have a unit conversion error?\n", __func__, m2, m2 /
LAL_MSUN_SI);
433 XLALPrintWarning(
"XLAL Warning - %s: Large value of total mass m1+m2 = %e (kg) = %e (Msun) requested.\nSignal not likely to be in band of ground-based detectors.\n", __func__, m1 + m2, (m1 + m2) /
LAL_MSUN_SI);
434 if (S1x * S1x + S1y * S1y + S1z * S1z > 1.000001)
435 XLALPrintWarning(
"XLAL Warning - %s: S1 = (%e,%e,%e) with norm > 1 requested.\nAre you sure you want to violate the Kerr bound?\n", __func__, S1x, S1y, S1z);
436 if (S2x * S2x + S2y * S2y + S2z * S2z > 1.000001)
437 XLALPrintWarning(
"XLAL Warning - %s: S2 = (%e,%e,%e) with norm > 1 requested.\nAre you sure you want to violate the Kerr bound?\n", __func__, S2x, S2y, S2z);
439 XLALPrintWarning(
"XLAL Warning - %s: Small value of fmin = %e requested.\nCheck for errors, this could create a very long waveform.\n", __func__,
f_min);
440 if (
f_min > 40.000001)
441 XLALPrintWarning(
"XLAL Warning - %s: Large value of fmin = %e requested.\nCheck for errors, the signal will start in band.\n", __func__,
f_min);
453 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
457 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
459 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
461 ret =
XLALSimInspiralTaylorEtPNGenerator(hplus, hcross, phiRef, v0,
deltaT, m1, m2,
f_min, distance, inclination, amplitudeO, phaseO);
467 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
469 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
471 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
475 ret =
XLALSimInspiralTaylorT1PNGenerator(hplus, hcross, phiRef, v0,
deltaT, m1, m2,
f_min, f_ref, distance, inclination, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(
params), amplitudeO, phaseO);
481 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
483 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
485 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
489 ret =
XLALSimInspiralTaylorT2PNGenerator(hplus, hcross, phiRef, v0,
deltaT, m1, m2,
f_min, f_ref, distance, inclination, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(
params), amplitudeO, phaseO);
495 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
497 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
499 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
503 ret =
XLALSimInspiralTaylorT3PNGenerator(hplus, hcross, phiRef, v0,
deltaT, m1, m2,
f_min, f_ref, distance, inclination, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(
params), amplitudeO, phaseO);
509 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
511 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
513 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
517 ret =
XLALSimInspiralTaylorT4PNGenerator(hplus, hcross, phiRef, v0,
deltaT, m1, m2,
f_min, f_ref, distance, inclination, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(
params), amplitudeO, phaseO);
523 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
525 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
527 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
531 ret =
XLALSimInspiralTEOBResumROM(hplus, hcross, phiRef,
deltaT,
f_min, f_ref, distance, inclination, m1, m2, lambda1, lambda2);
537 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
539 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
541 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
543 XLALPrintWarning(
"XLAL Warning - %s: This approximant does not use f_ref. The reference phase will be defined at coalescence.\n", __func__);
552 ret =
XLALSimIMRTEOBResumS(hplus, hcross, phiRef,
deltaT, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, lambda1, lambda2, distance, inclination, longAscNodes,
params, eccentricity, meanPerAno,
f_min, f_ref);
559 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
561 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
563 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralSpinOrder provided, but this approximant does not use that flag.");
567 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
569 ret =
XLALSimInspiralEccentricTDPNGenerator(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, inclination, eccentricity, amplitudeO, phaseO);
578 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
582 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
584 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
593 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
597 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
599 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
608 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
612 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
614 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
624 XLALSimInspiralInitialConditionsPrecessingApproxs(&incl, &spin1x, &spin1y, &spin1z, &spin2x, &spin2y, &spin2z, inclination, S1x, S1y, S1z, S2x, S2y, S2z, m1, m2, f_ref, phiRef,
XLALSimInspiralWaveformParamsLookupFrameAxis(
params));
633 ret =
XLALSimInspiralSpinTaylorT5(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, LNhatx, LNhaty, LNhatz, E1x, E1y, E1z,
params);
646 XLALSimInspiralInitialConditionsPrecessingApproxs(&incl, &spin1x, &spin1y, &spin1z, &spin2x, &spin2y, &spin2z, inclination, S1x, S1y, S1z, S2x, S2y, S2z, m1, m2, f_ref, phiRef,
XLALSimInspiralWaveformParamsLookupFrameAxis(
params));
655 ret =
XLALSimInspiralSpinTaylorT4(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, LNhatx, LNhaty, LNhatz, E1x, E1y, E1z,
params);
663 XLALSimInspiralInitialConditionsPrecessingApproxs(&incl, &spin1x, &spin1y, &spin1z, &spin2x, &spin2y, &spin2z, inclination, S1x, S1y, S1z, S2x, S2y, S2z, m1, m2, f_ref, phiRef,
XLALSimInspiralWaveformParamsLookupFrameAxis(
params));
672 ret =
XLALSimInspiralSpinTaylorT1(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, LNhatx, LNhaty, LNhatz, E1x, E1y, E1z,
params);
677 if (S2x != 0. || S2y != 0. || S2z != 0.) {
678 XLALPrintError(
"XLAL Error : The spindominatedwf approximant is only for 1 spin case.\n");
682 if (amplitudeO > 3) {
683 XLALPrintError(
"XLAL Error : Foe the spindominatedwf approximant maximal amplitude correction is 1.5 PN\n");
687 XLALPrintError(
"XLAL Error : For the spindominatedwf approximant maximal phase correction is 2 PN\n");
695 ret =
XLALSimInspiralSpinDominatedWaveformInterfaceTD(hplus, hcross,
deltaT, m1, m2,
f_min, f_ref, distance, S1x, S1y, S1z, LNhatx, LNhaty, LNhatz, incl, phaseO, amplitudeO, phiRef);
702 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
704 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
706 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
708 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
711 ret =
XLALSimIMRPhenomBGenerateTD(hplus, hcross, phiRef,
deltaT, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z),
f_min, 0., distance, inclination);
718 XLALSimInspiralInitialConditionsPrecessingApproxs(&incl, &spin1x, &spin1y, &spin1z, &spin2x, &spin2y, &spin2z, inclination, S1x, S1y, S1z, S2x, S2y, S2z, m1, m2, f_ref, phiRef,
XLALSimInspiralWaveformParamsLookupFrameAxis(
params));
721 ret =
XLALSimSpinInspiralGenerator(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, incl, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, phaseO, amplitudeO, lambda1, lambda2, quadparam1, quadparam2,
params);
727 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
729 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
731 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
733 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
736 ret =
XLALSimIMRPhenomCGenerateTD(hplus, hcross, phiRef,
deltaT, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z),
f_min, 0., distance, inclination,
params);
741 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
743 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
745 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
749 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, 0., phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
754 const REAL8 cfac = cos(inclination);
755 const REAL8 pfac = 0.5 * (1. + cfac * cfac);
756 for (loopi = hp->
data->
length - 1; loopi > -1; loopi--) {
758 if (ampsqr > maxamp) {
771 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
773 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
775 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
777 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
784 maxind = (*hplus)->data->length - 1;
785 for (loopi = (*hplus)->data->length - 1; loopi > -1; loopi--) {
786 REAL8 ampsqr = ((*hplus)->data->data[loopi]) * ((*hplus)->data->data[loopi]) + ((*hcross)->data->data[loopi]) * ((*hcross)->data->data[loopi]);
787 if (ampsqr > maxamp) {
797 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
801 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
805 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
809 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
813 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
817 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
821 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
825 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
829 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
833 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
837 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
843 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
845 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at the start.\n", __func__);
847 XLALSimInspiralInitialConditionsPrecessingApproxs(&incl, &spin1x, &spin1y, &spin1z, &spin2x, &spin2y, &spin2z, inclination, S1x, S1y, S1z, S2x, S2y, S2z, m1, m2, f_ref, phiRef,
XLALSimInspiralWaveformParamsLookupFrameAxis(
params));
849 ret =
XLALSimIMRPhenSpinInspiralRDGenerator(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, f_ref, distance, incl, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, phaseO, amplitudeO, lambda1, lambda2, quadparam1, quadparam2,
params);
860 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
862 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
864 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
866 XLALPrintWarning(
"XLAL Warning - %s: This approximant does not use f_ref. The reference phase will be defined at coalescence.\n", __func__);
871 SpinAlignedEOBversion = 1;
873 SpinAlignedEOBversion = 2;
875 SpinAlignedEOBversion = 200;
877 SpinAlignedEOBversion = 4;
879 SpinAlignedEOBversion = 400;
881 SpinAlignedEOBversion = 41;
882 ret =
XLALSimIMRSpinAlignedEOBWaveform(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, distance, inclination, S1z, S2z, SpinAlignedEOBversion,
params);
888 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
890 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
892 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant does not have tidal corrections.");
894 XLALPrintWarning(
"XLAL Warning - %s: This approximant does not use f_ref. The reference phase will be defined at coalescence.\n", __func__);
906 distance, inclination,
908 SpinAlignedEOBversion,
params
918 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
920 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
922 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
934 const double m1pert = m1 * (1.0 + 1
e-15);
936 deltaT, m1pert, m2,
f_min, distance, inclination, spin1, spin2, PrecEOBversion);
940 PrecEOBversion = 300;
942 PrecEOBversion = 304;
944 deltaT, m1, m2,
f_min, distance, inclination, spin1, spin2, PrecEOBversion);
951 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
953 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
955 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
964 PrecEOBversion = 401;
965 ret =
XLALSimIMRSpinPrecEOBWaveform(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, distance, inclination, spin1, spin2, PrecEOBversion,
params);
970 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
972 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
974 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
983 PrecEOBversion = 402;
984 ret =
XLALSimIMRSpinPrecEOBWaveform(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, distance, inclination, spin1, spin2, PrecEOBversion,
params);
991 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
993 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
995 XLALPrintWarning(
"XLAL Warning - %s: This approximant does not use f_ref. The reference phase will be defined at coalescence.\n", __func__);
1031 SpinAlignedEOBversion = 201;
1033 SpinAlignedEOBversion = 401;
1034 ret =
XLALSimIMRSpinAlignedEOBWaveform(hplus, hcross, phiRef,
deltaT, m1, m2,
f_min, distance, inclination, S1z, S2z, SpinAlignedEOBversion,
params);
1040 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1042 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero CO spin given, but this approximant does not support this case.");
1051 phiRef, inclination,
deltaT, m1, m2, distance,
f_min, f_ref, S1x, S1y, S1z,
1058 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1060 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1062 ret =
XLALSimInspiralPrecessingNRSurPolarizations(hplus, hcross, phiRef, inclination,
deltaT, m1, m2, distance,
f_min, f_ref, S1x, S1y, S1z, S2x, S2y, S2z,
params,
approximant);
1068 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1070 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1072 ret =
XLALSimInspiralPrecessingNRSurPolarizations(hplus, hcross, phiRef, inclination,
deltaT, m1, m2, distance,
f_min, f_ref, S1x, S1y, S1z, S2x, S2y, S2z,
params,
approximant);
1078 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1080 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1082 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1085 ret =
XLALSimIMRNRHybSur3dq8Polarizations(hplus, hcross, phiRef, inclination,
deltaT, m1, m2, distance,
f_min, f_ref, S1z, S2z,
params);
1090 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1092 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1094 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1100 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1108 maxind = (*hplus)->data->length - 1;
1109 for (loopi = (*hplus)->data->length - 1; loopi > -1; loopi--) {
1110 REAL8 ampsqr = ((*hplus)->data->data[loopi]) * ((*hplus)->data->data[loopi]) + ((*hcross)->data->data[loopi]) * ((*hcross)->data->data[loopi]);
1111 if (ampsqr > maxamp) {
1123 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1125 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1132 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef,
1141 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1143 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1150 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef,
1159 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1161 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1163 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1166 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1174 maxind = (*hplus)->data->length - 1;
1175 for (loopi = (*hplus)->data->length - 1; loopi > -1; loopi--) {
1176 REAL8 ampsqr = ((*hplus)->data->data[loopi]) * ((*hplus)->data->data[loopi]) + ((*hcross)->data->data[loopi]) * ((*hcross)->data->data[loopi]);
1177 if (ampsqr > maxamp) {
1189 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1193 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1198 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1203 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1209 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1211 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1213 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1215 ret =
XLALSimIMRPhenomT(hplus, hcross, m1, m2, S1z, S2z, distance, inclination,
deltaT,
f_min, f_ref, phiRef,
params);
1222 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1224 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1226 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1228 ret =
XLALSimIMRPhenomTHM(hplus, hcross, m1, m2, S1z, S2z, distance, inclination,
deltaT,
f_min, f_ref, phiRef,
params);
1235 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1237 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1239 ret =
XLALSimIMRPhenomTP(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination,
deltaT,
f_min, f_ref, phiRef,
params);
1246 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1248 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1250 ret =
XLALSimIMRPhenomTPHM(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination,
deltaT,
f_min, f_ref, phiRef,
params);
1255 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1260 ret =
XLALSimInspiralTDFromFD(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, longAscNodes, eccentricity, meanPerAno,
deltaT,
f_min, f_ref,
params,
approximant);
1264 XLALPrintError(
"TD version of approximant not implemented in lalsimulation\n");
1268 if (polariz && (*hplus) && (*hcross)) {
1270 REAL8 cp = cos(2. * polariz);
1271 REAL8 sp = sin(2. * polariz);
1272 for (
UINT4 idx = 0; idx < (*hplus)->data->length; idx++) {
1273 tmpP = (*hplus)->data->data[idx];
1274 tmpC = (*hcross)->data->data[idx];
1275 (*hplus)->data->data[idx] = cp * tmpP + sp * tmpC;
1276 (*hcross)->data->data[idx] = cp * tmpC - sp * tmpP;
1306 REAL8 UNUSED meanPerAno,
1316 REAL8 LNhatx, LNhaty, LNhatz;
1318 REAL8 E1x, E1y, E1z;
1334 REAL8 spin1x, spin1y, spin1z;
1335 REAL8 spin2x, spin2y, spin2z;
1338 REAL8 chi1_l, chi2_l, chip, thetaJN, alpha0, phi_aligned, zeta_polariz;
1347 XLALPrintError(
"XLAL Error - %s: Passed in non-NULL pointer to LALSimInspiralTestGRParam for an approximant that does not use LALSimInspiralTestGRParam\n", __func__);
1353 XLALPrintWarning(
"XLAL Warning - %s: Large value of deltaF = %e requested...This corresponds to a very short TD signal (with padding). Consider a smaller value.\n", __func__, deltaF);
1354 if (deltaF < 1. / 4096.)
1355 XLALPrintWarning(
"XLAL Warning - %s: Small value of deltaF = %e requested...This corresponds to a very long TD signal. Consider a larger value.\n", __func__, deltaF);
1357 XLALPrintWarning(
"XLAL Warning - %s: Small value of m1 = %e (kg) = %e (Msun) requested...Perhaps you have a unit conversion error?\n", __func__, m1, m1 /
LAL_MSUN_SI);
1359 XLALPrintWarning(
"XLAL Warning - %s: Small value of m2 = %e (kg) = %e (Msun) requested...Perhaps you have a unit conversion error?\n", __func__, m2, m2 /
LAL_MSUN_SI);
1361 XLALPrintWarning(
"XLAL Warning - %s: Large value of total mass m1+m2 = %e (kg) = %e (Msun) requested...Signal not likely to be in band of ground-based detectors.\n", __func__, m1 + m2, (m1 + m2) /
LAL_MSUN_SI);
1362 if (S1x * S1x + S1y * S1y + S1z * S1z > 1.000001)
1363 XLALPrintWarning(
"XLAL Warning - %s: S1 = (%e,%e,%e) with norm > 1 requested...Are you sure you want to violate the Kerr bound?\n", __func__, S1x, S1y, S1z);
1364 if (S2x * S2x + S2y * S2y + S2z * S2z > 1.000001)
1365 XLALPrintWarning(
"XLAL Warning - %s: S2 = (%e,%e,%e) with norm > 1 requested...Are you sure you want to violate the Kerr bound?\n", __func__, S2x, S2y, S2z);
1367 XLALPrintWarning(
"XLAL Warning - %s: Small value of fmin = %e requested...Check for errors, this could create a very long waveform.\n", __func__,
f_min);
1368 if (
f_min > 40.000001)
1369 XLALPrintWarning(
"XLAL Warning - %s: Large value of fmin = %e requested...Check for errors, the signal will start in band.\n", __func__,
f_min);
1382 cfac = cos(inclination);
1383 pfac = 0.5 * (1. + cfac * cfac);
1390 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1392 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1394 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1403 ret =
XLALSimInspiralEFD(hptilde, hctilde, phiRef, deltaF, m1, m2,
f_min,
f_max, inclination, distance, longAscNodes, eccentricity, phaseO);
1411 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1413 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1415 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1418 ret =
XLALSimInspiralTaylorF2(hptilde, phiRef, deltaF, m1, m2, S1z, S2z,
f_min,
f_max, f_ref, distance,
params);
1422 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1423 for (j = 0; j < (*hptilde)->data->length; j++) {
1424 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1425 (*hptilde)->data->data[j] *=
pfac;
1432 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1434 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1436 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1438 if (eccentricity > 0.0 && eccentricity < 1.0 && f_ecc < 0.0) {
1444 XLAL_PRINT_WARNING(
"Warning... The reference frequency for eccentricity was set as default value(%f). This might be not optimal case for you.\n", f_ecc);
1448 ret =
XLALSimInspiralTaylorF2Ecc(hptilde, phiRef, deltaF, m1, m2, S1z, S2z,
f_min,
f_max, f_ref, distance, eccentricity,
params);
1452 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1453 for (j = 0; j < (*hptilde)->data->length; j++) {
1454 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1455 (*hptilde)->data->data[j] *=
pfac;
1462 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1464 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1466 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1471 ret =
XLALSimInspiralTaylorF2NLTides(hptilde, phiRef, deltaF, m1, m2, S1z, S2z,
f_min,
f_max, f_ref, distance,
params);
1475 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1476 for (j = 0; j < (*hptilde)->data->length; j++) {
1477 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1478 (*hptilde)->data->data[j] *=
pfac;
1486 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1490 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1496 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1497 for (j = 0; j < (*hptilde)->data->length; j++) {
1498 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1499 (*hptilde)->data->data[j] *=
pfac;
1508 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1510 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1512 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero CO spin given, but this approximant does not support this case.");
1516 ROTATEY(inclination, spin1x, spin1y, spin1z);
1517 LNhatx = sin(inclination);
1519 LNhatz = cos(inclination);
1525 ret =
XLALSimInspiralSpinTaylorF2(hptilde, hctilde, phiRef, deltaF, m1, m2, spin1x, spin1y, spin1z, LNhatx, LNhaty, LNhatz,
f_min,
f_max, f_ref, distance,
params, phaseO, amplitudeO);
1545 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1547 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1549 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1551 ret =
XLALSimInspiralTaylorF2ReducedSpin(hptilde, phiRef, deltaF, m1, m2,
XLALSimInspiralTaylorF2ReducedSpinComputeChi(m1, m2, S1z, S2z),
f_min,
f_max, distance, phaseO, amplitudeO);
1555 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1556 for (j = 0; j < (*hptilde)->data->length; j++) {
1557 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1558 (*hptilde)->data->data[j] *=
pfac;
1565 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1567 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1569 ret =
XLALSimInspiralTaylorF2ReducedSpinTidal(hptilde, phiRef, deltaF, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z), lambda1, lambda2,
f_min,
f_max, distance, phaseO, amplitudeO);
1573 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1574 for (j = 0; j < (*hptilde)->data->length; j++) {
1575 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1576 (*hptilde)->data->data[j] *=
pfac;
1584 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1586 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1588 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1590 ret =
XLALSimIMRPhenomBGenerateFD(hptilde, phiRef, deltaF, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z),
f_min,
f_max, distance);
1594 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1595 for (j = 0; j < (*hptilde)->data->length; j++) {
1596 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1597 (*hptilde)->data->data[j] *=
pfac;
1604 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1606 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1608 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1610 ret =
XLALSimIMRPhenomCGenerateFD(hptilde, phiRef, deltaF, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z),
f_min,
f_max, distance,
params);
1614 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1615 for (j = 0; j < (*hptilde)->data->length; j++) {
1616 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1617 (*hptilde)->data->data[j] *=
pfac;
1624 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1626 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1628 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1631 ret =
XLALSimIMRPhenomDGenerateFD(hptilde, phiRef, f_ref, deltaF, m1, m2, S1z, S2z,
f_min,
f_max, distance,
params,
NoNRT_V);
1635 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1636 for (j = 0; j < (*hptilde)->data->length; j++) {
1637 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1638 (*hptilde)->data->data[j] *=
pfac;
1645 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1647 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1648 if (lambda1 < 0 || lambda2 < 0)
1649 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f, lambda2 = %f. Both should be greater than zero for IMRPhenomD_NRTidal", lambda1, lambda2);
1651 ret =
XLALSimIMRPhenomDNRTidal(hptilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidal_V);
1655 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1656 for (j = 0; j < (*hptilde)->data->length; j++) {
1657 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1658 (*hptilde)->data->data[j] *=
pfac;
1665 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1667 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1668 if (lambda1 < 0 || lambda2 < 0)
1669 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f, lambda2 = %f. Both should be greater than zero for IMRPhenomD_NRTidalv2", lambda1, lambda2);
1673 ret =
XLALSimIMRPhenomDNRTidal(hptilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidalv2_V);
1677 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1678 for (j = 0; j < (*hptilde)->data->length; j++) {
1679 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1680 (*hptilde)->data->data[j] *=
pfac;
1687 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1688 if (lambda1 != 0 || lambda2 < 0)
1689 XLAL_ERROR(
XLAL_EDOM,
"lambda1 = %f, lambda2 = %f. lambda1 should be equal to zero and lambda2 should be greater than or equal to zero for IMRPhenomNSBH", lambda1, lambda2);
1691 ret =
XLALSimIMRPhenomNSBH(hptilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z,
params);
1695 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1696 for (j = 0; j < (*hptilde)->data->length; j++) {
1697 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j];
1698 (*hptilde)->data->data[j] *=
pfac;
1707 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1709 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1715 ret =
XLALSimIMRPhenomHM(hptilde, hctilde, freqs, m1, m2, S1z, S2z, distance, inclination, phiRef, deltaF, f_ref,
params);
1724 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1728 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1730 ret =
XLALSimIMREOBNRv2HMROM(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, 0);
1736 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1740 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1742 ret =
XLALSimIMREOBNRv2HMROM(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, 1);
1748 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1750 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1752 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1754 XLALPrintError(
"XLAL Error - %s: SEOBNRv1ROM Effective Spin model called with unequal aligned spins: %lf, %lf.\n", __func__, S1z, S2z);
1758 ret =
XLALSimIMRSEOBNRv1ROMEffectiveSpin(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z));
1764 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1766 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1768 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1770 ret =
XLALSimIMRSEOBNRv1ROMDoubleSpin(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z);
1776 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1778 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1780 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1782 XLALPrintError(
"XLAL Error - %s: SEOBNRv2ROM Effective Spin model called with unequal aligned spins: %lf, %lf.\n", __func__, S1z, S2z);
1786 ret =
XLALSimIMRSEOBNRv2ROMEffectiveSpin(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2,
XLALSimIMRPhenomBComputeChi(m1, m2, S1z, S2z));
1792 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1794 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1796 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1798 ret =
XLALSimIMRSEOBNRv2ROMDoubleSpin(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z);
1804 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1806 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1808 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1810 ret =
XLALSimIMRSEOBNRv2ROMDoubleSpinHI(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, -1);
1816 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1818 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1820 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1822 ret =
XLALSimIMRSEOBNRv4ROM(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, -1,
params,
NoNRT_V);
1828 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1830 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1832 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1834 ret =
XLALSimIMRSEOBNRv4HMROM(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, 5, 1,
params);
1840 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1842 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1844 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1847 phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, 1,
true,
params,
NoNRT_V);
1853 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1855 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1857 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1859 LALValue *mode_arr = NULL;
1863 UINT2 eobmodesv5hm = 7;
1873 if(mode_arr != NULL)
1876 nmodes = modeseq->
length/2;
1879 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
1880 modeseq->
data[2] == 3 && abs(modeseq->
data[3]) == 3)
1886 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
1887 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
1888 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1)
1894 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
1895 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
1896 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
1897 modeseq->
data[6] == 4 && abs(modeseq->
data[7]) == 4)
1903 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
1904 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
1905 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
1906 modeseq->
data[6] == 4 && abs(modeseq->
data[7]) == 4 &&
1907 modeseq->
data[8] == 5 && abs(modeseq->
data[9]) == 5)
1913 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
1914 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
1915 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
1916 modeseq->
data[8] == 4 && abs(modeseq->
data[9]) == 4 &&
1917 modeseq->
data[10] == 5 && abs(modeseq->
data[11]) == 5 &&
1918 modeseq->
data[6] == 3 && abs(modeseq->
data[7]) == 2)
1924 phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, eobmodesv5hm,
true,
params,
NoNRT_V);
1934 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1936 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1937 if (lambda1 < 0 || lambda2 < 0)
1938 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f, lambda2 = %f. Both should be greater than zero for SEOBNRv4_ROM_NRTidal", lambda1, lambda2);
1941 ret =
XLALSimIMRSEOBNRv4ROMNRTidal(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidal_V);
1947 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1949 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1950 if (lambda1 < 0 || lambda2 < 0)
1951 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f, lambda2 = %f. Both should be greater than zero for SEOBNRv4_ROM_NRTidal", lambda1, lambda2);
1954 ret =
XLALSimIMRSEOBNRv4ROMNRTidal(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidalv2_V);
1960 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1962 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1964 XLAL_ERROR(
XLAL_EDOM,
"m1 = %e, m2=%e. m1 should be greater than or equal to m2 for SEOBNRv4_ROM_NRTidalv2_NSBH", m1, m2);
1966 XLAL_ERROR(
XLAL_EDOM,
"lambda1 = %f. lambda1 should be zero for SEOBNRv4_ROM_NRTidalv2_NSBH", lambda1);
1968 XLAL_ERROR(
XLAL_EDOM,
"lambda2 = %f. lambda2 should be nonnegative for SEOBNRv4_ROM_NRTidalv2_NSBH", lambda2);
1972 XLAL_PRINT_WARNING(
"WARNING: S2z = %f. SEOBNRv4_ROM_NRTidalv2_NSBH is calibrated to NR data for which the NS spin is zero.", S2z);
1974 XLAL_PRINT_WARNING(
"WARNING: m2=%e MSun. SEOBNRv4_ROM_NRTidalv2_NSBH is calibrated to NR data for which the NS mass is >=1 solar mass.", m2 /
LAL_MSUN_SI);
1980 ret =
XLALSimIMRSEOBNRv4ROMNRTidal(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidalv2NSBH_V);
1986 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1988 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1990 ret =
XLALSimIMRSEOBNRv4TSurrogate(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2,
SEOBNRv4TSurrogate_CUBIC);
1997 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1999 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2000 if (lambda1 < 0 || lambda2 < 0)
2001 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f, lambda2 = %f. Both should be greater than zero for SEOBNRv5_ROM_NRTidal", lambda1, lambda2);
2004 ret =
XLALSimIMRSEOBNRv5ROMNRTidal(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2,
params,
NRTidalv3_V);
2010 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
2012 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2013 ret =
XLALSimIMRLackeyTidal2013(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, f_ref, distance, inclination, m1, m2, S1z, lambda2);
2019 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2021 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2023 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2027 XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame(&chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz, m1, m2, f_ref, phiRef, inclination, S1x, S1y, S1z, S2x, S2y, S2z,
IMRPhenomPv1_V);
2029 ret =
XLALSimIMRPhenomP(hptilde, hctilde, chi1_l, chi2_l, chip, thetaJN, m1, m2, distance, alpha0, phi_aligned, deltaF,
f_min,
f_max, f_ref,
IMRPhenomPv1_V,
NoNRT_V,
params);
2032 for (
UINT4 idx = 0; idx < (*hptilde)->data->length; idx++) {
2033 PhPpolp = (*hptilde)->data->data[idx];
2034 PhPpolc = (*hctilde)->data->data[idx];
2035 (*hptilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolp + sin(2. * zeta_polariz) * PhPpolc;
2036 (*hctilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolc - sin(2. * zeta_polariz) * PhPpolp;
2043 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2045 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2047 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2051 XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame(&chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz, m1, m2, f_ref, phiRef, inclination, S1x, S1y, S1z, S2x, S2y, S2z,
IMRPhenomPv2_V);
2053 ret =
XLALSimIMRPhenomP(hptilde, hctilde, chi1_l, chi2_l, chip, thetaJN, m1, m2, distance, alpha0, phi_aligned, deltaF,
f_min,
f_max, f_ref,
IMRPhenomPv2_V,
NoNRT_V,
params);
2056 for (
UINT4 idx = 0; idx < (*hptilde)->data->length; idx++) {
2057 PhPpolp = (*hptilde)->data->data[idx];
2058 PhPpolc = (*hctilde)->data->data[idx];
2059 (*hptilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolp + sin(2. * zeta_polariz) * PhPpolc;
2060 (*hctilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolc - sin(2. * zeta_polariz) * PhPpolp;
2067 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2069 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2073 XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame(&chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz, m1, m2, f_ref, phiRef, inclination, S1x, S1y, S1z, S2x, S2y, S2z,
IMRPhenomPv2NRTidal_V);
2075 ret =
XLALSimIMRPhenomP(hptilde, hctilde, chi1_l, chi2_l, chip, thetaJN, m1, m2, distance, alpha0, phi_aligned, deltaF,
f_min,
f_max, f_ref,
IMRPhenomPv2NRTidal_V,
NRTidal_V,
params);
2078 for (
UINT4 idx = 0; idx < (*hptilde)->data->length; idx++) {
2079 PhPpolp = (*hptilde)->data->data[idx];
2080 PhPpolc = (*hctilde)->data->data[idx];
2081 (*hptilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolp + sin(2. * zeta_polariz) * PhPpolc;
2082 (*hctilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolc - sin(2. * zeta_polariz) * PhPpolp;
2088 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2090 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2094 XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame(&chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz, m1, m2, f_ref, phiRef, inclination, S1x, S1y, S1z, S2x, S2y, S2z,
IMRPhenomPv2NRTidal_V);
2096 ret =
XLALSimIMRPhenomP(hptilde, hctilde, chi1_l, chi2_l, chip, thetaJN, m1, m2, distance, alpha0, phi_aligned, deltaF,
f_min,
f_max, f_ref,
IMRPhenomPv2NRTidal_V,
NRTidalv2_V,
params);
2099 for (
UINT4 idx = 0; idx < (*hptilde)->data->length; idx++) {
2100 PhPpolp = (*hptilde)->data->data[idx];
2101 PhPpolc = (*hctilde)->data->data[idx];
2102 (*hptilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolp + sin(2. * zeta_polariz) * PhPpolc;
2103 (*hctilde)->data->data[idx] = cos(2. * zeta_polariz) * PhPpolc - sin(2. * zeta_polariz) * PhPpolp;
2110 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2112 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2114 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2121 ret =
XLALSimIMRPhenomPv3(hptilde, hctilde, freqspv3, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, deltaF, f_ref,
params);
2130 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2132 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2134 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2142 ret =
XLALSimIMRPhenomPv3HMGetHplusHcross(hptilde, hctilde, freqspv3hm, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef, deltaF, f_ref,
params);
2153 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2155 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2162 ROTATEY(inclination, spin1x, spin1y, spin1z);
2163 ROTATEY(inclination, spin2x, spin2y, spin2z);
2164 LNhatx = sin(inclination);
2166 LNhatz = cos(inclination);
2175 fStart = 0.9 *
f_min;
2185 f_min,
f_max, deltaF, kMax, phiRef, v0, m1, m2, fStart, f_ref, distance, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, LNhatx, LNhaty, LNhatz, E1x, E1y, E1z, lambda1, lambda2, quadparam1, quadparam2,
2186 params, phaseO, amplitudeO, phiRefAtEnd);
2194 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2196 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2203 ROTATEY(inclination, spin1x, spin1y, spin1z);
2204 ROTATEY(inclination, spin2x, spin2y, spin2z);
2205 LNhatx = sin(inclination);
2207 LNhatz = cos(inclination);
2216 fStart = 0.9 *
f_min;
2226 f_min,
f_max, deltaF, kMax, phiRef, v0, m1, m2, fStart, f_ref, distance, spin1x, spin1y, spin1z, spin2x, spin2y, spin2z, LNhatx, LNhaty, LNhatz, E1x, E1y, E1z, lambda1, lambda2, quadparam1, quadparam2,
2227 params, phaseO, amplitudeO, phiRefAtEnd);
2235 ret =
XLALSimNRSur4d2s(hptilde, hctilde, phiRef, deltaF,
f_min,
f_max, distance, inclination, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z);
2244 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
2246 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2248 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2260 ret =
XLALSimIMRPhenomXASGenerateFD(hptilde, m1, m2, S1z, S2z, distance,
f_min,
f_max, deltaF, phiRef, f_ref,
params);
2265 *hctilde =
XLALCreateCOMPLEX16FrequencySeries(
"FD hcross", &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF, &((*hptilde)->sampleUnits), (*hptilde)->data->length);
2266 for (j = 0; j < (*hptilde)->data->length; j++) {
2267 (*hctilde)->data->data[j] = -I * cfac * (*hptilde)->data->data[j] * Ylmfactor;
2268 (*hptilde)->data->data[j] *=
pfac * Ylmfactor;
2277 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
2279 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2281 LALDict *LALparams_aux;
2296 ret =
XLALSimIMRPhenomXHM(hptilde, hctilde, m1, m2, S1z, S2z,
f_min,
f_max, deltaF, distance, inclination, phiRef, f_ref, LALparams_aux);
2312 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
2314 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2316 LALDict *LALparams_aux;
2331 ret =
XLALSimIMRPhenomXHM(hptilde, hctilde, m1, m2, S1z, S2z,
f_min,
f_max, deltaF, distance, inclination, phiRef, f_ref, LALparams_aux);
2346 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
2348 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
2350 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2353#ifndef PHENOMXHMDEBUG
2367 if (resTest != 0 && Mtot > 500) {
2371 if (resTest == 0.) {
2372 ret =
XLALSimIMRPhenomXHM2(hptilde, hctilde, m1, m2, S1z, S2z,
f_min,
f_max, deltaF, distance, inclination, phiRef, f_ref,
params);
2374 ret =
XLALSimIMRPhenomXHM(hptilde, hctilde, m1, m2, S1z, S2z,
f_min,
f_max, deltaF, distance, inclination, phiRef, f_ref,
params);
2381 printf(
"\n\n**********Leaving ChooseFDWaveform *********************\n\n");
2390 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2394 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2397 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2408 ret =
XLALSimIMRPhenomXPGenerateFD(hptilde, hctilde, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef,
f_min,
f_max, deltaF, f_ref,
params);
2424 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2429 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2432 LALDict *LALparams_aux;
2447 XLAL_CHECK(
XLAL_SUCCESS == ret, ret,
"Failed to set quadrupole parameters from lambdas for IMRPhenomXP_NRTidalv2");
2455 ret =
XLALSimIMRPhenomXPHM(hptilde, hctilde, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination,phiRef,
f_min,
f_max, deltaF, f_ref, LALparams_aux);
2474 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2479 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2482 LALDict *LALparams_aux;
2497 XLAL_CHECK(
XLAL_SUCCESS == ret, ret,
"Failed to set quadrupole parameters from lambdas for IMRPhenomXP_NRTidalv3");
2505 ret =
XLALSimIMRPhenomXPHM(hptilde, hctilde, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination,phiRef,
f_min,
f_max, deltaF, f_ref, LALparams_aux);
2520 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2524 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2527 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2540 if (usemodes == 0) {
2541 ret =
XLALSimIMRPhenomXPHM(hptilde, hctilde, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef,
f_min,
f_max, deltaF, f_ref,
params);
2543 ret =
XLALSimIMRPhenomXPHMFromModes(hptilde, hctilde, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, distance, inclination, phiRef,
f_min,
f_max, deltaF, f_ref,
params);
2554 LALDict *params_aux;
2569 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2574 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2578 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2613 XLAL_ERROR(
XLAL_EFUNC,
"Error: Antisymmetric waveform generation not supported without PNR angles, please turn on PNR angles to produce waveform with asymmetries in the (2,2) and (2,-2) modes \n");
2630 distance, inclination,
2631 phiRef,
f_min,
f_max, deltaF, f_ref, params_aux
2640 distance, inclination,
2641 phiRef,
f_min,
f_max, deltaF, f_ref, params_aux
2658 LALDict *params_aux;
2673 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
2678 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2682 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2717 XLAL_ERROR(
XLAL_EFUNC,
"Error: Antisymmetric waveform generation not supported without PNR angles, please turn on PNR angles to produce waveform with asymmetries in the (2,2) and (2,-2) modes \n");
2743 distance, inclination,
2744 phiRef,
f_min,
f_max, deltaF, f_ref, params_aux
2753 distance, inclination,
2754 phiRef,
f_min,
f_max, deltaF, f_ref, params_aux
2770 XLALPrintError(
"FD version of approximant not implemented in lalsimulation\n");
2774 REAL8 polariz = longAscNodes;
2777 for (
UINT4 idx = 0; idx < (*hptilde)->data->length; idx++) {
2778 tmpP = (*hptilde)->data->data[idx];
2779 tmpC = (*hctilde)->data->data[idx];
2780 (*hptilde)->data->data[idx] = cos(2. * polariz) * tmpP + sin(2. * polariz) * tmpC;
2781 (*hctilde)->data->data[idx] = cos(2. * polariz) * tmpC - sin(2. * polariz) * tmpP;
2818 XLALPrintWarning(
"WARNING: The phiRef argument in XLALSimInspiralChooseTDModes will be removed in the future and is currently not used. \n");
2824 UINT4 PrecEOBversion;
2825 REAL8 spin1[3], spin2[3];
2833 XLALPrintError(
"XLAL Error - %s: Passed in non-NULL pointer to LALSimInspiralTestGRParam for an approximant that does not use LALSimInspiralTestGRParam\n", __func__);
2839 XLALPrintWarning(
"XLAL Warning - %s: Large value of deltaT = %e requested.\nPerhaps sample rate and time step size were swapped?\n", __func__,
deltaT);
2840 if (
deltaT < 1. / 16385.)
2841 XLALPrintWarning(
"XLAL Warning - %s: Small value of deltaT = %e requested.\nCheck for errors, this could create very large time series.\n", __func__,
deltaT);
2843 XLALPrintWarning(
"XLAL Warning - %s: Small value of m1 = %e (kg) = %e (Msun) requested.\nPerhaps you have a unit conversion error?\n", __func__, m1, m1 /
LAL_MSUN_SI);
2845 XLALPrintWarning(
"XLAL Warning - %s: Small value of m2 = %e (kg) = %e (Msun) requested.\nPerhaps you have a unit conversion error?\n", __func__, m2, m2 /
LAL_MSUN_SI);
2847 XLALPrintWarning(
"XLAL Warning - %s: Large value of total mass m1+m2 = %e (kg) = %e (Msun) requested.\nSignal not likely to be in band of ground-based detectors.\n", __func__, m1 + m2, (m1 + m2) /
LAL_MSUN_SI);
2848 if (S1x * S1x + S1y * S1y + S1z * S1z > 1.000001)
2849 XLALPrintWarning(
"XLAL Warning - %s: S1 = (%e,%e,%e) with norm > 1 requested.\nAre you sure you want to violate the Kerr bound?\n", __func__, S1x, S1y, S1z);
2850 if (S2x * S2x + S2y * S2y + S2z * S2z > 1.000001)
2851 XLALPrintWarning(
"XLAL Warning - %s: S2 = (%e,%e,%e) with norm > 1 requested.\nAre you sure you want to violate the Kerr bound?\n", __func__, S2x, S2y, S2z);
2853 XLALPrintWarning(
"XLAL Warning - %s: Small value of fmin = %e requested.\nCheck for errors, this could create a very long waveform.\n", __func__,
f_min);
2854 if (
f_min > 40.000001)
2855 XLALPrintWarning(
"XLAL Warning - %s: Large value of fmin = %e requested.\nCheck for errors, the signal will start in band.\n", __func__,
f_min);
2871 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2873 hlm =
XLALSimInspiralTaylorT1PNModes(v0,
deltaT, m1, m2,
f_min, f_ref,
r, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(LALpars), amplitudeO, phaseO, lmax);
2882 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2884 hlm =
XLALSimInspiralTaylorT2PNModes(v0,
deltaT, m1, m2,
f_min, f_ref,
r, lambda1, lambda2,
XLALSimInspiralWaveformParamsLookupPNTidalOrder(LALpars), amplitudeO, phaseO, lmax);
2893 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2895 hlm =
XLALSimInspiralTaylorT3PNModes(v0,
deltaT, m1, m2,
f_min, f_ref,
r, lambda1, lambda2, 0, amplitudeO, phaseO, lmax);
2904 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2906 hlm =
XLALSimInspiralTaylorT4PNModes(v0,
deltaT, m1, m2,
f_min, f_ref,
r, lambda1, lambda2, 0, amplitudeO, phaseO, lmax);
2916 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
2923 for (
m = -
l;
m < 0;
m++) {
2928 for (j = 0; j < tmpmode->
data->
length; j++) {
2943 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2945 hlm =
XLALSimInspiralPrecessingNRSurModes(
deltaT, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r, LALpars,
approximant);
2953 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2955 hlm =
XLALSimInspiralPrecessingNRSurModes(
deltaT, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r, LALpars,
approximant);
2965 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2978 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2991 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
2993 hlm =
XLALSimIMRPhenomTPHM_ChooseTDModes(m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
r,
deltaT,
f_min, f_ref, LALpars);
3002 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3004 XLALPrintWarning(
"XLAL Warning - %s: This approximant does not use f_ref. The reference phase will be defined at coalescence.\n", __func__);
3006 UINT4 SpinAlignedEOBversion;
3013 REAL8 lambda2Tidal1 = 0.0;
3014 REAL8 lambda2Tidal2 = 0.0;
3015 REAL8 omega02Tidal1 = 0.0;
3016 REAL8 omega02Tidal2 = 0.0;
3017 REAL8 lambda3Tidal1 = 0.0;
3018 REAL8 lambda3Tidal2 = 0.0;
3019 REAL8 omega03Tidal1 = 0.0;
3020 REAL8 omega03Tidal2 = 0.0;
3021 REAL8 quadparam1 = 1.0;
3022 REAL8 quadparam2 = 1.0;
3034 REAL8 domega220 = 0.0;
3035 REAL8 dtau220 = 0.0;
3036 REAL8 domega210 = 0.0;
3037 REAL8 dtau210 = 0.0;
3038 REAL8 domega330 = 0.0;
3039 REAL8 dtau330 = 0.0;
3040 REAL8 domega440 = 0.0;
3041 REAL8 dtau440 = 0.0;
3042 REAL8 domega550 = 0.0;
3043 REAL8 dtau550 = 0.0;
3074 &dynamics, &dynamicsHi,
3080 SpinAlignedEOBversion,
3081 lambda2Tidal1, lambda2Tidal2,
3082 omega02Tidal1, omega02Tidal2,
3083 lambda3Tidal1, lambda3Tidal2,
3084 omega03Tidal1, omega03Tidal2,
3085 quadparam1, quadparam2,
3086 nqcCoeffsInput, nqcFlag,
3099 UINT4 modeArrayCreated = 0;
3105 if (modeArray == NULL) {
3107 modeArrayCreated = 1;
3122 modeArray, modes->
l, -modes->
m
3124 sprintf(modeName,
"h%dm%d", modes->
l, modes->
m);
3143 modeArray, modes->
l, modes->
m
3150 modes = modes->
next;
3153 if (modeArrayCreated) {
3166 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3168 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
3176 PrecEOBversion = 401;
3185 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3187 XLALPrintWarning(
"XLAL Warning - %s: This approximant does use f_ref. The reference phase will be defined at coalescence.\n", __func__);
3195 PrecEOBversion = 402;
3203 XLALPrintError(
"XLAL ERROR - %s: maximum l implemented for SpinTaylors is 4, = %d requested.\n", __func__, lmax);
3231 XLALSimInspiralSpinTaylorDriver(NULL, NULL, &
V, &Phi, &Spin1x, &Spin1y, &Spin1z, &Spin2x, &Spin2y, &Spin2z, &LNhx, &LNhy, &LNhz, &E1x, &E1y, &E1z, 0.,
deltaT, m1, m2,
f_min, f_ref,
r, S1x, S1y, S1z, S2x, S2y, S2z, lnhx, lnhy, lnhz, e1x, e1y,
3233 INT4 ma_needs_destroy = 0;
3235 if (modearray == NULL) {
3237 ma_needs_destroy = 1;
3238 for (
l = 2;
l <= (
UINT4) lmax;
l++)
3241 errCode +=
XLALSimInspiralSpinTaylorHlmModesFromOrbit(&hlm,
V, Phi, LNhx, LNhy, LNhz, E1x, E1y, E1z, Spin1x, Spin1y, Spin1z, Spin2x, Spin2y, Spin2z, m1, m2,
r,
XLALSimInspiralWaveformParamsLookupPNAmplitudeOrder(LALpars), modearray);
3257 if (ma_needs_destroy)
3265 if (errCode || !(hlm))
3305 XLALPrintError(
"XLAL Error - %s: Passed in non-NULL pointer to LALSimInspiralTestGRParam for an approximant that does not use LALSimInspiralTestGRParam\n", __func__);
3311 XLALPrintWarning(
"XLAL Warning - %s: Large value of deltaF = %e requested...This corresponds to a very short TD signal (with padding). Consider a smaller value.\n", __func__, deltaF);
3312 if (deltaF < 1. / 4096.)
3313 XLALPrintWarning(
"XLAL Warning - %s: Small value of deltaF = %e requested...This corresponds to a very long TD signal. Consider a larger value.\n", __func__, deltaF);
3315 XLALPrintWarning(
"XLAL Warning - %s: Small value of m1 = %e (kg) = %e (Msun) requested...Perhaps you have a unit conversion error?\n", __func__, m1, m1 /
LAL_MSUN_SI);
3317 XLALPrintWarning(
"XLAL Warning - %s: Small value of m2 = %e (kg) = %e (Msun) requested...Perhaps you have a unit conversion error?\n", __func__, m2, m2 /
LAL_MSUN_SI);
3319 XLALPrintWarning(
"XLAL Warning - %s: Large value of total mass m1+m2 = %e (kg) = %e (Msun) requested...Signal not likely to be in band of ground-based detectors.\n", __func__, m1 + m2, (m1 + m2) /
LAL_MSUN_SI);
3320 if (S1x * S1x + S1y * S1y + S1z * S1z > 1.000001)
3321 XLALPrintWarning(
"XLAL Warning - %s: S1 = (%e,%e,%e) with norm > 1 requested...Are you sure you want to violate the Kerr bound?\n", __func__, S1x, S1y, S1z);
3322 if (S2x * S2x + S2y * S2y + S2z * S2z > 1.000001)
3323 XLALPrintWarning(
"XLAL Warning - %s: S2 = (%e,%e,%e) with norm > 1 requested...Are you sure you want to violate the Kerr bound?\n", __func__, S2x, S2y, S2z);
3325 XLALPrintWarning(
"XLAL Warning - %s: Small value of fmin = %e requested...Check for errors, this could create a very long waveform.\n", __func__,
f_min);
3326 if (
f_min > 40.000001)
3327 XLALPrintWarning(
"XLAL Warning - %s: Large value of fmin = %e requested...Check for errors, the signal will start in band.\n", __func__,
f_min);
3345 LALValue *ModeArray = NULL;
3346 LALDict *params_aux;
3369 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3372 XLALSimIMRPhenomXHMModes(&hlms, m1, m2, S1z, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance,
params);
3380 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3383 XLALSimIMRPhenomXPHMModes(&hlms, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance, inclination,
params);
3401 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3430 XLAL_ERROR_NULL(
XLAL_EFUNC,
"Error: Antisymmetric waveform generation not supported without PNR angles, please turn on PNR angles to produce waveform with asymmetries in the (2,2) and (2,-2) modes \n");
3440 XLALSimIMRPhenomXPHMModes(&hlms, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance, inclination, params_aux);
3462 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3491 XLAL_ERROR_NULL(
XLAL_EFUNC,
"Error: Antisymmetric waveform generation not supported without PNR angles, please turn on PNR angles to produce waveform with asymmetries in the (2,2) and (2,-2) modes \n");
3510 XLALSimIMRPhenomXPHMModes(&hlms, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, deltaF,
f_min,
f_max, f_ref, phiRef, distance, inclination, params_aux);
3524 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3537 if (ModeArray == NULL) {
3554 nmodes = modeseq->
length / 2;
3559 nmodes = modeseq->
length / 2;
3574 for (
UINT4 i = 0;
i < nmodes;
i++) {
3576 l = modeseq->
data[2 *
i];
3577 m = modeseq->
data[2 *
i + 1];
3590 if (nmodes == 1 && modeseq->
data[0] == 2 && abs(modeseq->
data[0]) == 2) {
3595 retcode =
XLALSimIMRSEOBNRv4HMROM_Modes(hlms_tmp, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z, -1, eobmodes, 1);
3604 length = (*hlms_tmp)->mode->data->length - 1;
3608 for (
UINT4 i = 0;
i < nmodes;
i++) {
3610 l = modeseq->
data[2 *
i];
3611 m = modeseq->
data[2 *
i + 1];
3626 for (
INT4 j = 0; j < length; j++) {
3639 for (
INT4 i = -length;
i <= length;
i++) {
3640 freqsSphH->
data[
i + length] =
i * deltaF;
3652 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3661 if(ModeArray == NULL)
3671 nmodes = modeseq->
length/2;
3677 nmodes = modeseq->
length/2;
3688 m = modeseq->
data[2*
i+1];
3700 UINT2 eobmodesv5 = 1;
3703 retcode =
XLALSimIMRSEOBNRv5HMROM_Modes(hlms_tmp, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z, -1, eobmodesv5,
true,
params,
NoNRT_V);
3712 length = (*hlms_tmp)->mode->data->length -1;
3720 m = modeseq->
data[2*
i+1];
3736 for(
INT4 j=0; j<length; j++)
3750 for (
INT4 i = -length;
i<=length;
i++)
3752 freqsSphH->
data[
i+length] =
i*deltaF;
3764 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3773 if(ModeArray == NULL)
3796 nmodes = modeseq->
length/2;
3802 nmodes = modeseq->
length/2;
3825 m = modeseq->
data[2*
i+1];
3837 UINT2 eobmodesv5hm = 7;
3838 if(nmodes == 1 && modeseq->
data[0]==2 && abs(modeseq->
data[1])==2)
3846 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
3847 modeseq->
data[2] == 3 && abs(modeseq->
data[3]) == 3)
3853 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
3854 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
3855 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1)
3861 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
3862 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
3863 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
3864 modeseq->
data[6] == 4 && abs(modeseq->
data[7]) == 4)
3870 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
3871 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
3872 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
3873 modeseq->
data[6] == 4 && abs(modeseq->
data[7]) == 4 &&
3874 modeseq->
data[8] == 5 && abs(modeseq->
data[9]) == 5)
3880 modeseq->
data[0] == 2 && abs(modeseq->
data[1]) == 2 &&
3881 modeseq->
data[4] == 3 && abs(modeseq->
data[5]) == 3 &&
3882 modeseq->
data[2] == 2 && abs(modeseq->
data[3]) == 1 &&
3883 modeseq->
data[8] == 4 && abs(modeseq->
data[9]) == 4 &&
3884 modeseq->
data[10] == 5 && abs(modeseq->
data[11]) == 5 &&
3885 modeseq->
data[6] == 3 && abs(modeseq->
data[7]) == 2)
3890 retcode =
XLALSimIMRSEOBNRv5HMROM_Modes(hlms_tmp, phiRef, deltaF,
f_min,
f_max, f_ref, distance, m1, m2, S1z, S2z, -1, eobmodesv5hm,
true,
params,
NoNRT_V);
3899 length = (*hlms_tmp)->mode->data->length -1;
3907 m = modeseq->
data[2*
i+1];
3923 for(
INT4 j=0; j<length; j++)
3937 for (
INT4 i = -length;
i<=length;
i++)
3939 freqsSphH->
data[
i+length] =
i*deltaF;
3951 XLAL_ERROR_NULL(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
3963 if (ModeArray == NULL) {
3983 nmodes = modeseq->
length / 2;
3987 nmodes = modeseq->
length / 2;
4005 for (
UINT4 i = 0;
i < nmodes;
i++) {
4007 l = modeseq->
data[2 *
i];
4008 m = modeseq->
data[2 *
i + 1];
4034 retcode =
XLALSimIMRPhenomHMGethlmModes(hlms_tmp, freqs, m1, m2, 0., 0., S1z, 0., 0., S2z, phiRef, deltaF, f_ref, params_aux);
4044 length = (*hlms_tmp)->mode->data->length - 1;
4057 for (
UINT4 i = 0;
i < nmodes;
i++) {
4059 l = modeseq->
data[2 *
i];
4060 m = modeseq->
data[2 *
i + 1];
4071 COMPLEX16 extra_factor_lm = minus1l * amp0 * cpow(extra_phase,
m);
4080 extra_factor_lm = minus1l;
4082 extra_factor_lm = minus1l * extra_factor_lm;
4085 for (
INT4 j = 0; j < length; j++) {
4103 for (
INT4 i = -length;
i <= length;
i++) {
4104 freqsSphH->
data[
i + length] =
i * deltaF;
int XLALDictContains(const LALDict *dict, const char *key)
void XLALDestroyDict(LALDict *dict)
LALDict * XLALDictDuplicate(const LALDict *orig)
LALDict * XLALCreateDict(void)
int XLALDictInsertUINT4Value(LALDict *dict, const char *key, UINT4 value)
int XLALDictInsertUINT2Value(LALDict *dict, const char *key, UINT2 value)
int XLALDictInsertREAL8Value(LALDict *dict, const char *key, REAL8 value)
INT4 XLALDictLookupINT4Value(const LALDict *dict, const char *key)
int XLALSimIMRPhenomHM(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1z, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, REAL8 f_ref, LALDict *extraParams)
int XLALSimIMRPhenomXPHMModes(SphHarmFrequencySeries **hlms, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 deltaF, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 phiRef, REAL8 distance, REAL8 inclination, LALDict *LALparams)
Function to obtain a SphHarmFrequencySeries with the individual modes h_lm.
int XLALSimIMRPhenSpinInspiralRDGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phi0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 f_ref, REAL8 r, REAL8 iota, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, int phaseO, int ampO, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams)
int XLALSimIMRPhenomPv3(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, const REAL8 f_ref, LALDict *extraParams)
Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenom...
int XLALSimIMRSEOBNRv4HMROM_Modes(SphHarmFrequencySeries **hlm, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, bool use_hybridization)
int XLALSimIMRPhenomPv3HMGetHplusHcross(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 deltaF, REAL8 f_ref, LALDict *extraParams)
int XLALSimIMRTEOBResumS(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiRef, const REAL8 deltaT, const REAL8 m1, const REAL8 m2, const REAL8 S1x, const REAL8 S1y, const REAL8 S1z, const REAL8 S2x, const REAL8 S2y, const REAL8 S2z, const REAL8 lambda1, const REAL8 lambda2, const REAL8 distance, const REAL8 inclination, const REAL8 longAscNodes, LALDict *LALparams, const REAL8 eccentricity, const REAL8 meanPerAno, const REAL8 f_min, const REAL8 f_ref)
int XLALSimIMRPhenomHMGethlmModes(SphHarmFrequencySeries **hlms, REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 phiRef, const REAL8 deltaF, REAL8 f_ref, LALDict *extraParams)
int XLALSimInspiralNRWaveformGetHplusHcross(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 inclination, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 r, REAL8 fStart, REAL8 fRef, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, const char *NRDataFile, LALValue *ModeArray)
int XLALSimIMRSEOBNRv5HMROM(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, bool use_hybridization, LALDict *LALParams, NRTidal_version_type NRTidal_version)
int XLALSimIMREOBNRv2HMROM(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, const int higherModesFlag)
int XLALSimSpinInspiralGenerator(REAL8TimeSeries **hPlus, REAL8TimeSeries **hCross, REAL8 phi_start, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 f_ref, REAL8 r, REAL8 iota, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, int phaseO, int ampO, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams)
int XLALSimIMRSpinEOBWaveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 spin1[], const REAL8 spin2[], const UINT4 PrecEOBversion)
Standard interface for SEOBNRv3 waveform generator: calls XLALSimIMRSpinEOBWaveformAll.
int XLALSimIMRSEOBNRv4HMROM(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, bool use_hybridization, LALDict *LALParams)
int XLALSimIMRSEOBNRv5HMROM_Modes(SphHarmFrequencySeries **hlm, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, bool use_hybridization, LALDict *LALParams, NRTidal_version_type NRTidal_version)
int XLALSimIMRSpinPrecEOBWaveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 INspin1[], const REAL8 INspin2[], const UINT4 PrecEOBversion, LALDict *LALParams)
SphHarmTimeSeries * XLALSimIMRSpinPrecEOBModes(const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 INspin1[], const REAL8 INspin2[], const UINT4 PrecEOBversion, LALDict *LALParams)
SphHarmTimeSeries * XLALSimIMRNRHybSur3dq8Modes(REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 chi1z, REAL8 chi2z, REAL8 fMin, REAL8 fRef, REAL8 distance, LALDict *LALparams)
Reference: arxiv:1812.07865.
INT4 XLALSimIMRNRHybSur3dq8Polarizations(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 inclination, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 distance, REAL8 fMin, REAL8 fRef, REAL8 chi1z, REAL8 chi2z, LALDict *LALparams)
Reference: arxiv:1812.07865.
int XLALSimNRSur4d2s(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z)
Compute waveform in LAL format for the NRSur4d2s_FDROM NR surrogate model.
#define ROTATEY(angle, vx, vy, vz)
int XLALSimInspiralApproximantAcceptTestGRParams(Approximant approx)
const char * XLALSimInspiralGetStringFromApproximant(Approximant approximant)
Returns a string associated with an Approximant enum value.
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...
int XLALSimLorentzInvarianceViolationTerm(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1, REAL8 m2, REAL8 r, LALDict *LALparams)
int XLALSimInspiralEFD(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8 phiRef, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 fStart, const REAL8 fEnd, const REAL8 i, const REAL8 r, const REAL8 inclination_azimuth, const REAL8 e_min, int phaseO)
SphHarmTimeSeries * XLALSimInspiralTaylorT3PNModes(REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO, int lmax)
SphHarmTimeSeries * XLALSimInspiralTaylorT2PNModes(REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO, int lmax)
int XLALSimInspiralSpinTaylorDriver(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8TimeSeries **Vout, REAL8TimeSeries **Phiout, REAL8TimeSeries **S1xout, REAL8TimeSeries **S1yout, REAL8TimeSeries **S1zout, REAL8TimeSeries **S2xout, REAL8TimeSeries **S2yout, REAL8TimeSeries **S2zout, REAL8TimeSeries **LNhxout, REAL8TimeSeries **LNhyout, REAL8TimeSeries **LNhzout, REAL8TimeSeries **E1xout, REAL8TimeSeries **E1yout, REAL8TimeSeries **E1zout, REAL8 phiRef, REAL8 deltaT, REAL8 m1_SI, REAL8 m2_SI, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, LALDict *LALparams, Approximant approx)
Driver function to generate any of SpinTaylorT1/T5/T4 If the output entries are not null the relative...
SphHarmTimeSeries * XLALSimInspiralTaylorT1PNModes(REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO, int lmax)
int XLALSimInspiralGeneratorAddConditioningForApproximant(LALSimInspiralGenerator *generator, int approximant)
int XLALSimInspiralTaylorT2PNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 i, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO)
int XLALSimInspiralTEOBResumROM(REAL8TimeSeries **hPlus, REAL8TimeSeries **hCross, REAL8 phiRef, REAL8 deltaT, REAL8 fLow, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 lambda1, REAL8 lambda2)
INT4 XLALSimInspiralSpinTaylorHlmModesFromOrbit(SphHarmTimeSeries **hlm, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8TimeSeries *LNhx, REAL8TimeSeries *LNhy, REAL8TimeSeries *LNhz, REAL8TimeSeries *e1x, REAL8TimeSeries *e1y, REAL8TimeSeries *e1z, REAL8TimeSeries *S1x, REAL8TimeSeries *S1y, REAL8TimeSeries *S1z, REAL8TimeSeries *S2x, REAL8TimeSeries *S2y, REAL8TimeSeries *S2z, REAL8 m1_SI, REAL8 m2_SI, REAL8 distance, int ampO, LALValue *modearray)
int XLALSimInspiralTaylorT4PNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 i, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO)
int XLALSimInspiralSpinDominatedWaveformInterfaceTD(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 D, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 incl, int phaseO, int amplitudeO, REAL8 phiRef)
Interface routine, calculating the prefered variables for the Spin-dominated waveforms.
SphHarmTimeSeries * XLALSimInspiralTaylorT4PNModes(REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO, int lmax)
static int generate_fd_waveform(COMPLEX16FrequencySeries **hplus, COMPLEX16FrequencySeries **hcross, LALDict *params, LALSimInspiralGenerator *myself)
Fourier domain polarizations.
static int generate_fd_modes(SphHarmFrequencySeries **hlm, LALDict *params, LALSimInspiralGenerator *myself)
Define waveform generator methods to generate polarizations or modes in time or Fourier domain for le...
static int generate_td_waveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, LALDict *params, LALSimInspiralGenerator *myself)
Time domain polarizations.
static int XLALSimInspiralChooseTDWaveform_legacy(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 longAscNodes, REAL8 eccentricity, REAL8 meanPerAno, REAL8 deltaT, REAL8 f_min, REAL8 f_ref, LALDict *params, Approximant approximant)
Copy of the old code of XLALSimInspiralChooseTDWaveform().
static int generate_td_modes(SphHarmTimeSeries **hlm, LALDict *params, LALSimInspiralGenerator *myself)
Time domain modes.
#define DEFINE_GENERATOR_TEMPLATE(approx, fd_modes, fd_waveform, td_modes, td_waveform)
Define which methods are supported by every legacy approximant.
static int initialize(LALSimInspiralGenerator *myself, LALDict *params)
Method to initialize generator.
static SphHarmFrequencySeries * XLALSimInspiralChooseFDModes_legacy(REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 deltaF, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 phiRef, REAL8 distance, REAL8 inclination, LALDict *params, Approximant approximant)
Copy of the old code of XLALSimInspiralChooseFDModes().
static SphHarmTimeSeries * XLALSimInspiralChooseTDModes_legacy(REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 f_min, REAL8 f_ref, REAL8 r, LALDict *LALpars, int lmax, Approximant approximant)
Copy of the old code of XLALSimInspiralChooseTDModes().
static int XLALSimInspiralChooseFDWaveform_legacy(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 longAscNodes, REAL8 eccentricity, REAL8 meanPerAno, REAL8 deltaF, REAL8 f_min, REAL8 f_max, REAL8 f_ref, LALDict *params, Approximant approximant)
REAL8 XLALSimUniversalRelationlambda3TidalVSlambda2Tidal(REAL8 lambda2bar)
Eq.
REAL8 XLALSimUniversalRelationomega03TidalVSlambda3Tidal(REAL8 lambda3bar)
Eq.
REAL8 XLALSimUniversalRelationQuadMonVSlambda2Tidal(REAL8 lambda2bar)
REAL8 XLALSimUniversalRelationomega02TidalVSlambda2Tidal(REAL8 lambda2bar)
Eq.
void XLALDestroyValue(LALValue *value)
#define FIX_REFERENCE_FREQUENCY(f_ref, f_min, approximant)
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
COMPLEX16FrequencySeries * XLALResizeCOMPLEX16FrequencySeries(COMPLEX16FrequencySeries *series, int first, size_t length)
void * XLALMalloc(size_t n)
@ IMRPhenomPv1_V
version 1: based on IMRPhenomC
@ IMRPhenomPv2_V
version 2: based on IMRPhenomD
@ IMRPhenomPv2NRTidal_V
version Pv2_NRTidal: based on IMRPhenomPv2; NRTides added before precession; can be used with both NR...
@ SEOBNRv4TSurrogate_CUBIC
use cubic splines in frequency
@ NRTidalv3_V
version NRTidalv3
@ NRTidal_V
version NRTidal: based on https://arxiv.org/pdf/1706.02969.pdf
@ NoNRT_V
special case for PhenomPv2 BBH baseline
@ NRTidalv2NSBH_V
version NRTidalv2: https://arxiv.org/abs/1905.06011 with amplitude corrections for NSBH (used for SEO...
@ NRTidalv2_V
version NRTidalv2: https://arxiv.org/abs/1905.06011
int XLALSimIMREOBNRv2AllModes(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fLower, const REAL8 distance, const REAL8 inclination)
This function generates the plus and cross polarizations for the EOBNRv2 approximant with all availab...
SphHarmTimeSeries * XLALSimIMREOBNRv2Modes(const REAL8 deltaT, const REAL8 m1, const REAL8 m2, const REAL8 fLower, const REAL8 distance)
Wrapper function to generate the -2 spin-weighted spherical harmonic modes (as opposed to generating ...
int XLALSimIMREOBNRv2DominantMode(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, const REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fLower, const REAL8 distance, const REAL8 inclination)
This function generates the plus and cross polarizations for the dominant (2,2) mode of the EOBNRv2 a...
int XLALSimIMRPhenomBGenerateFD(COMPLEX16FrequencySeries **htilde, const REAL8 phiPeak, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 f_min, const REAL8 f_max, const REAL8 distance)
Driver routine to compute the spin-aligned, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomP(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip, const REAL8 thetaJ, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 distance, const REAL8 alpha0, const REAL8 phic, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, const REAL8 f_ref, IMRPhenomP_version_type IMRPhenomP_version, NRTidal_version_type NRTidal_version, LALDict *extraParams)
Driver routine to compute the precessing inspiral-merger-ringdown phenomenological waveform IMRPhenom...
int XLALSimIMRPhenomDGenerateFD(COMPLEX16FrequencySeries **htilde, const REAL8 phi0, const REAL8 fRef, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi1, const REAL8 chi2, const REAL8 f_min, const REAL8 f_max, const REAL8 distance, LALDict *extraParams, NRTidal_version_type NRTidal_version)
Driver routine to compute the spin-aligned, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomPCalculateModelParametersFromSourceFrame(REAL8 *chi1_l, REAL8 *chi2_l, REAL8 *chip, REAL8 *thetaJN, REAL8 *alpha0, REAL8 *phi_aligned, REAL8 *zeta_polariz, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_ref, const REAL8 phiRef, const REAL8 incl, const REAL8 s1x, const REAL8 s1y, const REAL8 s1z, const REAL8 s2x, const REAL8 s2y, const REAL8 s2z, IMRPhenomP_version_type IMRPhenomP_version)
Function to map LAL parameters (masses, 6 spin components, phiRef and inclination at f_ref) (assumed ...
double XLALSimIMRPhenomBComputeChi(const REAL8 m1, const REAL8 m2, const REAL8 s1z, const REAL8 s2z)
Compute the dimensionless, spin-aligned parameter chi as used in the IMRPhenomB waveform.
int XLALSimIMRPhenomAGenerateFD(COMPLEX16FrequencySeries **htilde, const REAL8 phiPeak, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_min, const REAL8 f_max, const REAL8 distance)
Driver routine to compute the non-spinning, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomAGenerateTD(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiPeak, const REAL8 deltaT, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_min, const REAL8 f_max, const REAL8 distance, const REAL8 inclination)
Driver routine to compute the non-spinning, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomCGenerateTD(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiPeak, const REAL8 deltaT, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 f_min, const REAL8 f_max, const REAL8 distance, const REAL8 inclination, LALDict *extraParams)
Driver routine to compute the spin-aligned, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomCGenerateFD(COMPLEX16FrequencySeries **htilde, const REAL8 phiPeak, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 f_min, const REAL8 f_max, const REAL8 distance, LALDict *extraParams)
Driver routine to compute the spin-aligned, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomNSBH(COMPLEX16FrequencySeries **htilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 mBH_SI, REAL8 mNS_SI, REAL8 chi_BH, REAL8 chi_NS, LALDict *extraParams)
Driver routine to compute the single-spin, non-precessing, neutron-star-black-hole,...
int XLALSimIMRPhenomBGenerateTD(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiPeak, const REAL8 deltaT, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 f_min, const REAL8 f_max, const REAL8 distance, const REAL8 inclination)
Driver routine to compute the spin-aligned, inspiral-merger-ringdown phenomenological waveform IMRPhe...
int XLALSimIMRPhenomTHM(REAL8TimeSeries **hp, REAL8TimeSeries **hc, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 inclination, REAL8 deltaT, REAL8 fmin, REAL8 fRef, REAL8 phiRef, LALDict *lalparams)
Routine to compute time domain polarisations for IMRPhenomTHM model.
SphHarmTimeSeries * XLALSimIMRPhenomTHM_Modes(REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 deltaT, REAL8 fmin, REAL8 fRef, REAL8 phiRef, LALDict *lalParams)
Routine to compute time domain Spin-Weighted Spherical Harmonic modes for IMRPhenomTHM model.
int XLALSimIMRPhenomT(REAL8TimeSeries **hp, REAL8TimeSeries **hc, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 inclination, REAL8 deltaT, REAL8 fmin, REAL8 fRef, REAL8 phiRef, LALDict *lalParams)
Routine to compute time domain polarisations for IMRPhenomT model.
int XLALSimIMRPhenomTPHM(REAL8TimeSeries **hp, REAL8TimeSeries **hc, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 deltaT, REAL8 fmin, REAL8 fRef, REAL8 phiRef, LALDict *lalParams)
Routine to compute time-domain polarizations for the IMRPhenomTPHM model.
SphHarmTimeSeries * XLALSimIMRPhenomTPHM_ChooseTDModes(REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 deltaT, REAL8 fmin, REAL8 fRef, LALDict *lalParams)
Routine to be used by ChooseTDModes, it returns a list of the time-domain modes of the IMRPhenomTPHM ...
int XLALSimIMRPhenomTP(REAL8TimeSeries **hp, REAL8TimeSeries **hc, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 deltaT, REAL8 fmin, REAL8 fRef, REAL8 phiRef, LALDict *lalParams)
Routine to compute time-domain polarizations for the IMRPhenomTP model.
int XLALSimIMRPhenomXPHMFromModes(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, REAL8 f_min, REAL8 f_max, const REAL8 deltaF, REAL8 fRef_In, LALDict *lalParams)
Returns hptilde and hctilde of the multimode precessing waveform for positive frequencies in an equal...
int XLALSimIMRPhenomXASGenerateFD(COMPLEX16FrequencySeries **htilde22, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
Driver routine to calculate an IMRPhenomX aligned-spin, inspiral-merger-ringdown phenomenological wav...
int XLALSimIMRPhenomXHMModes(SphHarmFrequencySeries **hlms, REAL8 m1_SI, REAL8 m2_SI, REAL8 S1z, REAL8 S2z, REAL8 deltaF, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 phiRef, REAL8 distance, LALDict *LALparams)
Function to obtain a SphHarmFrequencySeries with the individual modes h_lm.
int XLALSimIMRPhenomXHM(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1z, REAL8 chi2z, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
Returns the hptilde and hctilde of the multimode waveform for positive frequencies.
int XLALSimIMRPhenomXPGenerateFD(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, const REAL8 distance, const REAL8 inclination, const REAL8 phiRef, REAL8 f_min, REAL8 f_max, const REAL8 deltaF, REAL8 fRef_In, LALDict *lalParams)
int XLALSimIMRPhenomXPHM(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1x, REAL8 chi1y, REAL8 chi1z, REAL8 chi2x, REAL8 chi2y, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 fRef_In, LALDict *lalParams)
Returns hptilde and hctilde of the multimode precessing waveform for positive frequencies in an equal...
int XLALSimIMRPhenomXHM2(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 f_min, REAL8 f_max, REAL8 deltaF, REAL8 inclination, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
Returns the hptilde and hctilde of the multimode waveform for positive frequencies.
int XLALSimIMRSEOBNRv4ROM(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, LALDict *LALparams, NRTidal_version_type NRTidal_version)
Compute waveform in LAL format for the SEOBNRv4_ROM model.
int XLALSimIMRSEOBNRv2ROMDoubleSpin(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
Compute waveform in LAL format for the SEOBNRv2_ROM_DoubleSpin model.
int XLALSimIMRSEOBNRv2ROMDoubleSpinHI(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max)
Compute waveform in LAL format for the SEOBNRv2_ROM_DoubleSpin_HI model.
int XLALSimIMRSEOBNRv1ROMEffectiveSpin(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi)
Compute waveform in LAL format for the SEOBNRv1_ROM_EffectiveSpin model.
int XLALSimIMRSEOBNRv2ROMEffectiveSpin(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi)
Compute waveform in LAL format for the SEOBNRv2_ROM_EffectiveSpin model.
int XLALSimIMRSEOBNRv1ROMDoubleSpin(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
Compute waveform in LAL format for the SEOBNRv1_ROM_DoubleSpin model.
int XLALSimIMRSEOBNRv4TSurrogate(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, REAL8 lambda1, REAL8 lambda2, SEOBNRv4TSurrogate_spline_order spline_order)
Compute waveform in LAL format for the SEOBNRv4T_surrogate model.
int XLALSimIMRSpinAlignedEOBModes(SphHarmTimeSeries **hlmmode, REAL8Vector **dynamics_out, REAL8Vector **dynamicsHi_out, REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 spin1z, const REAL8 spin2z, UINT4 SpinAlignedEOBversion, const REAL8 lambda2Tidal1, const REAL8 lambda2Tidal2, const REAL8 omega02Tidal1, const REAL8 omega02Tidal2, const REAL8 lambda3Tidal1, const REAL8 lambda3Tidal2, const REAL8 omega03Tidal1, const REAL8 omega03Tidal2, const REAL8 quadparam1, const REAL8 quadparam2, REAL8Vector *nqcCoeffsInput, const INT4 nqcFlag, LALDict *PAParams, LALDict *TGRParams)
This function generates spin-aligned SEOBNRv1,2,2opt,4,4opt,2T,4T,4HM complex modes hlm.
int XLALSimIMRSpinAlignedEOBWaveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const REAL8 phiC, REAL8 deltaT, const REAL8 m1SI, const REAL8 m2SI, const REAL8 fMin, const REAL8 r, const REAL8 inc, const REAL8 spin1z, const REAL8 spin2z, UINT4 SpinAlignedEOBversion, LALDict *LALparams)
int XLALSimIMRSEOBNRv5ROMNRTidal(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1, REAL8 chi2, REAL8 Lambda1, REAL8 Lambda2, LALDict *LALparams, NRTidal_version_type NRTidal_version)
Compute waveform in LAL format for the SEOBNRv5_ROM_NRTidal tidal model based on SEOBNRv5_ROM.
int XLALSimIMRPhenomDNRTidal(COMPLEX16FrequencySeries **htilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1, REAL8 chi2, REAL8 lambda1, REAL8 lambda2, LALDict *extraParams, NRTidal_version_type NRTidal_version)
Compute waveform in LAL format for the IMRPhenomD_NRTidal tidal model based on IMRPhenomD.
int XLALSimIMRSEOBNRv4ROMNRTidal(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1, REAL8 chi2, REAL8 Lambda1, REAL8 Lambda2, LALDict *LALparams, NRTidal_version_type NRTidal_version)
Compute waveform in LAL format for the SEOBNRv4_ROM_NRTidal tidal model based on SEOBNRv4_ROM.
int XLALSimIMRLackeyTidal2013(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 fLow, REAL8 fHigh, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 mBH_SI, REAL8 mNS_SI, REAL8 chi_BH, REAL8 Lambda)
Compute waveform in LAL format for the Lackey et al (2013) tidal model based on SEOBNRv2_ROM_DoubleSp...
void XLALSimInspiralParseDictionaryToChooseTDWaveform(REAL8 *m1, REAL8 *m2, REAL8 *S1x, REAL8 *S1y, REAL8 *S1z, REAL8 *S2x, REAL8 *S2y, REAL8 *S2z, REAL8 *distance, REAL8 *inclination, REAL8 *phiRef, REAL8 *longAscNodes, REAL8 *eccentricity, REAL8 *meanPerAno, REAL8 *deltaT, REAL8 *f_min, REAL8 *f_ref, LALDict *params)
Insert all the input arguments needed by XALSimInspiralChooseTDWaveform() into a laldictionary.
void XLALSimInspiralParseDictionaryToChooseTDModes(REAL8 *phiRef, REAL8 *deltaT, REAL8 *m1, REAL8 *m2, REAL8 *S1x, REAL8 *S1y, REAL8 *S1z, REAL8 *S2x, REAL8 *S2y, REAL8 *S2z, REAL8 *f_min, REAL8 *f_ref, REAL8 *distance, INT4 *lmax, LALDict *params)
Insert all the input arguments needed by XLALSimInspiralChooseTDModes() into a laldictionary.
void XLALSimInspiralParseDictionaryToChooseFDWaveform(REAL8 *m1, REAL8 *m2, REAL8 *S1x, REAL8 *S1y, REAL8 *S1z, REAL8 *S2x, REAL8 *S2y, REAL8 *S2z, REAL8 *distance, REAL8 *inclination, REAL8 *phiRef, REAL8 *longAscNodes, REAL8 *eccentricity, REAL8 *meanPerAno, REAL8 *deltaF, REAL8 *f_min, REAL8 *f_max, REAL8 *f_ref, LALDict *params)
Insert all the input arguments needed by XLALSimInspiralChooseFDWaveform() into a laldictionary.
void XLALSimInspiralParseDictionaryToChooseFDModes(REAL8 *m1, REAL8 *m2, REAL8 *S1x, REAL8 *S1y, REAL8 *S1z, REAL8 *S2x, REAL8 *S2y, REAL8 *S2z, REAL8 *deltaF, REAL8 *f_min, REAL8 *f_max, REAL8 *f_ref, REAL8 *phiRef, REAL8 *distance, REAL8 *inclination, LALDict *params)
Insert all the input arguments needed by XLALSimInspiralChooseFDModes() into a laldictionary.
int XLALSimInspiralTDFromFD(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 longAscNodes, REAL8 eccentricity, REAL8 meanPerAno, REAL8 deltaT, REAL8 f_min, REAL8 f_ref, LALDict *LALparams, Approximant approximant)
Helper routines for XLALSimInspiralTD(): performs conditioning of a FD waveform and transforms it to ...
Approximant
Enum that specifies the PN approximant to be used in computing the waveform.
@ TaylorR2F4
A frequency domain model closely related to TaylorT4.
@ SpinTaylorT4
Spinning case T4 models (lalsimulation's equivalent of SpinTaylorFrameless).
@ IMRPhenomPv3
Frequency domain (generic spins) inspiral-merger-ringdown templates of Hannam et al....
@ TaylorF2RedSpinTidal
TaylorF2 waveforms for non-precessing spins, defined in terms of a single (reduced-spin) parameter [A...
@ SpinTaylorT5Fourier
Frequency domain (generic spins) inspiral only waveforms based on TaylorT5, , (the paper refers to S...
@ SEOBNRv2_ROM_DoubleSpin_HI
High resolution low-mass double-spin frequency domain reduced order model of spin-aligned EOBNR model...
@ SEOBNRv4_ROM_NRTidal
Low-mass double-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv4 [Bohe ...
@ IMRPhenomXAS_NRTidalv2
Spin non-precessing EOBNR model v4 with higher modes post-adiabatic dynamics (time domain) and TGR ri...
@ SEOBNRv2
Spin-aligned EOBNR model v2.
@ IMRPhenomTPHM
Time domain, precessing phenomenological IMR waveform model for L=2 sector ([arXiv: 20XY....
@ IMRPhenomP
Frequency domain (generic spins) inspiral-merger-ringdown templates of Hannam et al....
@ SEOBNRv4_ROM_NRTidalv2
based on NRTidalv2; https://arxiv.org/abs/1905.06011.
@ IMRPhenomXP
Frequency domain, precessing phenomenological IMR waveform model.
@ SEOBNRv2_opt
Optimized Spin-aligned EOBNR model v2.
@ SEOBNRv3_opt_rk4
USE RK4 Optimized Spin precessing EOBNR model v3.
@ IMRPhenomC
Frequency domain (non-precessing spins) inspiral-merger-ringdown templates of Santamaria et al [Santa...
@ SEOBNRv4HM_ROM
Low-mass double-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv4hm.
@ IMRPhenomPv2_NRTidal
Frequency domain tidal version of IMRPhenomPv2, using NRTidal framework from arXiv:1706....
@ IMRPhenomXP_NRTidalv3
Tidal extension of IMRPhenomXP based on NRTidalv3.
@ SEOBNRv3_pert
Perturbed [m1 -> m1*(1+1e-15)] Spin precessing EOBNR model v3.
@ SEOBNRv1
Spin-aligned EOBNR model.
@ Lackey_Tidal_2013_SEOBNRv2_ROM
Frequency domain tidal model based on reduced order model of SEOBNRv2.
@ NRHybSur3dq8
Time domain, aligned-spin, higher modes, hybridized.
@ HGimri
Time domain inspiral-merger-ringdown waveform for quasi-circular intermediate mass-ratio inspirals [H...
@ SEOBNRv4
Spin nonprecessing EOBNR model v4.
@ SEOBNRv3
Spin precessing EOBNR model v3.
@ IMRPhenomXO4a
Frequency domain, precessing with subdominant modes phenomenological IMR waveform model with NR-tuned...
@ TEOBResum_ROM
Time domain reduced order model of EOB with tidal effects.
@ IMRPhenomNSBH
NSBH Tidal model.
@ IMRPhenomXPHM
Frequency domain, precessing with subdominant modes phenomenological IMR waveform model.
@ IMRPhenomD
Frequency domain (non-precessing spins) inspiral-merger-ringdown templates of Husa et al,...
@ IMRPhenomXHM
Frequency domain, non-precessing phenomenological IMR waveform model with subdominant modes ([arXiv:2...
@ EccentricFD
Frequency domain waveform in the SPA to describe low eccentricity systems.
@ SEOBNRv2_ROM_EffectiveSpin
Single-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv2.
@ SEOBNRv4P
Spin precessing EOBNR model based on SEOBNRv4.
@ NRSur7dq4
q=4 extension of NRSur7dq2, arxiv: 1905.09300
@ IMRPhenomD_NRTidal
Uses arxiv:1706.02969 to upgrad IMRPhenomD to a tidal approximant.
@ IMRPhenomXAS_NRTidalv3
Tidal extension of IMRPhenomXAS based on NRTidalv3.
@ TaylorF2RedSpin
TaylorF2 waveforms for non-precessing spins, defined in terms of a single (reduced-spin) parameter [A...
@ IMRPhenomXPNR
Frequency domain, precessing with subdominant modes phenomenological IMR waveform model with SpinTayl...
@ NR_hdf5
Time domain, NR waveform from HDF file.
@ SEOBNRv1_ROM_EffectiveSpin
Single-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv1 See [Purrer:201...
@ TaylorF2NLTides
The standard stationary phase approximation including a phenomenological model of nonlinear tidal eff...
@ IMRPhenomTP
Time domain, non-precessing phenomenological IMR waveform model with subdominant modes ([arXiv: 20XY....
@ IMRPhenomD_NRTidalv2
NRTidalv2; https://arxiv.org/abs/1905.06011.
@ IMRPhenomA
Time domain (non-spinning) inspiral-merger-ringdown waveforms generated from the inverse FFT of IMRPh...
@ IMRPhenomHM
Frequency domain with higher modes (non-precessing spins) inspiral-merger-ringdown templates,...
@ TaylorF2Ecc
The standard stationary phase approximation with eccentricity; Outputs a frequency-domain wave.
@ SEOBNRv4PHM
Spin precessing EOBNR model based on SEOBNRv4HM.
@ SpinTaylorT4Fourier
Frequency domain (generic spins) inspiral only waveforms based on TaylorT4, arXiv: 1408....
@ SpinDominatedWf
Time domain, inspiral only, 1 spin, precessing waveform, Tapai et al, arXiv: 1209....
@ IMRPhenomPv2
Frequency domain (generic spins) inspiral-merger-ringdown templates of Hannam et al....
@ IMRPhenomPv2_NRTidalv2
Frequency domain tidal version; based on https://arxiv.org/abs/1905.06011.
@ NRSur7dq2
Time domain, fully precessing NR surrogate model with up to ell=4 modes, arxiv: 1705....
@ TaylorT3
Time domain Taylor approximant in which phase is explicitly given as a function of time; outputs a ti...
@ SpinTaylorF2
Spinning case F2 models (single spin only).
@ EOBNRv2HM_ROM
Frequency domain reduced order model of model EOBNRv2HM, no spin but with higher modes.
@ IMRPhenomXAS
Frequency domain, non-precessing phenomenological IMR waveform model ([arXiv:2001....
@ EOBNRv2_ROM
Frequency domain reduced order model of model EOBNRv2HM, no spin neither higher modes.
@ SpinTaylorT5
Spinning case T5 models, which is a variant of the spinning version of the original TaylorT2 (see ) d...
@ SEOBNRv5_ROM_NRTidalv3
based on NRTidalv3 (arXiv:2311.07456);
@ PhenSpinTaylor
Inspiral part of the PhenSpinTaylorRD.
@ SEOBNRv4_ROM_NRTidalv2_NSBH
NSBH model based on SEOBNRv4_ROM_NRTidalv2.
@ SEOBNRv1_ROM_DoubleSpin
Double-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv1 See [Purrer:201...
@ SEOBNRv4HM
Spin nonprecessing EOBNR model v4 with higher modes, PhysRevD.98.084028 [arXiv:1803....
@ TaylorF2
The standard stationary phase approximation; Outputs a frequency-domain wave.
@ SEOBNRv4_ROM
Low-mass double-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv4.
@ SEOBNRv2_ROM_DoubleSpin
Double-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv2.
@ IMRPhenomB
Time domain (non-precessing spins) inspiral-merger-ringdown waveforms generated from the inverse FFT ...
@ PhenSpinTaylorRD
Phenomenological waveforms, interpolating between a T4 spin-inspiral and the ringdown.
@ SEOBNRv2T
Tidal EOB model.
@ IMRPhenomTHM
Time domain, non-precessing phenomenological IMR waveform model for the dominant (2,...
@ IMRPhenomPv3HM
Frequency domain (generic spins) inspiral-merger-ringdown templates of Khan et al.
@ pSEOBNRv4HM_PA
Spin non-precessing EOBNR model v4 with higher modes post-adiabatic dynamics (time domain),...
@ SEOBNRv4T
Tidal EOB model.
@ TaylorT1
Time domain Taylor approximant in which the energy and flux are both kept as Taylor expansions and a ...
@ SEOBNRv5_ROM
Time domain, precessing phenomenological IMR waveform model with subdominant modes ([arXiv: 20XY....
@ EccentricTD
Time domain Taylor T4 approximant including orbital eccentricity effects.
@ SEOBNRv3_opt
Optimized Spin precessing EOBNR model v3.
@ SpinTaylorT1
Spinning case T1 models.
@ IMRPhenomXP_NRTidalv2
Tidal extension of IMRPhenomXP based on [arXiv:1905.06011].
@ TEOBResumS
Resummed Spin-aligned Tidal EOB.
@ SEOBNRv5HM_ROM
External Python model.
@ TaylorT2
Time domain Taylor approximant in which the phase evolution is obtained by iteratively solving post-...
@ SEOBNRv4T_surrogate
Double-spin frequency domain surrogate model of spin-aligned tidal EOBNR model SEOBNRv4T.
@ SEOBNRv4_opt
Optimized Spin-aligned EOBNR model v4.
@ LAL_SIM_INSPIRAL_TESTGR_PARAMS
These approximants cannot accept testGR params as input params.
int XLALSimInspiralEccentricTDPNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 i, REAL8 e_min, int amplitudeO, int phaseO)
Driver routine to compute the post-Newtonian inspiral waveform.
int XLALHGimriGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 r, REAL8 i, REAL8 S1z)
int XLALSimInspiralSpinTaylorT5Fourier(COMPLEX16FrequencySeries **hplus, COMPLEX16FrequencySeries **hcross, REAL8 fMin, REAL8 fMax, REAL8 deltaF, INT4 kMax, REAL8 phiRef, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams, INT4 phaseO, INT4 amplitudeO, INT4 phiRefAtEnd)
Driver routine to compute a precessing post-Newtonian inspiral waveform in the Fourier domain with ph...
int XLALSimInspiralSpinTaylorT5(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, LALDict *LALparams)
Driver routine to compute a precessing post-Newtonian inspiral waveform with phasing computed from en...
int XLALSimInspiralInitialConditionsPrecessingApproxs(REAL8 *inc, REAL8 *S1x, REAL8 *S1y, REAL8 *S1z, REAL8 *S2x, REAL8 *S2y, REAL8 *S2z, const REAL8 inclIn, const REAL8 S1xIn, const REAL8 S1yIn, const REAL8 S1zIn, const REAL8 S2xIn, const REAL8 S2yIn, const REAL8 S2zIn, const REAL8 m1, const REAL8 m2, const REAL8 fRef, const REAL8 phiRef, LALSimInspiralFrameAxis axisChoice)
Function to specify the desired orientation of the spin components of a precessing binary.
int XLALSimInspiralSpinTaylorT4(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, LALDict *LALParams)
int XLALSimInspiralSpinTaylorF2(COMPLEX16FrequencySeries **hplus_out, COMPLEX16FrequencySeries **hcross_out, REAL8 phi_ref, REAL8 deltaF, REAL8 m1_SI, REAL8 m2_SI, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, const REAL8 fStart, const REAL8 fEnd, const REAL8 f_ref, const REAL8 r, LALDict *moreParams, INT4 phaseO, INT4 amplitudeO)
Computes the stationary phase approximation to the Fourier transform of a chirp waveform with phase g...
int XLALSimInspiralSpinTaylorT1(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, LALDict *LALparams)
int XLALSimInspiralSpinTaylorT4Fourier(COMPLEX16FrequencySeries **hplus, COMPLEX16FrequencySeries **hcross, REAL8 fMin, REAL8 fMax, REAL8 deltaF, INT4 kMax, REAL8 phiRef, REAL8 v0, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fRef, REAL8 r, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 lnhatx, REAL8 lnhaty, REAL8 lnhatz, REAL8 e1x, REAL8 e1y, REAL8 e1z, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams, INT4 phaseO, INT4 amplitudeO, INT4 phiRefAtEnd)
Driver routine to compute a precessing post-Newtonian inspiral waveform in the Fourier domain with ph...
int XLALSimInspiralTaylorF2Ecc(COMPLEX16FrequencySeries **htilde, 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, const REAL8 eccentricity, LALDict *LALparams)
Computes the stationary phase approximation to the Fourier transform of a chirp waveform with eccentr...
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 ...
int XLALSimInspiralTaylorF2ReducedSpin(COMPLEX16FrequencySeries **htilde, const REAL8 phic, const REAL8 deltaF, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi, const REAL8 fStart, const REAL8 fEnd, const REAL8 r, const INT4 phaseO, const INT4 ampO)
Driver routine to compute a non-precessing post-Newtonian inspiral waveform in the frequency domain,...
REAL8 XLALSimInspiralTaylorF2ReducedSpinComputeChi(const REAL8 m1, const REAL8 m2, const REAL8 s1z, const REAL8 s2z)
Compute the dimensionless, aligned-spin parameter chi as used in the TaylorF2RedSpin waveform.
int XLALSimInspiralTaylorEtPNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phic, REAL8 x0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 r, REAL8 i, int amplitudeO, int phaseO)
Driver routine to compute the post-Newtonian inspiral waveform.
int XLALSimInspiralTaylorT1PNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 i, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO)
Driver routine to compute the post-Newtonian inspiral waveform.
int XLALSimInspiralTaylorF2(COMPLEX16FrequencySeries **htilde, 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 *LALpars)
Computes the stationary phase approximation to the Fourier transform of a chirp waveform.
int XLALSimInspiralTaylorT3PNGenerator(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 f_min, REAL8 fRef, REAL8 r, REAL8 i, REAL8 lambda1, REAL8 lambda2, LALSimInspiralTidalOrder tideO, int amplitudeO, int phaseO)
Driver routine to compute the post-Newtonian inspiral waveform.
int XLALSimInspiralTaylorF2NLTides(COMPLEX16FrequencySeries **htilde, 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 *LALpars)
Computes the stationary phase approximation to the Fourier transform of a chirp waveform.
int XLALSimInspiralWaveformParamsNonGRAreDefault(LALDict *params)
int XLALSimInspiralPrecessingNRSurPolarizations(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 inclination, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 distnace, REAL8 fMin, REAL8 fRef, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, LALDict *LALparams, Approximant approximant)
This function evaluates the NRSur7dq2 or NRSur7dq4 surrogate model and sums over all ell <= 4 modes t...
SphHarmTimeSeries * XLALSimInspiralPrecessingNRSurModes(REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 fMin, REAL8 fRef, REAL8 distance, LALDict *LALparams, Approximant approximant)
This function evaluates the NRSur7dq2 or NRSur7dq4 surrogate model and returns the inertial frame mod...
COMPLEX16FrequencySeries * XLALSphHarmFrequencySeriesGetMode(SphHarmFrequencySeries *ts, UINT4 l, INT4 m)
Get the time series of a waveform's (l,m) spherical harmonic mode from a SphHarmFrequencySeries linke...
COMPLEX16TimeSeries * XLALSphHarmTimeSeriesGetMode(SphHarmTimeSeries *ts, UINT4 l, INT4 m)
Get the time series of a waveform's (l,m) spherical harmonic mode from a SphHarmTimeSeries linked lis...
SphHarmTimeSeries * XLALSphHarmTimeSeriesAddMode(SphHarmTimeSeries *appended, const COMPLEX16TimeSeries *inmode, UINT4 l, INT4 m)
Prepend a node to a linked list of SphHarmTimeSeries, or create a new head.
UINT4 XLALSphHarmTimeSeriesGetMaxL(SphHarmTimeSeries *ts)
Get the largest l index of any mode in the SphHarmTimeSeries linked list.
SphHarmFrequencySeries * XLALSphHarmFrequencySeriesAddMode(SphHarmFrequencySeries *appended, const COMPLEX16FrequencySeries *inmode, UINT4 l, INT4 m)
Prepend a node to a linked list of SphHarmFrequencySeries, or create a new head.
void XLALDestroySphHarmFrequencySeries(SphHarmFrequencySeries *ts)
Delete list from current pointer to the end of the list.
void XLALSphHarmFrequencySeriesSetFData(SphHarmFrequencySeries *ts, REAL8Sequence *fdata)
Set the tdata member for all nodes in the list.
void XLALDestroyINT2Sequence(INT2Sequence *sequence)
void XLALDestroyREAL8Sequence(REAL8Sequence *sequence)
REAL8Sequence * XLALCreateREAL8Sequence(size_t length)
void XLALDestroyCOMPLEX16TimeSeries(COMPLEX16TimeSeries *series)
COMPLEX16TimeSeries * XLALCreateCOMPLEX16TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
COMPLEX16TimeSeries * XLALCutCOMPLEX16TimeSeries(const COMPLEX16TimeSeries *series, size_t first, size_t length)
const LALUnit lalStrainUnit
void XLALDestroyREAL8Vector(REAL8Vector *vector)
#define XLAL_ERROR_NULL(...)
#define XLAL_CHECK(assertion,...)
#define XLAL_PRINT_WARNING(...)
#define XLAL_TRY(statement, errnum)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
int int XLALPrintWarning(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
LIGOTimeGPS * XLALGPSSetREAL8(LIGOTimeGPS *epoch, REAL8 t)
COMPLEX16FrequencySeries * mode
The sequences of sampled data.
Structure to carry a collection of spherical harmonic modes in COMPLEX16 time series.
struct tagSphHarmTimeSeries * next
next pointer
COMPLEX16TimeSeries * mode
The sequences of sampled data.