LALInspiral
5.0.3.1-eeff03c
LALSuite
LAL
LALFrame
LALMetaIO
LALSimulation
LALBurst
LALInspiral
LALInference
LALPulsar
LALApps
LALEOBNRv2Waveform.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2010 Craig Robinson
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; either version 2 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with with program; see the file COPYING. If not, write to the
16
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17
* MA 02110-1301 USA
18
*/
19
20
21
#include <lal/LALInspiral.h>
22
23
24
#ifndef _LALEOBNR_H
25
#define _LALEOBNR_H
26
27
#ifdef __cplusplus
28
extern
"C"
{
29
#endif
30
31
#ifdef __GNUC__
32
#define UNUSED __attribute__ ((unused))
33
#else
34
#define UNUSED
35
#endif
36
37
#define LALEOB_MAX_MULTIPOLE 8
38
39
/**
40
* \defgroup LALEOBNRv2Waveform_h Header LALEOBNRv2Waveform.h
41
* \ingroup lalinspiral_UNCLASSIFIED
42
* \author Craig Robinson
43
*
44
* \brief %Header containing most of the structures and prototypes which are
45
* used in the generation of the EOBNRv2 waveform.
46
*/
47
/** @{ */
48
49
/**
50
* Structure containing the coefficients for EOBNRv2 A potential function.
51
* The elements in the structure are labelled as follows:
52
* aN, where a is denotes whether the parameter is in the numerator (n)
53
* or denominator (d); and N is the power of r which will multiply this
54
* coefficient. For example, the coefficient of r^5 in the numerator
55
* will be called n5.
56
*/
57
typedef
struct
58
tagEOBACoefficients
59
{
60
REAL8
n4;
61
REAL8
n5;
62
REAL8
d0;
63
REAL8
d1;
64
REAL8
d2;
65
REAL8
d3;
66
REAL8
d4;
67
REAL8
d5;
68
}
69
EOBACoefficients
;
70
71
/**
72
* Structure containing the coefficients for calculating the factorized
73
* waveform. The coefficients are precomputed in the function
74
* XLALCalcFacWaveformCoefficients()
75
*/
76
typedef
struct
77
tagFacWaveformCoeffs
78
{
79
REAL8
delta22vh3;
80
REAL8
delta22vh6;
81
REAL8
delta22vh8;
82
REAL8
delta22vh9;
83
REAL8
delta22v5;
84
85
REAL8
rho22v2;
86
REAL8
rho22v3;
87
REAL8
rho22v4;
88
REAL8
rho22v5;
89
REAL8
rho22v6;
90
REAL8
rho22v6l;
91
REAL8
rho22v7;
92
REAL8
rho22v8;
93
REAL8
rho22v8l;
94
REAL8
rho22v10;
95
REAL8
rho22v10l;
96
97
REAL8
delta21vh3;
98
REAL8
delta21vh6;
99
REAL8
delta21vh7;
100
REAL8
delta21vh9;
101
REAL8
delta21v5;
102
REAL8
delta21v7;
103
104
REAL8
rho21v1;
105
REAL8
rho21v2;
106
REAL8
rho21v3;
107
REAL8
rho21v4;
108
REAL8
rho21v5;
109
REAL8
rho21v6;
110
REAL8
rho21v6l;
111
REAL8
rho21v7;
112
REAL8
rho21v7l;
113
REAL8
rho21v8;
114
REAL8
rho21v8l;
115
REAL8
rho21v10;
116
REAL8
rho21v10l;
117
118
REAL8
delta33vh3;
119
REAL8
delta33vh6;
120
REAL8
delta33vh9;
121
REAL8
delta33v5;
122
REAL8
delta33v7;
123
124
REAL8
rho33v2;
125
REAL8
rho33v3;
126
REAL8
rho33v4;
127
REAL8
rho33v5;
128
REAL8
rho33v6;
129
REAL8
rho33v6l;
130
REAL8
rho33v7;
131
REAL8
rho33v8;
132
REAL8
rho33v8l;
133
134
REAL8
delta32vh3;
135
REAL8
delta32vh4;
136
REAL8
delta32vh6;
137
REAL8
delta32vh9;
138
139
REAL8
rho32v;
140
REAL8
rho32v2;
141
REAL8
rho32v3;
142
REAL8
rho32v4;
143
REAL8
rho32v5;
144
REAL8
rho32v6;
145
REAL8
rho32v6l;
146
REAL8
rho32v8;
147
REAL8
rho32v8l;
148
149
REAL8
delta31vh3;
150
REAL8
delta31vh6;
151
REAL8
delta31vh7;
152
REAL8
delta31vh9;
153
REAL8
delta31v5;
154
155
REAL8
rho31v2;
156
REAL8
rho31v3;
157
REAL8
rho31v4;
158
REAL8
rho31v5;
159
REAL8
rho31v6;
160
REAL8
rho31v6l;
161
REAL8
rho31v7;
162
REAL8
rho31v8;
163
REAL8
rho31v8l;
164
165
REAL8
delta44vh3;
166
REAL8
delta44vh6;
167
REAL8
delta44v5;
168
169
REAL8
rho44v2;
170
REAL8
rho44v3;
171
REAL8
rho44v4;
172
REAL8
rho44v5;
173
REAL8
rho44v6;
174
REAL8
rho44v6l;
175
176
REAL8
delta43vh3;
177
REAL8
delta43vh4;
178
REAL8
delta43vh6;
179
180
REAL8
rho43v;
181
REAL8
rho43v2;
182
REAL8
rho43v4;
183
REAL8
rho43v5;
184
REAL8
rho43v6;
185
REAL8
rho43v6l;
186
187
REAL8
delta42vh3;
188
REAL8
delta42vh6;
189
190
REAL8
rho42v2;
191
REAL8
rho42v3;
192
REAL8
rho42v4;
193
REAL8
rho42v5;
194
REAL8
rho42v6;
195
REAL8
rho42v6l;
196
197
REAL8
delta41vh3;
198
REAL8
delta41vh4;
199
REAL8
delta41vh6;
200
201
REAL8
rho41v;
202
REAL8
rho41v2;
203
REAL8
rho41v4;
204
REAL8
rho41v5;
205
REAL8
rho41v6;
206
REAL8
rho41v6l;
207
208
REAL8
delta55vh3;
209
REAL8
delta55v5;
210
REAL8
rho55v2;
211
REAL8
rho55v3;
212
REAL8
rho55v4;
213
REAL8
rho55v5;
214
REAL8
rho55v6;
215
216
REAL8
delta54vh3;
217
REAL8
delta54vh4;
218
REAL8
rho54v2;
219
REAL8
rho54v3;
220
REAL8
rho54v4;
221
222
REAL8
delta53vh3;
223
REAL8
rho53v2;
224
REAL8
rho53v3;
225
REAL8
rho53v4;
226
REAL8
rho53v5;
227
228
REAL8
delta52vh3;
229
REAL8
delta52vh4;
230
REAL8
rho52v2;
231
REAL8
rho52v3;
232
REAL8
rho52v4;
233
234
REAL8
delta51vh3;
235
REAL8
rho51v2;
236
REAL8
rho51v3;
237
REAL8
rho51v4;
238
REAL8
rho51v5;
239
240
REAL8
delta66vh3;
241
REAL8
rho66v2;
242
REAL8
rho66v3;
243
REAL8
rho66v4;
244
245
REAL8
delta65vh3;
246
REAL8
rho65v2;
247
REAL8
rho65v3;
248
249
REAL8
delta64vh3;
250
REAL8
rho64v2;
251
REAL8
rho64v3;
252
REAL8
rho64v4;
253
254
REAL8
delta63vh3;
255
REAL8
rho63v2;
256
REAL8
rho63v3;
257
258
REAL8
delta62vh3;
259
REAL8
rho62v2;
260
REAL8
rho62v3;
261
REAL8
rho62v4;
262
263
REAL8
delta61vh3;
264
REAL8
rho61v2;
265
REAL8
rho61v3;
266
267
REAL8
delta77vh3;
268
REAL8
rho77v2;
269
REAL8
rho77v3;
270
271
REAL8
rho76v2;
272
273
REAL8
delta75vh3;
274
REAL8
rho75v2;
275
REAL8
rho75v3;
276
277
REAL8
rho74v2;
278
279
REAL8
delta73vh3;
280
REAL8
rho73v2;
281
REAL8
rho73v3;
282
283
REAL8
rho72v2;
284
285
REAL8
delta71vh3;
286
REAL8
rho71v2;
287
REAL8
rho71v3;
288
289
REAL8
rho88v2;
290
REAL8
rho87v2;
291
REAL8
rho86v2;
292
REAL8
rho85v2;
293
REAL8
rho84v2;
294
REAL8
rho83v2;
295
REAL8
rho82v2;
296
REAL8
rho81v2;
297
}
298
FacWaveformCoeffs
;
299
300
/**
301
* Structure containing all the terms of the Newtonian multipole which
302
* are constant over the course of the evolution, and can therefore be
303
* pre-computed. They are stored in a two-dimensional array, which is
304
* indexed as values[l][m]. Since m has to be <= l, this structure
305
* is larger than it needs to be; but it makes the coding a bit neater...
306
*/
307
typedef
308
struct
tagNewtonMultipolePrefixes
309
{
310
COMPLEX16
values[
LALEOB_MAX_MULTIPOLE
+1][
LALEOB_MAX_MULTIPOLE
+1];
311
}
312
NewtonMultipolePrefixes
;
313
314
/**
315
* Structure containing all the parameters needed for the EOB waveform.
316
* It contains eta, the pre-computed parameters for the A potential function,
317
* and the pre-computed parameters for the factorized waveform
318
*/
319
typedef
320
struct
tagEOBParams
321
{
322
REAL8
eta;
323
REAL8
omega;
324
REAL8
m1;
325
REAL8
m2;
326
EOBACoefficients
*aCoeffs;
327
FacWaveformCoeffs
*hCoeffs;
328
EOBNonQCCoeffs
*nqcCoeffs;
329
NewtonMultipolePrefixes
*prefixes;
330
}
331
EOBParams
;
332
333
334
/*---------------------------------------------------------------- */
335
/* Functions used in calculating the Newtonian multipolar waveform */
336
/* Defined in Damour et al Phys.Rev.D79:064004,2009 */
337
int
338
XLALCalculateNewtonianMultipole
(
339
COMPLEX16
*multipole,
340
REAL8
x,
341
REAL8
r
,
342
REAL8
phi,
343
UINT4
l,
344
INT4
m
,
345
EOBParams
*
params
346
);
347
348
REAL8
349
XLALInspiralFactorizedFlux
(
350
REAL8Vector
*values,
351
const
REAL8
omega,
352
EOBParams
*ak,
353
const
INT4
lMax
354
);
355
356
INT4
357
XLALGetFactorizedWaveform
(
358
COMPLEX16
*hlm,
359
REAL8Vector
*values,
360
const
REAL8
v,
361
const
INT4
l,
362
const
INT4
m
,
363
EOBParams
*
params
364
);
365
366
int
XLALGetCalibratedNQCCoeffs
(
EOBNonQCCoeffs
*coeffs,
367
INT4
l,
368
INT4
m
,
369
REAL8
eta
370
);
371
372
int
XLALEOBNonQCCorrection
(
373
COMPLEX16
* _LAL_RESTRICT_ nqc,
374
REAL8Vector
* _LAL_RESTRICT_ values,
375
const
REAL8
omega,
376
EOBNonQCCoeffs
* _LAL_RESTRICT_ coeffs
377
);
378
379
int
XLALCalculateNQCCoefficients
(
380
REAL8Vector
* _LAL_RESTRICT_ amplitude,
381
REAL8Vector
* _LAL_RESTRICT_ phase,
382
REAL8Vector
* _LAL_RESTRICT_ q1,
383
REAL8Vector
* _LAL_RESTRICT_ q2,
384
REAL8Vector
* _LAL_RESTRICT_ q3,
385
REAL8Vector
* _LAL_RESTRICT_ p1,
386
REAL8Vector
* _LAL_RESTRICT_ p2,
387
INT4
l,
388
INT4
m
,
389
REAL8
timePeak,
390
REAL8
deltaT,
391
REAL8
eta,
392
EOBNonQCCoeffs
* _LAL_RESTRICT_ coeffs );
393
394
REAL8
XLALGetNRPeakDeltaT
(
INT4
l,
INT4
m
,
REAL8
eta );
395
396
int
XLALCalcFacWaveformCoefficients
(
397
FacWaveformCoeffs
*
const
coeffs,
398
const
REAL8
eta
399
);
400
401
int
XLALModifyFacWaveformCoefficients
(
402
FacWaveformCoeffs
*
const
coeffs,
403
const
REAL8
eta
404
);
405
406
int
XLALComputeNewtonMultipolePrefixes
(
407
NewtonMultipolePrefixes
*prefix,
408
const
REAL8
m1,
409
const
REAL8
m2 );
410
411
/** @} */
/* end:LALEOBNRv2Waveform_h */
412
413
#ifdef __cplusplus
414
}
415
#endif
416
417
#endif
/* _LALEOBNR_H */
LALEOB_MAX_MULTIPOLE
#define LALEOB_MAX_MULTIPOLE
Definition:
LALEOBNRv2Waveform.h:37
COMPLEX16
double complex COMPLEX16
REAL8
double REAL8
UINT4
uint32_t UINT4
INT4
int32_t INT4
XLALModifyFacWaveformCoefficients
int XLALModifyFacWaveformCoefficients(FacWaveformCoeffs *const coeffs, const REAL8 eta)
Definition:
LALEOBGetFactorizedWaveform.c:445
XLALGetNRPeakDeltaT
REAL8 XLALGetNRPeakDeltaT(INT4 l, INT4 m, REAL8 eta)
More recent versions of the EOB model, such as EOBNR_v2, utilise a non-quasicircular correction to br...
Definition:
LALEOBNonQCCorrection.c:44
XLALCalculateNewtonianMultipole
int XLALCalculateNewtonianMultipole(COMPLEX16 *multipole, REAL8 x, REAL8 r, REAL8 phi, UINT4 l, INT4 m, EOBParams *params)
Definition:
LALNewtonianMultipole.c:81
XLALCalculateNQCCoefficients
int XLALCalculateNQCCoefficients(REAL8Vector *_LAL_RESTRICT_ amplitude, REAL8Vector *_LAL_RESTRICT_ phase, REAL8Vector *_LAL_RESTRICT_ q1, REAL8Vector *_LAL_RESTRICT_ q2, REAL8Vector *_LAL_RESTRICT_ q3, REAL8Vector *_LAL_RESTRICT_ p1, REAL8Vector *_LAL_RESTRICT_ p2, INT4 l, INT4 m, REAL8 timePeak, REAL8 deltaT, REAL8 eta, EOBNonQCCoeffs *_LAL_RESTRICT_ coeffs)
XLALGetCalibratedNQCCoeffs
int XLALGetCalibratedNQCCoeffs(EOBNonQCCoeffs *coeffs, INT4 l, INT4 m, REAL8 eta)
For the 2,2 mode, there are fits available for the NQC coefficients.
Definition:
LALEOBNonQCCorrection.c:325
XLALCalcFacWaveformCoefficients
int XLALCalcFacWaveformCoefficients(FacWaveformCoeffs *const coeffs, const REAL8 eta)
The functions contained within this file pre-compute the various coefficients which are required for ...
Definition:
LALEOBGetFactorizedWaveform.c:36
XLALInspiralFactorizedFlux
REAL8 XLALInspiralFactorizedFlux(REAL8Vector *values, const REAL8 omega, EOBParams *ak, const INT4 lMax)
Function to compute the factorized flux as uses in the new EOBNR_PP model. Flux function given by Phy...
Definition:
LALFactorizedFlux.c:32
XLALComputeNewtonMultipolePrefixes
int XLALComputeNewtonMultipolePrefixes(NewtonMultipolePrefixes *prefix, const REAL8 m1, const REAL8 m2)
Definition:
LALNewtonianMultipole.c:59
XLALEOBNonQCCorrection
int XLALEOBNonQCCorrection(COMPLEX16 *_LAL_RESTRICT_ nqc, REAL8Vector *_LAL_RESTRICT_ values, const REAL8 omega, EOBNonQCCoeffs *_LAL_RESTRICT_ coeffs)
XLALGetFactorizedWaveform
INT4 XLALGetFactorizedWaveform(COMPLEX16 *hlm, REAL8Vector *values, const REAL8 v, const INT4 l, const INT4 m, EOBParams *params)
r
static const INT4 r
m
static const INT4 m
EOBACoefficients
EOBNonQCCoeffs
EOBParams
FacWaveformCoeffs
NewtonMultipolePrefixes
REAL8Vector
params
lib
LALEOBNRv2Waveform.h
Generated on Sun Dec 14 2025 05:41:03 for LALInspiral by
1.9.4