Commit 49121414 authored by Riccardo Sturani's avatar Riccardo Sturani
Browse files

Spin-spin terms in SpinTaylor code consistently included.

Original: 1162f19d6d600d737667e9c5e660c733933aae2a
parent e69680a3
......@@ -219,10 +219,10 @@ static INT4 XLALSimIMRPhenSpinParamsSetup(LALSimInspiralPhenSpinTaylorT4Coeffs
case 4:
params->wdotcoeff[4] = XLALSimInspiralTaylorT4wdot_4PNCoeff(params->eta);
params->Ecoeff[4] = XLALSimInspiralPNEnergy_4PNCoeff(params->eta);
params->wdot4S1S2 = XLALSimInspiralTaylorT4wdot_4PNS1S2Coeff(params->eta);
params->wdot4S1OS2O = XLALSimInspiralTaylorT4wdot_4PNS1S2OCoeff(params->eta);
params->E4S1S2 = XLALSimInspiralPNEnergy_4PNS1S2Coeff(params->eta);
params->E4S1OS2O = XLALSimInspiralPNEnergy_4PNS1S2OCoeff(params->eta);
params->wdot4S1S2 = XLALSimInspiralTaylorT4wdot_4PNS1S2CoeffAvg(params->eta);
params->wdot4S1OS2O = XLALSimInspiralTaylorT4wdot_4PNS1S2OCoeffAvg(params->eta);
params->E4S1S2 = XLALSimInspiralPNEnergy_4PNS1S2CoeffAvg(params->eta);
params->E4S1OS2O = XLALSimInspiralPNEnergy_4PNS1S2OCoeffAvg(params->eta);
params->wdot4S1S1 = XLALSimInspiralTaylorT4wdot_4PNSelf2SCoeff(params->m1ByM);
params->wdot4S1OS1O = XLALSimInspiralTaylorT4wdot_4PNSelf2SOCoeff(params->m1ByM);
params->wdot4S2S2 = XLALSimInspiralTaylorT4wdot_4PNSelf2SCoeff(params->m2ByM);
......@@ -231,14 +231,14 @@ static INT4 XLALSimIMRPhenSpinParamsSetup(LALSimInspiralPhenSpinTaylorT4Coeffs
params->wdot4QMS1O = quadparam1*XLALSimInspiralTaylorT4wdot_4PNQM2SOCoeff(params->m1ByM);
params->wdot4QMS2 = quadparam2*XLALSimInspiralTaylorT4wdot_4PNQM2SCoeff(params->m2ByM);
params->wdot4QMS2O = quadparam2*XLALSimInspiralTaylorT4wdot_4PNQM2SOCoeff(params->m2ByM);
params->E4QMS1 = quadparam1*XLALSimInspiralPNEnergy_4PNQM2SCoeff(params->m1ByM);
params->E4QMS2 = quadparam2*XLALSimInspiralPNEnergy_4PNQM2SCoeff(params->m2ByM);
params->E4QMS1O = quadparam1*XLALSimInspiralPNEnergy_4PNQM2SOCoeff(params->m1ByM);
params->E4QMS2O = quadparam2*XLALSimInspiralPNEnergy_4PNQM2SOCoeff(params->m2ByM);
params->Sdot4S2 = XLALSimInspiralSpinDot_4PNS2Coeff;
params->Sdot4S2O = XLALSimInspiralSpinDot_4PNS2OCoeff;
params->S1dot4QMS1O = quadparam1*XLALSimInspiralSpinDot_4PNQMSOCoeff(params->m1ByM);
params->S2dot4QMS2O = quadparam2*XLALSimInspiralSpinDot_4PNQMSOCoeff(params->m2ByM);
params->E4QMS1 = quadparam1*XLALSimInspiralPNEnergy_4PNQM2SCoeffAvg(params->m1ByM);
params->E4QMS2 = quadparam2*XLALSimInspiralPNEnergy_4PNQM2SCoeffAvg(params->m2ByM);
params->E4QMS1O = quadparam1*XLALSimInspiralPNEnergy_4PNQM2SOCoeffAvg(params->m1ByM);
params->E4QMS2O = quadparam2*XLALSimInspiralPNEnergy_4PNQM2SOCoeffAvg(params->m2ByM);
params->Sdot4S2 = XLALSimInspiralSpinDot_4PNS2CoeffAvg;
params->Sdot4S2O = XLALSimInspiralSpinDot_4PNS2OCoeffAvg;
params->S1dot4QMS1O = quadparam1*XLALSimInspiralSpinDot_4PNQMSOCoeffAvg(params->m1ByM);
params->S2dot4QMS2O = quadparam2*XLALSimInspiralSpinDot_4PNQMSOCoeffAvg(params->m2ByM);
case 3:
params->Ecoeff[3] = 0.;
......
......@@ -535,7 +535,8 @@ int XLALSimInspiralChooseTDWaveform(
/* spinning inspiral-only models */
case SpinTaylorT2:
/* Waveform-specific sanity checks */
/* Sanity check unused fields of waveFlags */
if( !checkTransverseSpinsZero(S1x, S1y, S2x, S2y) && (XLALSimInspiralWaveformParamsLookupPNSpinOrder(LALparams)>5) )
ABORT_NONZERO_TRANSVERSE_SPINS_HIGH_SPINO(LALparams);
XLALSimInspiralInitialConditionsPrecessingApproxs(&incl,&spin1x,&spin1y,&spin1z,&spin2x,&spin2y,&spin2z,inclination,S1x,S1y,S1z,S2x,S2y,S2z,m1,m2,f_ref,phiRef,XLALSimInspiralWaveformParamsLookupFrameAxis(LALparams));
LNhatx = sin(incl);
LNhaty = 0.;
......@@ -565,7 +566,8 @@ int XLALSimInspiralChooseTDWaveform(
// initial ** L **.
case SpinTaylorT4:
/* Waveform-specific sanity checks */
/* Sanity check unused fields of waveFlags */
if( !checkTransverseSpinsZero(S1x, S1y, S2x, S2y) && (XLALSimInspiralWaveformParamsLookupPNSpinOrder(LALparams)>5) )
ABORT_NONZERO_TRANSVERSE_SPINS_HIGH_SPINO(LALparams);
XLALSimInspiralInitialConditionsPrecessingApproxs(&incl,&spin1x,&spin1y,&spin1z,&spin2x,&spin2y,&spin2z,inclination,S1x,S1y,S1z,S2x,S2y,S2z,m1,m2,f_ref,phiRef,XLALSimInspiralWaveformParamsLookupFrameAxis(LALparams));
LNhatx = sin(incl);
LNhaty = 0.;
......@@ -588,7 +590,9 @@ int XLALSimInspiralChooseTDWaveform(
case SpinTaylorT1:
/* Waveform-specific sanity checks */
/* Sanity check unused fields of waveFlags */
/* Waveform-specific sanity checks */
if( !checkTransverseSpinsZero(S1x, S1y, S2x, S2y) && (XLALSimInspiralWaveformParamsLookupPNSpinOrder(LALparams)>5) )
ABORT_NONZERO_TRANSVERSE_SPINS_HIGH_SPINO(LALparams);
XLALSimInspiralInitialConditionsPrecessingApproxs(&incl,&spin1x,&spin1y,&spin1z,&spin2x,&spin2y,&spin2z,inclination,S1x,S1y,S1z,S2x,S2y,S2z,m1,m2,f_ref,phiRef,XLALSimInspiralWaveformParamsLookupFrameAxis(LALparams));
LNhatx = sin(incl);
LNhaty = 0.;
......
......@@ -642,37 +642,31 @@ typedef struct tagXLALSimInspiralSpinTaylorTxCoeffs
REAL8 wdotcoeff[LAL_MAX_PN_ORDER]; ///< coeffs. of PN corrections to wdot
REAL8 wdotlogcoeff; ///< coefficient of log term in wdot
REAL8 wdot3S1O, wdot3S2O; ///< non-dynamical 1.5PN SO corrections
REAL8 wdot4S1S2, wdot4S1OS2O; ///< non-dynamical 2PN SS corrections
REAL8 wdot4S1S1,wdot4S2S2; ///< non-dynamical self S^2 2PN correction
REAL8 wdot4S1OS1O, wdot4S2OS2O; ///< non-dynamical self SO^2 2PN correction
REAL8 wdot4QMS1S1; ///< non-dynamical S1^2 2PN quadrupole-monopole correct
REAL8 wdot4QMS1OS1O; ///< non-dynamical (S1.L)^2 2PN quadrupole-monopole co
REAL8 wdot4QMS2S2; ///< non-dynamical S2^2 2PN quadrupole-monopole correct
REAL8 wdot4QMS2OS2O; ///< non-dynamical (S2.L)^2 2PN quadrupole-monopole c
REAL8 wdot4S1S2Avg, wdot4S1OS2OAvg; ///< non-dynamical, averaged 2PN SS corrections
REAL8 wdot4S1S1Avg, wdot4S1OS1OAvg, wdot4S2S2Avg, wdot4S2OS2OAvg; ///< non-dynamical, averaged self S^2 2PN correction
REAL8 wdot4QMS1S1Avg, wdot4QMS1OS1OAvg; ///< non-dynamical, averaged (S_1)^2 2PN quadrupole-monopole corrections
REAL8 wdot4QMS2S2Avg, wdot4QMS2OS2OAvg; ///< non-dynamical,averaged (S_2)^2 2PN quadrupole-monopole corrections
REAL8 wdot5S1O, wdot5S2O; ///< non-dynamical 2.5PN SO corrections
REAL8 wdot6S1O, wdot6S2O; ///< non-dynamical 3PN SO corrections
REAL8 wdot6S1S2, wdot6S1OS2O; ///< non-dynamical 3PN S1-S2 corrections
REAL8 wdot6S1S1, wdot6S1OS1O; ///< non-dynamical 3PN Spin^2 corrections
REAL8 wdot6S2S2, wdot6S2OS2O; ///< non-dynamical 3PN Spin^2 corrections
REAL8 wdot6QMS1S1, wdot6QMS1OS1O; ///< non-dynamical 3PN quadrupole-monopole S1^2 corrections
REAL8 wdot6QMS2S2, wdot6QMS2OS2O; ///< non-dynamical 3PN quadrupole-monopole S2^2 corrections
REAL8 wdot6S1O, wdot6S2O; ///< non-dynamical, 3PN SO corrections
REAL8 wdot6S1S2, wdot6S1OS2O, wdot6S1nS2n; ///< non-dynamical 3PN S1-S2 corrections
REAL8 wdot6S1S1, wdot6S1OS1O, wdot6S1nS1n; ///< non-dynamical 3PN Spin^2 corrections
REAL8 wdot6S2S2, wdot6S2OS2O, wdot6S2nS2n; ///< non-dynamical 3PN Spin^2 corrections
REAL8 wdot6QMS1S1, wdot6QMS1OS1O, wdot6QMS1nS1n; ///< non-dynamical 3PN quadrupole-monopole (S_1)^2 corrections
REAL8 wdot6QMS2S2, wdot6QMS2OS2O, wdot6QMS2nS2n; ///< non-dynamical 3PN quadrupole-monopole (S_2)^2 corrections
REAL8 wdot7S1O, wdot7S2O; ///< non-dynamical 3.5PN SO corrections
REAL8 wdottidal10; ///< leading order tidal correction
REAL8 wdottidal12; ///< next to leading order tidal correction
REAL8 Ecoeff[LAL_MAX_PN_ORDER]; ///< coeffs. of PN corrections to energy
REAL8 E3S1O, E3S2O; ///< non-dynamical 1.5PN SO corrections
REAL8 E4S1S2,E4S1OS2O; ///< non-dynamical 2PN SS correction
REAL8 E4QMS1S1; ///< non-dynamical S1^2 2PN quadrupole-monopole correction
REAL8 E4QMS1OS1O;///< non-dynamical (S1.L)^2 2PN quadrupole-monopole correction
REAL8 E4QMS2S2; ///< non-dynamical S2^2 2PN quadrupole-monopole correction
REAL8 E4QMS2OS2O;///< non-dynamical (S2.L)^2 2PN quadrupole-monopole correction
REAL8 E4S1S2Avg,E4S1OS2OAvg; ///< non-dynamical, averaged 2PN SS correction
REAL8 E4QMS1S1Avg, E4QMS1OS1OAvg;///< non-dynamical, averaged (S_1)^2 2PN quadrupole-monopole correction
REAL8 E4QMS2S2Avg, E4QMS2OS2OAvg;///< non-dynamical, averaged (S_2)^2 2PN quadrupole-monopole correction
REAL8 E5S1O, E5S2O; ///< non-dynamical 2.5PN SO corrections
REAL8 E6S1S2; ///< non-dynamical 3PN S1-S2 correction
REAL8 E6S1OS2O; ///< non-dynamical 3PN S1.LN S2.LN correction
REAL8 E6S1S1, E6S1OS1O; ///< non-dynamical 3PN slef-spin^2 corrections
REAL8 E6S2S2, E6S2OS2O; ///< non-dynamical 3PN self-spin^2 corrections
REAL8 E6QMS1S1, E6QMS1OS1O; ///< non-dynamical 3PN quadrupole-monopole spin^2 corrections
REAL8 E6QMS2S2, E6QMS2OS2O; ///< non-dynamical 3PN quadrupole-monopole spin^2 corrections
REAL8 E6S1S2, E6S1OS2O, E6S1nS2n; ///< non-dynamical 3PN S_1.S_2 correction
REAL8 E6S1S1, E6S1OS1O, E6S1nS1n; ///< non-dynamical 3PN self-spin^2 corrections
REAL8 E6S2S2, E6S2OS2O, E6S2nS2n; ///< non-dynamical 3PN self-spin^2 corrections
REAL8 E6QMS1S1, E6QMS1OS1O, E6QMS1nS1n; ///< non-dynamical 3PN quadrupole-monopole spin^2 corrections
REAL8 E6QMS2S2, E6QMS2OS2O, E6QMS2nS2n; ///< non-dynamical 3PN quadrupole-monopole spin^2 corrections
REAL8 E7S1O, E7S2O; ///< non-dynamical 3.5PN SO corrections
REAL8 Etidal10; ///< leading order 5PN tidal correction to energy
REAL8 Etidal12; ///< next to leading order 6PN tidal correction to energy
......@@ -682,51 +676,34 @@ typedef struct tagXLALSimInspiralSpinTaylorTxCoeffs
REAL8 Flogcoeff; ///<log coeff in flux
REAL8 F3S1O; ///< Coefficient of S1.LN term
REAL8 F3S2O; ///< Coefficient of S2.LN term
REAL8 F4S1S2; ///< Coefficient of S1.S2 term
REAL8 F4S1OS2O;///< Coefficient of S1.LN S2.LN term
REAL8 F4S1S1; ///< Coefficient of S1.S1 term
REAL8 F4S1OS1O;///< Coefficient of (S1.LN)^2 term
REAL8 F4S2S2; ///< Coefficient of S1.S2 term
REAL8 F4S2OS2O; ///< Coefficient of (S2.LN)^2 term
REAL8 F4QMS1S1; ///< Coefficient of S1.S1 term
REAL8 F4QMS2S2; ///< Coefficient of S2.S2 term
REAL8 F4QMS1OS1O; ///< Coefficient of quad-monop. (S1.LN)^2 term
REAL8 F4QMS2OS2O; ///< Coefficient of quad-monop. (S2.LN)^2 term
REAL8 F4S1S2Avg, F4S1OS2OAvg;///< Averaged coefficients of S1.S2 terms
REAL8 F4S1S1Avg, F4S1OS1OAvg;///< Coefficient of averaged (S_1)^2 term
REAL8 F4S2S2Avg, F4S2OS2OAvg;///< Coefficient of averaged (S_2)^2 term
REAL8 F4QMS1S1Avg, F4QMS1OS1OAvg; ///< Averaged coefficient of quad-monop. (S_1)^2 terms
REAL8 F4QMS2S2Avg, F4QMS2OS2OAvg; ///< Averaged coefficient of quad-monop. (S_2)^2 terms
REAL8 F5S1O; ///< Coefficient of (S1.LN)
REAL8 F5S2O; ///< Coefficient of (S1.LN) term
REAL8 F6S1O, F6S2O; ///< Coefficient of (Si.LN) term
REAL8 F6S1S2, F6S1OS2O; ///< Coefficients of S1.S2 and S1.LN S2.LN terms
REAL8 F6S1S1, F6S1OS1O; ///< Coefficients of S1.S1 and (S1.LN)^2 terms
REAL8 F6S2S2, F6S2OS2O; ///< Coefficients of S2.S2 and (S2.LN)^2 terms
REAL8 F6QMS1S1, F6QMS2S2; ///< Coefficients of quad-monop. S1.S1 and S2.S2 terms
REAL8 F6QMS1OS1O, F6QMS2OS2O; ///< Coefficients of quad-monop. (S1.LN)^2 and (S2.LN)^2 terms
REAL8 F6S1S2, F6S1OS2O, F6S1nS2n; ///< Coefficients of S1.S2 terms
REAL8 F6S1S1, F6S1OS1O, F6S1nS1n; ///< Coefficients of S1.S1 terms
REAL8 F6S2S2, F6S2OS2O, F6S2nS2n; ///< Coefficients of S2.S2 terms
REAL8 F6QMS1S1, F6QMS1OS1O, F6QMS1nS2n; ///< Coefficients of quad-monop. S1.S1 terms
REAL8 F6QMS2S2, F6QMS2OS2O, F6QMS2nS2n; ///< Coefficients of quad-monop. S2.S22 terms
REAL8 F7S1O; ///< Coefficients of S1.LN term
REAL8 F7S2O; ///< Coefficients of S2.LN term
REAL8 Ftidal10; ///< leading order 5PN tidal correction
REAL8 Ftidal12; ///< next-to-leading order 6PN tidal correction
REAL8 Ldot3S1O, Ldot3S2O; ///< non-dynamical 1.5PN SO corrections
REAL8 Ldot4S1S2; ///< non-dynamical 2PN coefficients of S1.LN S2xL and S2.LN S1xL
REAL8 Ldot4QMS1; ///< non-dynamical quad-monop. 2PN coeff of S1.LN S1xL
REAL8 Ldot4QMS2; ///< non-dynamical quad-monop. 2PN coeff of S2.LN S2xL
REAL8 Ldot5S1O, Ldot5S2O; ///< non-dynamical 2.5PN SO corrections
REAL8 Ldot6S1OS2, Ldot6S2OS1; ///< non-dynamical 3PN S1S2 corrections
REAL8 Ldot6S1OS1, Ldot6S2OS2; ///< non-dynamical 3PN S^2 corrections
REAL8 Ldot6QMS1O, Ldot6QMS2O; ///< non-dynamical 3PN quadrupole-monopole S^2 corrections
REAL8 Ldot7S1, Ldot7S2; ///< non-dynamical 3.5PN SxL terms in Ldot
REAL8 S1dot3; ///< coeff of LNxS1 term in S1dot
REAL8 S2dot3; ///< coeff of LNxS2 term in S2dot
REAL8 Sdot4S2; ///< coeff of S2xS1 term in S1dot and of S1xS2 in S2dot
REAL8 Sdot4S2O; ///< coeff of LN.S2 LNxS1 term in S1dot and of LN.S1 LNxS2 in S2dot
REAL8 S1dot4QMS1O; ///< coeff of quad-monop. LN.S1 LNxS1 term in S1dot
REAL8 S2dot4QMS2O; ///< coeff of quad-monop. LN.S2 LNxS2 term in S1dot
REAL8 Sdot4S2Avg; ///< coeff of S2xS1 term in S1dot and of S1xS2 in S2dot
REAL8 Sdot4S2OAvg; ///< coeff of LN.S2 LNxS1 term in S1dot and of LN.S1 LNxS2 in S2dot
REAL8 S1dot4QMS1OAvg; ///< coeff of quad-monop. LN.S1 LNxS1 averaged term in S1dot
REAL8 S2dot4QMS2OAvg; ///< coeff of quad-monop. LN.S2 LNxS2 averaged term in S1dot
REAL8 S1dot5S2; ///< coeff of LNxS1 term in S1dot
REAL8 S2dot5S1; ///< coeff of LNxS2 term in S2dot
REAL8 S1dot6S1O, S1dot6S2O; ///< coeff of LN.Si LNxS1 term in S1dot
REAL8 S1dot6S2; ///< coeff of S2xS1 term in S1dot
REAL8 S1dot6QMS1O; ///< coeff of quad-monop. S1.LN LNxS1 term in S1dot
REAL8 S2dot6S1O, S2dot6S2O; ///< coeff of LN.Si LNxS2 term in S2dot
REAL8 S2dot6S1; // Coefficient of S1 x S2 in S2dot
REAL8 S2dot6QMS2O; //Coeff. of quad-monop. S2.LN LN X S2 term in S2dot
REAL8 S1dot7S2;// Coefficient of S1 x S2 in S1dot
REAL8 S2dot7S1;// Coefficient of S1 x S2 in S2dot
REAL8 fStart; ///< starting GW frequency of integration
......@@ -736,6 +713,7 @@ typedef struct tagXLALSimInspiralSpinTaylorTxCoeffs
LALSimInspiralTidalOrder tideO;///< Twice PN order of included tidal effects
REAL8 prev_domega; ///< Previous value of domega/dt used in stopping test
} XLALSimInspiralSpinTaylorTxCoeffs;
int XLALSimInspiralSpinTaylorPNEvolveOrbit(REAL8TimeSeries **V, REAL8TimeSeries **Phi, REAL8TimeSeries **S1x, REAL8TimeSeries **S1y, REAL8TimeSeries **S1z, REAL8TimeSeries **S2x, REAL8TimeSeries **S2y, REAL8TimeSeries **S2z, REAL8TimeSeries **LNhatx, REAL8TimeSeries **LNhaty, REAL8TimeSeries **LNhatz, REAL8TimeSeries **E1x, REAL8TimeSeries **E1y, REAL8TimeSeries **E1z, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fEnd, 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, LALSimInspiralSpinOrder spinO, LALSimInspiralTidalOrder tideO, INT4 phaseO, Approximant approx);
int XLALSimInspiralSpinTaylorT1(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, 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, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams, int phaseO, int amplitudeO);
int XLALSimInspiralSpinTaylorT2(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 v0, 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, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALDict *LALparams, int phaseO, int amplitudeO);
......@@ -747,7 +725,7 @@ int XLALSimInspiralSpinTaylorT4Fourier(COMPLEX16FrequencySeries **hplus, COMPLEX
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);
int XLALSimInspiralPrecessingPTFQWaveforms(REAL8TimeSeries **Q1, REAL8TimeSeries **Q2, REAL8TimeSeries **Q3, REAL8TimeSeries **Q4, REAL8TimeSeries **Q5, REAL8TimeSeries *V, REAL8TimeSeries *Phi, REAL8TimeSeries *S1x, REAL8TimeSeries *S1y, REAL8TimeSeries *S1z, REAL8TimeSeries *S2x, REAL8TimeSeries *S2y, REAL8TimeSeries *S2z, REAL8TimeSeries *LNhatx, REAL8TimeSeries *LNhaty, REAL8TimeSeries *LNhatz, REAL8TimeSeries *E1x, REAL8TimeSeries *E1y, REAL8TimeSeries *E1z, REAL8 m1, REAL8 m2, REAL8 r);
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);
INT4 XLALSimInspiralSpinDerivatives(REAL8 *dLNhx, REAL8 *dLNhy, REAL8 *dLNhz, REAL8 *dE1x, REAL8 *dE1y, REAL8 *dE1z, REAL8 *dS1x, REAL8 *dS1y, REAL8 *dS1z, REAL8 *dS2x, REAL8 *dS2y, REAL8 *dS2z, REAL8 *dphiExtra, const REAL8 v, const REAL8 LNhx, const REAL8 LNhy, const REAL8 LNhz, const REAL8 E1x, const REAL8 E1y, const REAL8 E1z, const REAL8 S1x, const REAL8 S1y, const REAL8 S1z, const REAL8 S2x, const REAL8 S2y, const REAL8 S2z, const REAL8 LNhdotS1, const REAL8 LNhdotS2, XLALSimInspiralSpinTaylorTxCoeffs *params);
INT4 XLALSimInspiralSpinDerivatives(REAL8 *dLNhx, REAL8 *dLNhy, REAL8 *dLNhz, REAL8 *dE1x, REAL8 *dE1y, REAL8 *dE1z, REAL8 *dS1x, REAL8 *dS1y, REAL8 *dS1z, REAL8 *dS2x, REAL8 *dS2y, REAL8 *dS2z, const REAL8 v, const REAL8 LNhx, const REAL8 LNhy, const REAL8 LNhz, const REAL8 E1x, const REAL8 E1y, const REAL8 E1z, const REAL8 S1x, const REAL8 S1y, const REAL8 S1z, const REAL8 S2x, const REAL8 S2y, const REAL8 S2z, const REAL8 LNhdotS1, const REAL8 LNhdotS2, XLALSimInspiralSpinTaylorTxCoeffs *params);
INT4 XLALSimInspiralSpinTaylorT4Derivatives(REAL8 t, const REAL8 values[], REAL8 dvalues[], void *mparams);
INT4 XLALSimInspiralSpinTaylorT4Setup(XLALSimInspiralSpinTaylorTxCoeffs *params, REAL8 m1, REAL8 m2, REAL8 fStart, REAL8 fEnd, REAL8 lambda1, REAL8 lambda2, REAL8 quadparam1, REAL8 quadparam2, LALSimInspiralSpinOrder spinO, LALSimInspiralTidalOrder tideO, INT4 phaseO);
INT4 XLALSimSpinTaylorEnergySpinDerivativeSetup(XLALSimInspiralSpinTaylorTxCoeffs *params, const REAL8 lambda1, const REAL8 lambda2, const REAL8 quadparam1, const REAL8 quadparam2);
......
......@@ -36,6 +36,13 @@
* templates for compact binary inspiral signals in gravitational-wave
* detectors", Phys. Rev. D 80, 084043 (2009), arXiv:0907.0700v1
* For the spin terms a good reference are (3.15) and (3.16) of 1303.7412
*
* In the latest version coefficients of the terms n.S and L.S are reported
* "Averaged" spin coefficients refer to the ones obtained by orbital averaging,
* i.e. by using
* n_i n_j = 1/2 (\f$\delta_{ij} - \hat LN_i \hat LN_j\f$)
* However such orbital averaging at 2PN would introduce corrections
* at 3PN, as LNh is not constant.
*/
static REAL8 UNUSED
......@@ -100,37 +107,79 @@ XLALSimInspiralPNEnergy_3PNSOCoeff(
/* Eq. (6) of arXiv:astro-ph/0504538v2
*/
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNS1S2Coeff(
XLALSimInspiralPNEnergy_4PNS1S2CoeffAvg(
REAL8 eta)
{
return 1./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNS1S2Coeff(
REAL8 eta)
{
return -2./eta;
}
/* Eq. (6) of arXiv:astro-ph/0504538v2
*/
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNS1S2OCoeff(
XLALSimInspiralPNEnergy_4PNS1S2OCoeffAvg(
REAL8 eta)
{
return -3./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNS1S2OCoeff(
REAL8 UNUSED eta)
{
return 0.;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNS1S2nCoeff(
REAL8 UNUSED eta)
{
return 6./eta;
}
/* Eq. (6) of arXiv:astro-ph/0504538v2
*/
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNQM2SCoeff(
XLALSimInspiralPNEnergy_4PNQM2SCoeffAvg(
REAL8 mByM)
{
return (1./mByM/mByM) / 2.;
return .5/mByM/mByM;
}
/* Eq. (6) of arXiv:astro-ph/0504538v2
*/
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNQM2SOCoeffAvg(
REAL8 mByM)
{
return -1.5/mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNQM2SCoeff(
REAL8 mByM)
{
return 2./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNQM2SOCoeff(
REAL8 mByM)
{
return -3. * (1./mByM/mByM) / 2.;
return -3./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_4PNQM2SnCoeff(
REAL8 mByM)
{
return -3./mByM/mByM;
}
/* Eq. 4.6 of arXiv:1212.5520
......@@ -148,7 +197,7 @@ static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNS1S2Coeff(
REAL8 eta)
{
return 2./eta-11./6.;
return -2./eta -1./3.;
}
/* From (3.30) of arXiv:1501.01529
......@@ -157,7 +206,14 @@ static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNS1S2OCoeff(
REAL8 eta)
{
return -11./3./eta + 2.3/1.8;
return 1./3./eta - 2./9.;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNS1S2nCoeff(
REAL8 eta)
{
return 8./eta - 3.;
}
/* From (3.30) of arXiv:1501.01529
......@@ -166,7 +222,7 @@ static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNSelf2SCoeff(
REAL8 mByM)
{
return -1./mByM/mByM - 1./6./mByM - 0.5;
return 4./mByM/mByM - 3./mByM - 1.;
}
/* From (3.30) of arXiv:1501.01529
......@@ -175,7 +231,14 @@ static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNSelf2SOCoeff(
REAL8 mByM)
{
return 6./mByM/mByM - 1.5/mByM - 1.1/1.8;
return 1./mByM/mByM + 4./3./mByM - 1./9.;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNSelf2SnCoeff(
REAL8 mByM)
{
return -10./mByM/mByM + 17./3./mByM + 1.;
}
/* From (3.30) of arXiv:1501.01529
......@@ -184,7 +247,7 @@ static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNQM2SCoeff(
REAL8 mByM)
{
return 1.25/mByM/mByM + 1.25/mByM + 5./12.;
return -1.5/mByM/mByM - 3.5/mByM - 5./6.;
}
/* From (3.30) of arXiv:1501.01529
......@@ -192,10 +255,24 @@ XLALSimInspiralPNEnergy_6PNQM2SCoeff(
static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNQM2SOCoeff(
REAL8 mByM)
{
return -1./mByM/mByM + 1./mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNQM2SOCoeffAvg(
REAL8 mByM)
{
return -15./4./mByM/mByM - 15./4./mByM - 1.25;
}
static REAL8 UNUSED
XLALSimInspiralPNEnergy_6PNQM2SnCoeff(
REAL8 mByM)
{
return 5.5/mByM/mByM + 9.5/mByM + 2.5;
}
/* Eq. (4.6) of arXiv:1212.5520
* Symbol definitions right above eq. (3.1)
*/
......@@ -274,44 +351,107 @@ static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNS1S2Coeff(
REAL8 eta)
{
return -103./48./eta;
return 41./6./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNS1S2OCoeff(
REAL8 eta)
{
return -71./24./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNS1S2nCoeff(
REAL8 eta)
{
return -431./24./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNS1S2CoeffAvg(
REAL8 eta)
{
return -103./48./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNS1S2OCoeffAvg(
REAL8 eta)
{
return 289./48./eta;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SCoeff(
XLALSimInspiralPNFlux_4PNSelf2SCoeff(
REAL8 mByM)
{
return -1./mByM/mByM;
return 1./12./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SOCoeff(
XLALSimInspiralPNFlux_4PNSelf2SOCoeff(
REAL8 mByM)
{
return 3./mByM/mByM;
return -1./48./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNSelf2SCoeff(
XLALSimInspiralPNFlux_4PNSelf2SnCoeff(
REAL8 mByM)
{
return -1./48./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNSelf2SCoeffAvg(
REAL8 mByM)
{
return 7./96./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNSelf2SOCoeff(
XLALSimInspiralPNFlux_4PNSelf2SOCoeffAvg(
REAL8 mByM)
{
return -1./96./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SCoeff(
REAL8 mByM)
{
return 3.5/mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SOCoeff(
REAL8 mByM)
{
return -1.5/mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SnCoeff(
REAL8 mByM)
{
return -9./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SCoeffAvg(
REAL8 mByM)
{
return -1./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_4PNQM2SOCoeffAvg(
REAL8 mByM)
{
return 3./mByM/mByM;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_5PNCoeff(
REAL8 eta)
......@@ -360,42 +500,63 @@ static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNS1S2Coeff(
REAL8 eta)
{
return 212.3/8.4/eta + 82.1/7.2;
return -182.5/5.6/eta - 129.05/5.04;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNS1S2OCoeff(
REAL8 eta)
{
return -56.47/1.68/eta - 202.3/7.2;
return 97./4./eta + 49.9/5.6;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNS1S2nCoeff(
REAL8 eta)
{
return 972.1/8.4/eta + 466.3/6.3;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNSelf2SCoeff(
REAL8 mByM)
{
return 18.9/(1.6*mByM*mByM) - 3.5/(14.4*mByM) + 4.7/14.4;
return 5.87/(1.12*mByM*mByM) - 28.19/(5.04*mByM) + 1.9/100.8;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNSelf2SOCoeff(
REAL8 mByM)
{
return -239./16./mByM/mByM + 293./144./mByM + 299./144.;
return -9.37/(1.12*mByM*mByM) + 18.61/(2.52*mByM) + 2.67/1.12;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNSelf2SnCoeff(
REAL8 mByM)
{
return 92./7./mByM/mByM + 53.93/5.04/mByM + 1.55/2.52;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNQM2SCoeff(
REAL8 mByM)
{
return 2.79/(1.12*mByM*mByM) + 4.5/(1.6*mByM) - 43./8.;
return -224.5/(8.4*mByM*mByM) + 3.73/(1.68*mByM) + 35.9/2.8;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNQM2SOCoeff(
REAL8 mByM)
{
return -8.37/(1.12*mByM*mByM) - 13.5/(1.6*mByM) + 129./8.;
return 36.53/(1.68*mByM*mByM) - 65.9/(8.4*mByM) - 2.9/1.4;
}
static REAL8 UNUSED
XLALSimInspiralPNFlux_6PNQM2SnCoeff(
REAL8 mByM)
{
return 98.17/(1.68*mByM*mByM) + 1.99/(1.68*mByM) - 101.9/2.8;
}
/*
......@@ -754,6 +915,13 @@ XLALSimInspiralTaylorT2dtdv_7PNSOCoeff(
static REAL8 UNUSED
XLALSimInspiralTaylorT2dtdv_4PNS1S2Coeff(
REAL8 eta)
{
return -77./6./eta;
}