21 #include <lal/LALSimIMR.h>
22 #include <lal/FrequencySeries.h>
23 #include <lal/Sequence.h>
24 #include <lal/Units.h>
25 #include <lal/LALConstants.h>
72 XLALPrintError(
"(*htilde) is supposed to be NULL, but got %p",(*htilde));
77 double fLow = freqs_in->
data[0];
78 double fHigh = freqs_in->
data[freqs_in->
length - 1];
88 double m1temp = m1_SI;
89 double chi1temp = chi1;
90 double lambda1temp = lambda1;
91 double dquadmon1temp = dquadmon1;
97 if (lambda1 != lambda2){
100 lambda2 = lambda1temp;
103 if (dquadmon1 != dquadmon2) {
104 dquadmon1 = dquadmon2;
106 dquadmon2 = dquadmon1temp;
122 double f_max_nr_tidal = fHigh;
127 const double NRTIDAL_FMAX = 1.3*fHz_mrg;
129 if ( ( fHigh > NRTIDAL_FMAX ) || ( fHigh == 0.0 ) )
132 f_max_nr_tidal = NRTIDAL_FMAX;
137 phiRef, fRef, deltaF,
140 fLow, f_max_nr_tidal,
142 extraParams, NRTidal_version);
147 if (fHigh > NRTIDAL_FMAX)
151 size_t n_full = (size_t) pow(2,ceil(log2(fHigh / deltaF))) + 1;
164 extraParams, NRTidal_version);
176 REAL8 SS_3p5PN = 0., SSS_3p5PN = 0.;
185 REAL8 pn_fac = 3.*pow(piM,2./3.)/(128.*eta);
191 UINT4 iStop = (*htilde)->data->length - 1;
195 freqs->
data[
i-iStart] =
i*deltaF;
226 double f = freqs->
data[
i];
227 COMPLEX16 Corr = planck_taper->
data[
i] * cexp(-I*phi_tidal->
data[
i] - I*pn_fac*(SS_3p5PN + SSS_3p5PN)*pow(f,2./3.));
298 LALDict *extraParams,
306 phiRef, fRef, distance, m1_SI, m2_SI, chi1, chi2, lambda1, lambda2, extraParams, freqs, 0, NRTidal_version);
334 LALDict *extraParams,
341 freqs->
data[0] = fLow;
342 freqs->
data[1] = fHigh;
345 phiRef, fRef, distance, m1_SI, m2_SI, chi1, chi2, lambda1, lambda2, extraParams, freqs, deltaF, NRTidal_version);
void XLALSimInspiralGetHOSpinTerms(REAL8 *SS_3p5PN, REAL8 *SSS_3p5PN, REAL8 X_A, REAL8 X_B, REAL8 chi1, REAL8 chi2, REAL8 quadparam1, REAL8 quadparam2)
Function to add 3.5PN spin-squared and 3.5PN spin-cubed terms.
int XLALSimNRTunedTidesFDTidalPhaseFrequencySeries(const REAL8Sequence *phi_tidal, const REAL8Sequence *amp_tidal, const REAL8Sequence *planck_taper, const REAL8Sequence *fHz, REAL8 m1_SI, REAL8 m2_SI, REAL8 lambda1, REAL8 lambda2, NRTidal_version_type NRTidal_version)
Function to call the frequency domain tidal correction over an array of input frequencies.
double XLALSimNRTunedTidesMergerFrequency(const REAL8 mtot_MSUN, const REAL8 kappa2T, const REAL8 q)
compute the merger frequency of a BNS system.
double XLALSimNRTunedTidesComputeKappa2T(REAL8 m1_SI, REAL8 m2_SI, REAL8 lambda1, REAL8 lambda2)
convenient function to compute tidal coupling constant.
static int IMRPhenomD_NRTidal_Core(COMPLEX16FrequencySeries **htilde, REAL8 phiRef, REAL8 fRef, REAL8 distance, REAL8 m1_SI, REAL8 m2_SI, REAL8 chi1, REAL8 chi2, REAL8 lambda1, REAL8 lambda2, LALDict *extraParams, const REAL8Sequence *freqs_in, REAL8 deltaF, NRTidal_version_type NRTidal_version)
COMPLEX16FrequencySeries * XLALResizeCOMPLEX16FrequencySeries(COMPLEX16FrequencySeries *series, int first, size_t length)
@ NRTidalv2NoAmpCorr_V
version NRTidalv2, without amplitude corrections
@ NRTidalv2_V
version NRTidalv2: https://arxiv.org/abs/1905.06011
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 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.
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 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.
void XLALDestroyREAL8Sequence(REAL8Sequence *sequence)
REAL8Sequence * XLALCreateREAL8Sequence(size_t length)
#define XLAL_CHECK(assertion,...)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1