37 #ifndef LALSIMIMRSPINALIGNEDEOBHCAPDERIVATIVE_C
38 #define LALSIMIMRSPINALIGNEDEOBHCAPDERIVATIVE_C
40 #include <lal/LALSimInspiral.h>
41 #include <lal/LALSimIMR.h>
47 #include <gsl/gsl_deriv.h>
86 static const REAL8 STEP_SIZE = 1.0e-4;
88 static const INT4 lMax = 8;
105 UINT4 SpinAlignedEOBversion;
109 REAL8 rData[3], pData[3];
116 REAL8 mass1, mass2, eta;
129 REAL8 DeltaT, DeltaR;
139 params.values = cartValues;
155 SpinAlignedEOBversion =
params.
params->seobCoeffs->SpinAlignedEOBversion;
167 csi = sqrt( DeltaT * DeltaR ) / (
r*
r +
a*
a);
173 memset( cartValues, 0,
sizeof( cartValues ) );
174 cartValues[0] = values[0];
175 cartValues[3] = values[2];
176 cartValues[4] = values[3] / values[0];
179 for (
i = 0;
i < 6;
i++ )
182 XLAL_CALLGSL( gslStatus = gsl_deriv_central( &F, cartValues[
i],
183 STEP_SIZE, &tmpDValues[
i], &absErr ) );
185 if ( gslStatus != GSL_SUCCESS )
187 XLALPrintError(
"XLAL Error - %s: Failure in GSL function\n", __func__ );
194 polarDynamics.
data = polData;
196 memcpy( polData, values,
sizeof( polData ) );
202 memset( rData, 0,
sizeof(rData) );
203 memset( pData, 0,
sizeof(pData) );
205 rData[0] = values[0];
206 pData[0] = values[2];
207 pData[1] = values[3] / values[0];
215 H =
H * (mass1 + mass2);
222 omega = tmpDValues[4] /
r;
233 dvalues[0] =
csi * tmpDValues[3];
236 dvalues[2] = - tmpDValues[0] + tmpDValues[4] * values[3] / (
r*
r);
237 dvalues[2] = dvalues[2] *
csi - ( values[2] / values[3] ) * flux / omega;
238 dvalues[3] = - flux / omega;
244 if ( isnan( dvalues[0] ) || isnan( dvalues[1] ) || isnan( dvalues[2] ) || isnan( dvalues[3] ) )
static int XLALSpinAlignedHcapDerivative(double t, const REAL8 values[], REAL8 dvalues[], void *funcParams)
static REAL8 XLALInspiralSpinFactorizedFlux(REAL8Vector *values, EOBNonQCCoeffs *nqcCoeffs, const REAL8 omega, SpinEOBParams *ak, const REAL8 H, const UINT4 lMax, const UINT4 SpinAlignedEOBversion)
static REAL8 XLALSimIMRSpinEOBHamiltonianDeltaR(SpinEOBHCoeffs *coeffs, const REAL8 r, const REAL8 eta, const REAL8 a)
This function calculates the DeltaR potential function in the spin EOB Hamiltonian.
static REAL8 XLALSimIMRSpinEOBHamiltonian(const REAL8 eta, REAL8Vector *restrict x, REAL8Vector *restrict p, REAL8Vector *restrict s1Vec, REAL8Vector *restrict s2Vec, REAL8Vector *restrict sigmaKerr, REAL8Vector *restrict sigmaStar, int tortoise, SpinEOBHCoeffs *coeffs)
static double GSLSpinAlignedHamiltonianWrapper(double x, void *params)
static REAL8 XLALSimIMRSpinEOBHamiltonianDeltaT(SpinEOBHCoeffs *coeffs, const REAL8 r, const REAL8 eta, const REAL8 a)
This function calculates the function which appears in the spinning EOB potential function.
#define XLAL_CALLGSL(statement)
int XLALPrintError(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
The coefficients which are used in calculating the non-quasicircular correction to the EOBNRv2 model.
Parameters for the spinning EOB model.