78#include <lal/LALInspiral.h>
79#include <lal/LALStdlib.h>
81#include <lal/SeqFactories.h>
110 if (
params->nStartPad < 0)
114 if (
params->tSampling <= 0)
124 if (
params->totalMass <= 0.)
161 if (output1->
data == NULL)
163 if (output2->
data == NULL)
167 if (
params->nStartPad < 0)
171 if (
params->tSampling <= 0)
181 if (
params->totalMass <= 0.)
226 if (waveform == NULL)
228 if (waveform->
h != NULL)
230 if (waveform->
a != NULL)
232 if (waveform->
f != NULL)
234 if (waveform->
phi != NULL)
236 if (waveform->
shift != NULL)
240 sprintf(message,
"WARNING: Amp Order has been reset to %d",
params->ampOrder);
246 if (paramsInit.
nbins == 0)
265 memset(
a->data, 0, 2 * paramsInit.
nbins *
sizeof(
REAL4));
278 phi,
params, ¶msInit);
291 p = phi->
data[count-1];
294 sprintf(message,
"cycles = %f", fabs(
p)/(
double)
LAL_TWOPI);
298 sprintf(message,
"The waveform has only %f cycles; we don't keep waveform with less than 2 cycles.",
305 phiC = phi->
data[count-1] ;
306 for (
i=0;
i<count;
i++)
312 if ( waveform->
a == NULL )
317 if ( waveform->
f == NULL )
326 if ( waveform->
phi == NULL )
337 if (waveform->
a->
data == NULL)
340 if (waveform->
f->
data == NULL)
343 if (waveform->
phi->
data == NULL)
356 waveform->
psi = ppnParams->
psi;
363 ppnParams->
tc = (double)(count-1) /
params->tSampling ;
364 ppnParams->
length = count;
375 if ( waveform->
h == NULL )
380 if ( waveform->
h->
data == NULL )
418 REAL8 amp,
m,
dt, t, v,
p, h1, h2, f, fu, fHigh, piM;
419 REAL8Vector dummy, values, dvalues, valuesNew, yt, dym, dyt;
437 REAL8 apFac = 0, acFac = 0;
440 func = paramsInit->
func;
444 if (
params->nStartPad < 0)
450 if (
params->tSampling <= 0)
482 apFac *= 1.0 + cosI*cosI;
487 if (
params->totalMass <= 0)
510 funcParams = (
void *) &in3;
521 fHigh = (fu < ak.
flso) ? fu : ak.
flso;
533 if (fHigh <= params->fLower)
542 *(values.
data+1) =
p;
561 else if (signalvec1) {
562 count =
params->nStartPad;
578 amp =
params->signalAmplitude * v*v;
580 *(signalvec1->
data + count) = (
REAL4) h1;
584 *(signalvec2->
data + count) = (
REAL4) h2;
596 f2a = pow (f2aFac * omega, 2./3.);
597 a->data[ice] = (
REAL4)(4.*apFac * f2a);
598 a->data[ico] = (
REAL4)(4.*acFac * f2a);
617 *(values.
data) = v = *(valuesNew.
data);
618 *(values.
data+1) =
p = *(valuesNew.
data+1);
620 t = (++count-
params->nStartPad) *
dt;
623 }
while (t < ak.
tn && f<fHigh);
REAL8 XLALInspiralPhasing1(REAL8 v, void *params)
int XLALInspiralParameterCalc(InspiralTemplate *params)
REAL4 LALInspiralHCrossPolarization(REAL8 phase, REAL8 v, InspiralTemplate *params)
void XLALRungeKutta4Free(rk4GSLIntegrator *integrator)
int XLALInspiralSetup(expnCoeffs *ak, InspiralTemplate *params)
int XLALInspiralInit(InspiralTemplate *params, InspiralInit *paramsInit)
void LALInspiralDerivatives(REAL8Vector *vec1, REAL8Vector *vec2, void *params)
REAL8 XLALInspiralVelocity(TofVIn *params)
int XLALInspiralChooseModel(expnFunc *func, expnCoeffs *ak, InspiralTemplate *params)
REAL4 LALInspiralHPlusPolarization(REAL8 phase, REAL8 v, InspiralTemplate *params)
rk4GSLIntegrator * XLALRungeKutta4Init(INT4 n, rk4In *input)
int XLALRungeKutta4(REAL8Vector *yout, rk4GSLIntegrator *integrator, void *params)
int XLALInspiralWave1ForInjection(CoherentGW *waveform, InspiralTemplate *params, PPNParamStruc *ppnParams)
int XLALInspiralWave1Templates(REAL4Vector *output1, REAL4Vector *output2, InspiralTemplate *params)
int XLALInspiralWave1(REAL4Vector *output, InspiralTemplate *params)
static int XLALInspiralWave1Engine(REAL4Vector *output1, REAL4Vector *output2, REAL4Vector *h, REAL4Vector *a, REAL4Vector *ff, REAL8Vector *phi, InspiralTemplate *params, InspiralInit *paramsInit)
REAL4VectorSequence * XLALCreateREAL4VectorSequence(UINT4 length, UINT4 veclen)
#define GENERATEPPNINSPIRALH_EFSTOP
Reached requested termination frequency.
void * XLALMalloc(size_t n)
const LALUnit lalStrainUnit
const LALUnit lalHertzUnit
const LALUnit lalDimensionlessUnit
REAL4Vector * XLALCreateREAL4Vector(UINT4 length)
void XLALDestroyREAL4Vector(REAL4Vector *vector)
REAL8Vector * XLALCreateREAL8Vector(UINT4 length)
void XLALDestroyREAL8Vector(REAL8Vector *vector)
int int int XLALPrintInfo(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
int int XLALPrintWarning(const char *fmt,...) _LAL_GCC_PRINTF_FORMAT_(1
#define XLAL_IS_REAL8_FAIL_NAN(val)
REAL4TimeVectorSeries * a
REAL4TimeVectorSeries * h
Structure used as an input to compute the derivatives needed in solving the phasing formula when the ...
Structures used to compute the phase of the signal from the ‘beginning’, when the veolcity parameter ...
The inspiral waveform parameter structure containing information about the waveform to be generated.
This structure stores the parameters for constructing a restricted post-Newtonian waveform.
const CHAR * termDescription
The termination code description (above)
INT4 termCode
The termination condition (above) that stopped computation of the waveform.
REAL4 dfdt
The maximum value of encountered over any timestep used in generating the waveform.
REAL4 phi
The phase at coalescence (or arbitrary reference phase for a post -Newtonian approximation),...
REAL4 psi
polarization angle (radians)
REAL4 fStart
The actual starting frequency of the waveform, in Hz (normally close but not identical to fStartIn)
SkyPosition position
location of source on sky
UINT4 length
The length of the generated waveform.
REAL4 fStop
The frequency at the termination of the waveform, in Hz.
REAL8 tc
The time from the start of the waveform to coalescence (in the point-mass approximation),...
REAL4 fStartIn
The requested starting frequency of the waveform, in Hz.
REAL8 deltaT
The requested sampling interval of the waveform, in s.
REAL4VectorSequence * data
expnCoeffsdEnergyFlux * coeffs
This structure contains various post-Newtonian and P-approximant expansion coefficients; the meanings...
Structure to hold the pointers to the generic functions defined above.
Structure containing steps and controls for the GSL Runge-Kutta solver.
Structure used as an input to Runge-Kutta solver.
char output[FILENAME_MAX]