- InputMasses:
This structure is one of the members of the InspiralTemplate
structure.
typedef enum {
m1Andm2,
totalMassAndEta,
totalMassAndMu,
t01,
t02,
t03,
t04,
psi0Andpsi3
} InputMasses;
A user can specify the parameters of a binary using any of the
following combination of masses:
- m1Andm2: component masses
- totalMassAndEta: total mass and symmetric mass ratio
- totalMassAndMu: total mass and reduced mass
- t01: unused; shouldn't be used.
- t02: chirptimes
and
- t03: chirptimes
and
, and
- t04: chirptimes
and
- psi0Andpsi3: BCV parameters
and
- Order:
Enum that tells which post-Newtonian order is being used.
typedef enum {
newtonian,
oneHalfPN,
onePN,
onePointFivePN,
twoPN,
twoPointFivePN,
threePN,
threePointFivePN
} Order;
- newtonian: Newtonain order, flux and enrgy both to the lowest order.
- oneHalfPN: same as before
- onePN: Both energy and flux to order
beyond the Newtonian order.
- onePointFivePN: Energy to order
and flux to order
- twoPN: Both energy and flux to order
- twoPointFivePN: Energy to order
and flux to order
- threePN: Both energy and flux to order
- threePointFivePN: Energy to order
and flux to order
In all cases, the gravitational wave phase (also frequency and time)
as an expansion of the gauge invariant parameter
is given up to
the order specified by flux. Note that there are certain undetermined
parameters at threePN and threePointFivePN. The waveform
generation codes use a specific
value of those parameters while generating the wave.
- Approximant: Enum that specifies the PN approximant to
be used in computing the waveform.
typedef enum {
TaylorT1,
TaylorT2,
TaylorT3,
TaylorF1,
TaylorF2,
PadeT1,
PadeF1,
EOB,
BCV,
SpinTaylorT3
} Approximant;
- TaylorT1: Time domain Taylor approximant in which
the energy and flux are both kept as Taylor expansions
and a first order ordinary differential equation is solved
for the GW phase as a function of
Outputs a time-domain wave.
- TaylorT2: Time domain Taylor approximant in which
the phase evolution
is obtained by iteratively
solving post-Newtonian expansions
and
Outputs a time-domain wave.
- TaylorT3: Time domain Taylor approximant in which
phase is explicitly given as a function of time. Outputs a time-domain wave.
- TaylorF1: The stationary phase approximation that
correctly represents, in the Fourier domain, the waveform given
by TaylorT1 approximant (see Ref. [5] for details). Outputs a frequency-domain wave.
- TaylorF2: The standard stationary phase approximation. Outputs a frequency-domain wave.
- PadeT1: Time-domain P-approximant. Outputs a time-domain wave.
- PadeF1: Frequency-domain P-approximant (not yet implemented).
- EOB: Effective one-body waveform Outputs a time-domain wave.
- BCV: Detection template family of Buonanno, Chen and
Vallisneri [10]. Outputs a frequency-domain wave.
- InspiralTemplate:
The inspiral waveform parameter structure containing information about the
waveform to be generated.
typedef struct
tagInspiralTemplate
{
INT4 ieta;
INT4 level;
INT4Vector *segmentIdVec;
INT4 number;
INT4 nStartPad;
INT4 nEndPad;
REAL4 minMatch;
REAL8 mass1;
REAL8 mass2;
REAL8 spin1[3];
REAL8 spin2[3];
REAL8 sourceTheta;
REAL8 sourcePhi;
REAL8 orbitTheta0;
REAL8 orbitPhi0;
REAL8 distance;
REAL8 inclination;
REAL8 eccentricity;
REAL8 totalMass;
REAL8 chirpMass;
REAL8 psi0;
REAL8 psi3;
REAL8 fendBCV;
REAL8 alpha;
REAL8 t0;
REAL8 t2;
REAL8 t3;
REAL8 t4;
REAL8 t5;
REAL8 tC;
REAL8 mu;
REAL8 eta;
REAL8 fLower;
REAL8 fCutoff;
REAL8 tSampling;
REAL8 startPhase;
REAL8 startTime;
REAL8 signalAmplitude;
REAL8 rInitial;
REAL8 vInitial;
REAL8 rFinal;
REAL8 vFinal;
REAL8 fFinal;
REAL8 rLightRing;
REAL8 OmegaS;
REAL8 Theta;
InputMasses massChoice;
Order order;
Approximant approximant;
struct tagInspiralTemplate *next;
struct tagInspiralTemplate *fine;
} InspiralTemplate;
- ieta: parameter that tells whether the symmetric mass ratio
should be set to zero in the PN expansions of GW flux and binding energy.
If ieta=0
will be set to zero, otherwise the appropriate
value of
from the given parameters will be used.
- level: Flag used in heirarical serached to indicate if this is a coarse or a fine template
- *segmentIdVec: Vector of segment that have been filtered against this template needed for the LDAS implementation of the inspiral search.
- number: Unique ID number for this template needed for the LDAS implementation of the inspiral search.
- minMatch: The minimal match specified by the user when the bank that contains this template was created.
- nStartPad: Number of leading elements in the template to be set to zero (input).
- nEndPad: Number of trailing bins to be set to zero, the
resulting waveform will have at least this many bins zero at the end, probably
more since we always deal with an integer power of 2 array (input).
- mass1: Mass of the primary in solar mass (input/output).
- mass2: Mass of the secondary in solar mass
(mass1 need not be larger than mass2 (input/output).
- spin1[3]: Spin vector of the primary (currently not in use)
- spin2[3]: Spin vector of the secondary (currently not in use)
- sourceTheta: Co-latitute in the direction to the source.
- sourcePhi: Azimuth angle in the direction to the source.
- orbitTheta0: Initial co-latitute of the orbit.
- orbitPhi0: Initial azimuth angle of the orbit.
- inclination: Inclination of the orbit (currently not in use)
- distance: Distance to the binary in seconds
- psi0: BCV parameter
- psi3: BCV parameter
- fendBCV: BCV cutoff frequency
- alpha: BCV amplitude correction factor
- eccentricity: initial eccentricity of the orbit (currently not in use)
- totalMass: total mass of the binary
in solar mass (input/output).
- eta: symmetric mass ratio
(input/output).
- chirpMass: chirp mass of the binary
in solar mass (output).
- t0: Newtonain chirp time in seconds (input/output).
- t2: first post-Newtonian chirp time in seconds (input/output).
- t3: 1.5 post-Newtonian chirp time in seconds (input/output).
- t4: second post-Newtonian chirp time in seconds (output).
- t5: 2.5 post-Newtonian chirp time in seconds (output).
- tC: total chirp time seconds (output).
- mu: reduced mass (in solar mass) (input/output)
- fLower: lower frequency cutoff of the detector in Hz (input)
- fCutoff: upper frequency cutoff in Hz to be used in generating the waveform.
If the last stable orbit frequency is smaller than the upper cutoff it will be used
in terminating the waveform instead of fCutoff (input).
- tSampling: Sampling rate in Hz (input)
- startPhase: starting phase of the waveform in radians (input)
- startTime: starting time of the waveform (in sec); if different from zero, the
waveform will start with an instantaneous frequency different from fLower and reach
fLower at time (approximately) zero (input, not used in Stationary phase approximation)
- signalAmplitude: dimensionless amplitude of the signal (input, currently unused.)
- rInitial: initial radial separation of the two, in units of total mass
bodies (used only in EOB waveforms) (output)
- vInitial: initial velocity parameter, in units of the speed of light (output)
- rFinal: final 'separation' between the bodies, in units of total mass (output)
- vFinal: final velocity parameter, in units of the speed of light (output)
- fFinal: final frequency reached, in units of Hz (output)
- rLightRing: radial coordinate at the light ring, in units of total mass (output)
- OmegaS: The 3PN (unknown) parameter; calculated to be equal to zero
by Damour, Jaranowski and Schaffer (input).
- Theta: The 3PN unknown flux parameter; likely to be around unity;
most waveform generation routines take theta to be zero. Robustness of the EOB waveform
has been demonstrated for
Theta
(input)
- massChoice: The pair of (mass) parameters given (see structure
defining this member for more details) (input).
- order: Post-Newtonain order to be used in generating the wave (input).
- approximant: Post-Newtonain approximant to be used in generating the wave (input).
- tagInspiralTemplate *next: Linked list to the next coarse bank template
(currently not filled by inspiral or bank codes)
- tagInspiralTemplate *fine: Linked list to the next fine bank template
(currently not filled by inspiral or bank codes)
- InspiralACSTParams:
This structure is needed to solve the differential equation
giving the evolution of the orbital angular momentum and the
spin angular momenta in the case of spinning black hole binaries.
typedef struct
tagInspiralACSTParams
{
REAL8 v;
REAL8 magS1;
REAL8 magS2;
REAL8 NCap[3];
REAL8 spin1[3];
REAL8 M;
REAL8 fourM1Plus;
REAL8 fourM2Plus;
REAL8 oneBy2Mcube;
REAL8 threeBy2Mcube;
REAL8 thirtytwoBy5etc;
} InspiralACSTParams;
- v: parameter of 'integration': v=sqrt(M/r)
- magS1: The constant spin magnitude of the primary.
- magS2: The constant spin magnitude of the secondary.
- NCap[3]: Source direction (unit vector) in detector coordinate system.
- spin1[3]: Spin of the larger body.
- M: Total mass of the binary (in seconds).
- fourM1Plus: =
(all masses expressed in seconds).
- fourM2Plus: =
(all masses expressed in seconds).
- oneBy2Mcube: =
- threeBy2Mcube: =
- thirtytwoBy5etc:=
- EtaTau02In, EtaTau04In:
These are the input structures needed to solve for the mass
ratio
given the chirptimes
or
typedef struct
tagEtaTau02In
{
REAL8 t2;
REAL8 A2;
REAL8 B2;
} EtaTau02In;
typedef struct
tagEtaTau04In
{
REAL8 t4;
REAL8 A4;
REAL8 B4;
REAL8 C4;
} EtaTau04In;
Here, t2
A2
and
B2
,
where
Similarly, t4
A4
B4
and C4
where
where
and
- InspiralToffInput:
This is a structure needed by the inner workings of the inspiral wave generation code.
typedef struct
tagInspiralToffInput
{
REAL8 tN;
REAL8 t2;
REAL8 t3;
REAL8 t4;
REAL8 t5;
REAL8 t6;
REAL8 t7;
REAL8 tl6;
REAL8 piM;
REAL8 tc;
REAL8 t;
} InspiralToffInput;
- expnCoeffs:
This structure contains various post-Newtonian and P-approximant expansion
coefficients; the meanings of the coefficients is indicated as comments
before each list.
typedef struct
tagexpnCoeffs {
int ieta;
/* coefficients in the Taylor expansion of new energy function*/
REAL8 eTaN, eTa1, eTa2, eTa3;
/* coefficients in the Pade expression of new energy function*/
REAL8 ePaN, ePa1, ePa2, ePa3;
/* coefficients in the Taylor expansion of usual energy function*/
REAL8 ETaN, ETa1, ETa2, ETa3;
/* coefficients in the Taylor expansion of the derivative of the
usual energy function*/
REAL8 dETaN, dETa1, dETa2, dETa3;
/* Taylor expansion coefficients of energy flux*/
REAL8 FTaN, FTa1, FTa2, FTa3, FTa4, FTa5, FTa6, FTa7, FTl6;
/* Taylor expansion coefficients of factored flux*/
REAL8 fTaN, fTa1, fTa2, fTa3, fTa4, fTa5, fTa6, fTa7;
/* Coefficients of the corresponding P-approximant*/
REAL8 fPaN, fPa1, fPa2, fPa3, fPa4, fPa5, fPa6, fPa7;
/* Taylor expansion coefficents in t(v)*/
REAL8 tvaN, tva2, tva3, tva4, tva5, tva6, tva7, tvl6;
/* Taylor expansion coefficents in phi(v)*/
REAL8 pvaN, pva2, pva3, pva4, pva5, pva6, pva7, pvl6;
/* Taylor expansion coefficents in phi(t)*/
REAL8 ptaN, pta2, pta3, pta4, pta5, pta6, pta7, ptl6;
/* Taylor expansion coefficents in f(t)*/
REAL8 ftaN, fta2, fta3, fta4, fta5, fta6, fta7, ftl6;
/* Taylor expansion coefficents in psi(f) in the Fourier phase*/
REAL8 pfaN, pfa2, pfa3, pfa4, pfa5, pfa6, pfa7, pfl5;
/* sampling rate and interval*/
REAL8 samplingrate, samplinginterval;
/* symmetric mass ratio, total mass, component masses*/
REAL8 eta, totalmass, m1, m2;
/* unknown 3PN parameters, euler constant*/
REAL8 lambda, theta, EulerC, omegaS;
/* initial and final values of frequency, time, velocity; lso
values of velocity and frequency; final phase.*/
REAL8 f0, fn, t0, tn, v0, vn, vf, vlso, flso, phiC;
/* last stable orbit and pole defined by various Taylor and P-approximants*/
REAL8 vlsoT0, vlsoT2, vlsoT4, vlsoT6;
REAL8 vlsoP0, vlsoP2, vlsoP4, vlsoP6;
REAL8 vpoleP4, vpoleP6;
} expnCoeffs;
- Energy, flux, phase, time and frequency functions: The following
functions are generic function definitions that will be used in
template generation. The function LALInspiralChooseModel,
which is called by wave generation interface code, points these
functions to the appropriate specific functions depending on the
choices made by the user.
typedef REAL8 EnergyFunction(
REAL8 v,
expnCoeffs *ak);
typedef REAL8 FluxFunction(
REAL8 v,
expnCoeffs *ak);
typedef void (TestFunction)(
REAL8Vector *vector1,
REAL8Vector *vector2,
void *params);
typedef void (InspiralPhasing2)(
LALStatus *status,
REAL8 *phase,
REAL8 v,
expnCoeffs *ak);
typedef void (InspiralPhasing3)(
LALStatus *status,
REAL8 *f,
REAL8 td,
expnCoeffs *ak);
typedef void (InspiralFrequency3)(
LALStatus *status,
REAL8 *f,
REAL8 td,
expnCoeffs *ak);
typedef void (InspiralTiming2) (
LALStatus *status,
REAL8 *toff,
REAL8 f,
void *params);
- expnFunc: Structure to hold the pointers to the generic
functions defined above.
typedef struct
tagexpnFunc
{
EnergyFunction *dEnergy;
FluxFunction *flux;
InspiralTiming2 *timing2;
InspiralPhasing2 *phasing2;
InspiralPhasing3 *phasing3;
InspiralFrequency3 *frequency3;
} expnFunc;
- TofVIn and TofVIntegrandIn: Structures needed to
compute the time elapsed
from/to the starting epoch of the waveform when the velocity
parameter was
to/from the current epoch when velocity
parameter is
typedef struct
tagTofVIn
{
REAL8 t;
REAL8 v0;
REAL8 t0;
REAL8 vlso;
REAL8 totalmass;
EnergyFunction *dEnergy;
FluxFunction *flux;
expnCoeffs *coeffs;
} TofVIn;
typedef struct
tagTofVIntegrandIn
{
EnergyFunction *dEnergy;
FluxFunction *flux;
expnCoeffs *coeffs;
} TofVIntegrandIn;
- InspiralPhaseIn and PhiofVIntegrandIn: Structures used
to compute the phase of the signal from the `beginning', when the
veolcity parameter is
to a time when the velocity parameter
has evolved to a user input value
typedef struct
tagInspiralPhaseIn
{
REAL8 v0;
REAL8 phi0;
EnergyFunction *dEnergy;
FluxFunction *flux;
expnCoeffs *coeffs;
} InspiralPhaseIn;
typedef struct
tagPhiofVIntegrandIn
{
EnergyFunction *dEnergy;
FluxFunction *flux;
expnCoeffs *coeffs;
} PhiofVIntegrandIn;
- InspiralDerivativesIn: Structure used as an input to compute
the derivatives needed in solving the phasing formula when the
approximant is TaylorT1, TaylorP1 or EOB.
typedef struct
tagInspiralDerivativesIn
{
REAL8 totalmass;
EnergyFunction *dEnergy;
FluxFunction *flux;
expnCoeffs *coeffs;
} InspiralDerivativesIn;
- rk4In: Structure used as an input to Runge-Kutta solver.
typedef struct
tagrk4In
{
TestFunction *function;
REAL8 x;
REAL8Vector *y;
REAL8Vector *dydx;
REAL8Vector *yt;
REAL8Vector *dym;
REAL8Vector *dyt;
REAL8 h;
INT4 n;
} rk4In;