22 #include <lal/LALSimInspiral.h>
23 #include <lal/LALSimIMR.h>
24 #include <lal/FrequencySeries.h>
25 #include <lal/Sequence.h>
26 #include <lal/LALConstants.h>
27 #include <lal/LALSimInspiralEOS.h>
133 REAL8 phasediff, dist_ratio, incl_ratio_plus, incl_ratio_cross;
134 REAL8 cosrot, sinrot;
151 return XLALSimInspiralChooseTDWaveform(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
152 r,
i, phiRef, 0., 0., 0.,
deltaT,
f_min, f_ref, LALpars,
157 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref, 0.,
r,
i,
167 if (*hcross == NULL) {
179 status =
XLALSimInspiralChooseTDWaveform(hplus, hcross, m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
180 r,
i, phiRef, 0., 0., 0.,
deltaT,
f_min, f_ref, LALpars,
186 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i, LALpars,
approximant);
194 if( cache->
hplus == NULL || cache->
hcross == NULL) {
196 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
203 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
211 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
218 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
221 if( changedParams &
PHI_REF ) {
225 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
232 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
235 if( (changedParams &
DISTANCE) != 0 ) {
237 dist_ratio = cache->
r /
r;
248 if (*hcross == NULL) {
270 if( cache->
hplus == NULL || cache->
hcross == NULL) {
272 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
278 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
284 dist_ratio = incl_ratio_plus = incl_ratio_cross = cosrot = 1.;
285 phasediff = sinrot = 0.;
287 if( changedParams &
PHI_REF ) {
289 phasediff = 2.*(phiRef - cache->
phiRef);
290 cosrot = cos(phasediff);
291 sinrot = sin(phasediff);
295 incl_ratio_plus = (1.0 + cos(
i)*cos(
i))
296 / (1.0 + cos(cache->
i)*cos(cache->
i));
297 incl_ratio_cross = cos(
i) / cos(cache->
i);
301 dist_ratio = cache->
r /
r;
314 if (*hcross == NULL) {
321 incl_ratio_plus *= dist_ratio;
322 incl_ratio_cross *= dist_ratio;
325 (*hplus)->data->data[j] = incl_ratio_plus
328 (*hcross)->data->data[j] = incl_ratio_cross
344 if( cache->
hplus == NULL || cache->
hcross == NULL) {
347 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
353 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
361 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
367 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
371 if( changedParams &
PHI_REF ) {
375 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
382 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
r,
i,
388 dist_ratio = cache->
r /
r;
399 if (*hcross == NULL) {
421 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i,
462 REAL8 dist_ratio, incl_ratio_plus, incl_ratio_cross, phase_diff;
469 if (frequencies != NULL)
471 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, f_ref,
476 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i, phiRef,
484 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
f_max,
r,
i,
494 if (*hctilde == NULL) {
505 if ( frequencies != NULL ){
507 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, f_ref,
512 S1x, S1y, S1z, S2x, S2y, S2z,
513 r,
i, phiRef, 0., 0., 0.,
519 return StoreFDHCache(cache, *hptilde, *hctilde, phiRef, deltaF, m1, m2,
520 S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
f_max,
r,
i, LALpars,
approximant, frequencies);
531 if ( frequencies != NULL ){
533 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, f_ref,
538 S1x, S1y, S1z, S2x, S2y, S2z,
r,
i, phiRef,
544 return StoreFDHCache(cache, *hptilde, *hctilde, phiRef, deltaF,
545 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z,
f_min, f_ref,
f_max,
r,
i,
551 dist_ratio = incl_ratio_plus = incl_ratio_cross = 1.;
555 if( changedParams &
PHI_REF ) {
557 phase_diff = 2.*(phiRef - cache->
phiRef);
558 exp_dphi =
cpolar(1., phase_diff);
562 incl_ratio_plus = (1.0 + cos(
i)*cos(
i))
563 / (1.0 + cos(cache->
i)*cos(cache->
i));
564 incl_ratio_cross = cos(
i) / cos(cache->
i);
568 dist_ratio = cache->
r /
r;
582 if (*hctilde == NULL) {
589 incl_ratio_plus *= dist_ratio;
590 incl_ratio_cross *= dist_ratio;
592 (*hptilde)->data->data[j] = exp_dphi * incl_ratio_plus
594 (*hctilde)->data->data[j] = exp_dphi * incl_ratio_cross
610 if ( frequencies != NULL ){
612 m1, m2, S1x, S1y, S1z, S2x, S2y, S2z, f_ref,
617 S1x, S1y, S1z, S2x, S2y, S2z,
618 r,
i, phiRef, 0., 0., 0.,
708 if (
r != cache->
r) difference = difference |
DISTANCE;
709 if (phiRef != cache->
phiRef) difference = difference |
PHI_REF;
727 if ( newFrequencies == NULL && cachedFrequencies == NULL)
return 0;
728 if ( newFrequencies == NULL && cachedFrequencies != NULL)
return 1;
729 if ( newFrequencies != NULL && cachedFrequencies == NULL)
return 1;
730 if ( newFrequencies->
length != cachedFrequencies->
length)
return 1;
731 for ( j = 0; j < newFrequencies->
length; j++){
732 if ( newFrequencies->
data[j] != cachedFrequencies->
data[j])
return 1;
776 cache->
f_ref = f_ref;
788 if (hplus == NULL || hcross == NULL || hplus->
data == NULL || hcross->
data == NULL){
789 XLALPrintError(
"We have null pointers for h+, hx in StoreTDHCache \n");
790 XLALPrintError(
"Houston-S, we've got a problem SOS, SOS, SOS, the waveform generator returns NULL!!!... m1 = %.18e, m2 = %.18e, fMin = %.18e, spin1 = {%.18e, %.18e, %.18e}, spin2 = {%.18e, %.18e, %.18e} \n",
791 m1, m2, (
double)
f_min, S1x, S1y, S1z, S2x, S2y, S2z);
797 if (cache->
hcross == NULL) {
824 if (cache->
hplus != NULL) {
829 if (cache->
hcross != NULL) {
846 cache->
f_ref = f_ref;
856 if (frequencies != NULL){
913 REAL8 chi1_l, chi2_l, chip, thetaJN, alpha0, phi_aligned, zeta_polariz, cos_2zeta, sin_2zeta;
916 LALDict *LALparams_aux;
924 XLALPrintError(
"XLAL Error - %s: Passed in non-NULL testGRparams for an approximant that does not use them\n", __func__);
932 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);
934 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);
936 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);
937 if( S1x*S1x + S1y*S1y + S1z*S1z > 1.000001 )
938 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);
939 if( S2x*S2x + S2y*S2y + S2z*S2z > 1.000001 )
940 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);
942 XLALPrintWarning(
"XLAL Warning - %s: Small value of fmin = %e requested...Check for errors, this could create a very long waveform.\n", __func__,
f_min);
943 if(
f_min > 40.000001 )
944 XLALPrintWarning(
"XLAL Warning - %s: Large value of fmin = %e requested...Check for errors, the signal will start in band.\n", __func__,
f_min);
952 cfac = cos(inclination);
953 pfac = 0.5 * (1. + cfac*cfac);
964 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
966 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
968 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
974 S1z, S2z, S1z*S1z, S2z*S2z,
977 m1, m2, f_ref, 0., distance, LALpars, &pfa);
981 &((*hptilde)->epoch), (*hptilde)->f0, 0.0,
982 &((*hptilde)->sampleUnits), (*hptilde)->data->length);
983 for(j = 0; j < (*hptilde)->data->length; j++) {
984 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j];
985 (*hptilde)->data->data[j] *=
pfac;
992 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
994 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
996 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
998 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1000 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1009 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1011 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1013 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1016 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z);
1022 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1024 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1026 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1035 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1037 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1039 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1042 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z);
1048 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1050 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1052 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1055 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, -1);
1061 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1063 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1065 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1068 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, LALpars,
NoNRT_V);
1074 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1076 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1078 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1082 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, -1,
nModes, LALpars);
1088 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1090 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1092 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1096 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, nModesv5, LALpars);
1102 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1104 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1106 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1110 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, -1, nModesv5hm, LALpars);
1116 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1118 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1124 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2, LALpars,
NRTidal_V);
1130 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1132 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1138 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2, LALpars,
NRTidalv2_V);
1144 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1146 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1148 XLAL_ERROR(
XLAL_EFUNC,
"m1 = %e, m2=%e. m1 should be greater than or equal to m2 for SEOBNRv4_ROM_NRTidalv2_NSBH", m1,m2);
1150 XLAL_ERROR(
XLAL_EFUNC,
"lambda1 = %f. lambda1 should be zero for SEOBNRv4_ROM_NRTidalv2_NSBH", lambda1);
1152 XLAL_ERROR(
XLAL_EFUNC,
"lambda2 = %f. lambda2 should be nonnegative for SEOBNRv4_ROM_NRTidalv2_NSBH", lambda2);
1153 if( lambda2 > 5000 )
1156 XLAL_PRINT_WARNING(
"WARNING: S2z = %f. SEOBNRv4_ROM_NRTidalv2_NSBH is calibrated to NR data for which the NS spin is zero.",S2z);
1158 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);
1164 XLAL_CHECK(
XLAL_SUCCESS == ret, ret,
"Failed to set QuadMon from Lambdas for SEOBNRv4_ROM_NRTidalv2_NSBH");
1167 phiRef, f_ref, distance, inclination, m1, m2, S1z, S2z, lambda1, lambda2, LALpars,
NRTidalv2NSBH_V);
1173 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1175 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1178 phiRef, f_ref, distance, inclination,
1179 m1, m2, S1z, S2z, lambda1, lambda2,
1186 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1188 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1191 phiRef, f_ref, distance, inclination, m1, m2, S1z, lambda2);
1197 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1199 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1202 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1207 &chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz,
1208 m1, m2, f_ref, phiRef, inclination,
1213 chi1_l, chi2_l, chip, thetaJN,
1216 cos_2zeta = cos(2.0*zeta_polariz);
1217 sin_2zeta = sin(2.0*zeta_polariz);
1218 for (
UINT4 idx=0;idx<(*hptilde)->data->length;idx++) {
1219 PhPpolp=(*hptilde)->data->data[idx];
1220 PhPpolc=(*hctilde)->data->data[idx];
1221 (*hptilde)->data->data[idx] = cos_2zeta*PhPpolp + sin_2zeta*PhPpolc;
1222 (*hctilde)->data->data[idx] = cos_2zeta*PhPpolc - sin_2zeta*PhPpolp;
1229 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1231 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1234 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1239 &chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz,
1240 m1, m2, f_ref, phiRef, inclination,
1245 chi1_l, chi2_l, chip, thetaJN,
1248 cos_2zeta = cos(2.0*zeta_polariz);
1249 sin_2zeta = sin(2.0*zeta_polariz);
1250 for (
UINT4 idx=0;idx<(*hptilde)->data->length;idx++) {
1251 PhPpolp=(*hptilde)->data->data[idx];
1252 PhPpolc=(*hctilde)->data->data[idx];
1253 (*hptilde)->data->data[idx] = cos_2zeta*PhPpolp + sin_2zeta*PhPpolc;
1254 (*hctilde)->data->data[idx] = cos_2zeta*PhPpolc - sin_2zeta*PhPpolp;
1261 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1263 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1265 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1268 phiRef, f_ref, m1, m2, S1z, S2z, distance, LALpars,
NoNRT_V);
1272 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1273 &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1274 for(j = 0; j < (*hptilde)->data->length; j++) {
1275 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j];
1276 (*hptilde)->data->data[j] *=
pfac;
1283 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1285 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1288 phiRef, f_ref, distance, m1, m2, S1z, S2z, lambda1, lambda2, LALpars,
NRTidal_V);
1292 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1293 &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1294 for(j = 0; j < (*hptilde)->data->length; j++) {
1295 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j];
1296 (*hptilde)->data->data[j] *=
pfac;
1303 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1305 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1311 phiRef, f_ref, distance, m1, m2, S1z, S2z, lambda1, lambda2, LALpars,
NRTidalv2_V);
1315 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1316 &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1317 for(j = 0; j < (*hptilde)->data->length; j++) {
1318 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j];
1319 (*hptilde)->data->data[j] *=
pfac;
1326 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1328 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1333 &chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz,
1334 m1, m2, f_ref, phiRef, inclination,
1339 chi1_l, chi2_l, chip, thetaJN,
1342 for (
UINT4 idx=0;idx<(*hptilde)->data->length;idx++) {
1343 PhPpolp=(*hptilde)->data->data[idx];
1344 PhPpolc=(*hctilde)->data->data[idx];
1345 (*hptilde)->data->data[idx] =cos(2.*zeta_polariz)*PhPpolp+sin(2.*zeta_polariz)*PhPpolc;
1346 (*hctilde)->data->data[idx]=cos(2.*zeta_polariz)*PhPpolc-sin(2.*zeta_polariz)*PhPpolp;
1353 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1355 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1360 &chi1_l, &chi2_l, &chip, &thetaJN, &alpha0, &phi_aligned, &zeta_polariz,
1361 m1, m2, f_ref, phiRef, inclination,
1366 chi1_l, chi2_l, chip, thetaJN,
1369 for (
UINT4 idx=0;idx<(*hptilde)->data->length;idx++) {
1370 PhPpolp=(*hptilde)->data->data[idx];
1371 PhPpolc=(*hctilde)->data->data[idx];
1372 (*hptilde)->data->data[idx] =cos(2.*zeta_polariz)*PhPpolp+sin(2.*zeta_polariz)*PhPpolc;
1373 (*hctilde)->data->data[idx]=cos(2.*zeta_polariz)*PhPpolc-sin(2.*zeta_polariz)*PhPpolp;
1379 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1381 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1383 S1z, S2z, distance, inclination, phiRef, 0., f_ref,
1393 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1395 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1397 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1408 m1, m2, S1z, S2z, distance, phiRef, f_ref, LALpars);
1413 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1414 &((*hptilde)->sampleUnits), (*hptilde)->data->length
1416 for(j = 0; j < (*hptilde)->data->length; j++)
1418 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j] * Ylmfactor;
1419 (*hptilde)->data->data[j] *=
pfac * Ylmfactor;
1428 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1430 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1444 m1, m2, S1z, S2z, distance, phiRef, f_ref, LALpars);
1452 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1453 &((*hptilde)->sampleUnits), (*hptilde)->data->length
1455 for(j = 0; j < (*hptilde)->data->length; j++)
1457 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j] * Ylmfactor;
1458 (*hptilde)->data->data[j] *=
pfac * Ylmfactor;
1467 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1469 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1471 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1475 m1, m2, S1z, S2z, distance, inclination, phiRef, f_ref, LALpars);
1486 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1491 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1495 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1513 distance, inclination,
1514 phiRef, f_ref, LALpars
1527 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1532 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1554 distance, inclination,
1555 phiRef, f_ref, LALpars
1572 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1577 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1581 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1595 distance, inclination,
1596 phiRef, f_ref, LALpars
1607 if (LALpars == NULL){
1617 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralFrameAxis provided, but this approximant does not use that flag.");
1622 XLAL_ERROR(
XLAL_EINVAL,
"Non-default LALSimInspiralModesChoice provided, but this approximant does not use that flag.");
1626 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero tidal parameters were given, but this is approximant doe not have tidal corrections.");
1668 distance, inclination,
1669 phiRef, f_ref, LALparams_aux
1684 XLAL_ERROR(
XLAL_EINVAL,
"Non-default flags given, but this approximant does not support this case.");
1686 XLAL_ERROR(
XLAL_EINVAL,
"Non-zero transverse spins were given, but this is a non-precessing approximant.");
1691 phiRef, f_ref, distance, m1, m2, S1z, S2z, LALpars);
1695 &((*hptilde)->epoch), (*hptilde)->f0, (*hptilde)->deltaF,
1696 &((*hptilde)->sampleUnits), (*hptilde)->data->length);
1697 for(j = 0; j < (*hptilde)->data->length; j++) {
1698 (*hctilde)->data->data[j] = -I*cfac * (*hptilde)->data->data[j];
1699 (*hptilde)->data->data[j] *=
pfac;
1704 XLALPrintError(
"FD version of approximant not implemented in lalsimulation\n");
int XLALDictContains(const LALDict *dict, const char *key)
void XLALDestroyDict(LALDict *dict)
LALDict * XLALDictDuplicate(LALDict *old)
LALDict * XLALCreateDict(void)
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 XLALSimIMRSEOBNRv4HMROMFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, LALDict *LALParams)
int XLALSimIMRSEOBNRv5HMROMFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max, UINT4 nModes, LALDict *LALParams)
int XLALSimInspiralApproximantAcceptTestGRParams(Approximant approx)
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...
static void UNUSED XLALSimInspiralPNPhasing_F2(PNPhasingSeries *pfa, const REAL8 m1, const REAL8 m2, const REAL8 chi1L, const REAL8 chi2L, const REAL8 chi1sq, const REAL8 chi2sq, const REAL8 chi1dotchi2, LALDict *p)
COMPLEX16FrequencySeries * XLALCreateCOMPLEX16FrequencySeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaF, const LALUnit *sampleUnits, size_t length)
COMPLEX16FrequencySeries * XLALCutCOMPLEX16FrequencySeries(const COMPLEX16FrequencySeries *series, size_t first, size_t length)
void XLALDestroyCOMPLEX16FrequencySeries(COMPLEX16FrequencySeries *series)
void * XLALCalloc(size_t m, 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
@ 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 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 ...
int XLALSimIMRPhenomNSBHFrequencySequence(COMPLEX16FrequencySeries **htilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 mBH_SI, REAL8 mNS_SI, REAL8 chi_BH, REAL8 chi_NS, LALDict *extraParams)
Compute waveform in LAL format at specified frequencies for the IMRPhenomNSBH model.
int XLALSimIMRPhenomDFrequencySequence(COMPLEX16FrequencySeries **htilde, const REAL8Sequence *freqs, const REAL8 phi0, const REAL8 fRef_in, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 chi1, const REAL8 chi2, const REAL8 distance, LALDict *extraParams, NRTidal_version_type NRTidal_version)
Compute waveform in LAL format at specified frequencies for the IMRPhenomD model.
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 XLALSimIMRPhenomPFrequencySequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, const REAL8 chi1_l, const REAL8 chi2_l, const REAL8 chip, const REAL8 thetaJ, REAL8 m1_SI, const REAL8 m2_SI, const REAL8 distance, const REAL8 alpha0, const REAL8 phic, 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 XLALSimIMRPhenomXHMFrequencySequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1z, REAL8 chi2z, REAL8 distance, REAL8 inclination, REAL8 phiRef, REAL8 fRef, LALDict *lalParams)
Returns hptilde and hctilde as a complex frequency series with entries exactly at the frequencies spe...
int XLALSimIMRPhenomXASFrequencySequence(COMPLEX16FrequencySeries **htilde22, const REAL8Sequence *freqs, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1L, REAL8 chi2L, REAL8 distance, REAL8 phiRef, REAL8 fRef_In, LALDict *lalParams)
Compute waveform in LAL format at specified frequencies for the IMRPhenomX model.
int XLALSimIMRPhenomXPHMFrequencySequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, 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 fRef_In, LALDict *lalParams)
Returns hptilde and hctilde as a complex frequency series with entries exactly at the frequencies spe...
int XLALSimIMRPhenomXPFrequencySequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, const 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, REAL8 fRef_In, LALDict *lalParams)
Compute waveform in LAL format at specified frequencies for the IMRPhenomXP model.
int XLALSimIMRSEOBNRv1ROMDoubleSpinFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
Compute waveform in LAL format at specified frequencies for the SEOBNRv1_ROM_DoubleSpin model.
int XLALSimIMRSEOBNRv4ROMFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, 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 at specified frequencies for the SEOBNRv4_ROM model.
int XLALSimIMRSEOBNRv2ROMEffectiveSpinFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi)
Compute waveform in LAL format at specified frequencies for the SEOBNRv2_ROM_EffectiveSpin model.
int XLALSimIMRSEOBNRv2ROMDoubleSpinFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2)
Compute waveform in LAL format at specified frequencies for the SEOBNRv2_ROM_DoubleSpin model.
int XLALSimIMRSEOBNRv1ROMEffectiveSpinFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi)
Compute waveform in LAL format at specified frequencies for the SEOBNRv1_ROM_EffectiveSpin model.
int XLALSimIMRSEOBNRv2ROMDoubleSpinHIFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 m1SI, REAL8 m2SI, REAL8 chi1, REAL8 chi2, INT4 nk_max)
Compute waveform in LAL format at specified frequencies for the SEOBNRv2_ROM_DoubleSpin_HI model.
int XLALSimIMRSEOBNRv4TSurrogateFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, 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 at specified frequencies for the SEOBNRv4T_surrogate model.
int XLALSimIMRSEOBNRv4ROMNRTidalFrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, 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 at specified frequencies for the SEOBNRv4_ROM_NRTidal tidal model base...
int XLALSimIMRPhenomDNRTidalFrequencySequence(COMPLEX16FrequencySeries **htilde, const REAL8Sequence *freqs, REAL8 phiRef, 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 at specified frequencies for the IMRPhenomD_NRTidal tidal model based ...
int XLALSimIMRLackeyTidal2013FrequencySequence(struct tagCOMPLEX16FrequencySeries **hptilde, struct tagCOMPLEX16FrequencySeries **hctilde, const REAL8Sequence *freqs, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 inclination, REAL8 mBH_SI, REAL8 mNS_SI, REAL8 chi_BH, REAL8 Lambda)
Compute waveform in LAL format at specified frequencies for the Lackey et al (2013) tidal model based...
int XLALSimInspiralChooseFDWaveform(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, 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 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 longAscNodes, const REAL8 eccentricity, const REAL8 UNUSED meanPerAno, const REAL8 deltaF, const REAL8 f_min, const REAL8 f_max, REAL8 f_ref, LALDict *params, const Approximant approximant)
Chooses between different approximants when requesting a waveform to be generated For spinning wavefo...
int XLALSimInspiralChooseTDWaveform(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, 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 distance, const REAL8 inclination, const REAL8 phiRef, const REAL8 longAscNodes, const REAL8 eccentricity, const REAL8 UNUSED meanPerAno, const REAL8 deltaT, const REAL8 f_min, REAL8 f_ref, LALDict *params, const Approximant approximant)
Chooses between different approximants when requesting a waveform to be generated For spinning wavefo...
Approximant
Enum that specifies the PN approximant to be used in computing the waveform.
@ SpinTaylorT4
Spinning case T4 models (lalsimulation's equivalent of SpinTaylorFrameless).
@ TaylorF2RedSpinTidal
TaylorF2 waveforms for non-precessing spins, defined in terms of a single (reduced-spin) parameter [A...
@ 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...
@ 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.
@ 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....
@ SEOBNRv1
Spin-aligned EOBNR model.
@ Lackey_Tidal_2013_SEOBNRv2_ROM
Frequency domain tidal model based on reduced order model of SEOBNRv2.
@ IMRPhenomXO4a
Frequency domain, precessing with subdominant modes phenomenological IMR waveform model with NR-tuned...
@ 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...
@ SEOBNRv2_ROM_EffectiveSpin
Single-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv2.
@ IMRPhenomD_NRTidal
Uses arxiv:1706.02969 to upgrad IMRPhenomD to a tidal approximant.
@ TaylorF2RedSpin
TaylorF2 waveforms for non-precessing spins, defined in terms of a single (reduced-spin) parameter [A...
@ SEOBNRv1_ROM_EffectiveSpin
Single-spin frequency domain reduced order model of spin-aligned EOBNR model SEOBNRv1 See [Purrer:201...
@ 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,...
@ 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.
@ TaylorT3
Time domain Taylor approximant in which phase is explicitly given as a function of time; outputs a ti...
@ IMRPhenomXAS
Frequency domain, non-precessing phenomenological IMR waveform model ([arXiv:2001....
@ SpinTaylorT5
Spinning case T5 models, which is a variant of the spinning version of the original TaylorT2 (see ) d...
@ 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...
@ 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 ...
@ 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....
@ 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.
@ LAL_SIM_INSPIRAL_TESTGR_PARAMS
These approximants cannot accept testGR params as input params.
int XLALSimInspiralTaylorF2Core(COMPLEX16FrequencySeries **htilde, const REAL8Sequence *freqs, const REAL8 phi_ref, const REAL8 m1_SI, const REAL8 m2_SI, const REAL8 f_ref, const REAL8 shft, const REAL8 r, LALDict *LALparams, PNPhasingSeries *pfaP)
int XLALSimInspiralWaveformParamsNonGRAreDefault(LALDict *params)
REAL8Sequence * XLALCopyREAL8Sequence(REAL8Sequence *sequence)
void XLALDestroyREAL8Sequence(REAL8Sequence *sequence)
REAL8TimeSeries * XLALCreateREAL8TimeSeries(const CHAR *name, const LIGOTimeGPS *epoch, REAL8 f0, REAL8 deltaT, const LALUnit *sampleUnits, size_t length)
REAL8TimeSeries * XLALCutREAL8TimeSeries(const REAL8TimeSeries *series, size_t first, size_t length)
void XLALDestroyREAL8TimeSeries(REAL8TimeSeries *series)
#define XLAL_CHECK(assertion,...)
#define XLAL_PRINT_WARNING(...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
int int XLALPrintWarning(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1