LALSimulation  5.4.0.1-fe68b98
LALSimInspiralWaveformCache.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Evan Ochsner and Will M. Farr
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 #ifndef _LALSIMINSPIRALWAVEFORMCACHE_H
21 #define _LALSIMINSPIRALWAVEFORMCACHE_H
22 
23 #include <lal/LALSimInspiral.h>
24 
25 #if defined(__cplusplus)
26 extern "C" {
27 #elif 0
28 } /* so that editors will match preceding brace */
29 #endif
30 
31 /**
32  * @defgroup LALSimInspiralWaveformCache_h Header LALSimInspiralWaveformCache.h
33  * @ingroup lalsimulation_inspiral
34  *
35  * @brief Routines for saving previously-computed waveforms for reuse.
36  *
37  * @{
38  */
39 
40 /**
41  * Stores previously-computed waveforms and parameters to take
42  * advantage of approximant- and parameter-specific opportunities for
43  * accelerating waveform computation.
44  */
45 typedef struct
46 tagLALSimInspiralWaveformCacheOld {
68  LALSimInspiralWaveformFlags *waveFlags;
69  LALSimInspiralTestGRParam *nonGRparams; /* Non-NULL pointers here are not allowed b/c it's impossible to know which fields are present */
71  int phaseO;
75 
76 typedef struct
77 tagLALSimInspiralWaveformCache {
97  LALDict *LALpars;
101 
102 /** @} */
103 
105 
107 
108 int XLALSimInspiralChooseTDWaveformFromCache(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 f_min, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, LALSimInspiralWaveformCache *cache);
109 
110 int XLALSimInspiralChooseFDWaveformFromCache(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, LALSimInspiralWaveformCache *cache, REAL8Sequence *frequencies);
111 
112 int XLALSimInspiralChooseFDWaveformSequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, REAL8Sequence *frequencies);
113 
114 #if 0
115 { /* so that editors will match succeeding brace */
116 #elif defined(__cplusplus)
117 }
118 #endif
119 
120 #endif /* _LALSIMINSPIRAL_H */
int XLALSimInspiralChooseFDWaveformSequence(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, REAL8Sequence *frequencies)
Wrapper similar to XLALSimInspiralChooseFDWaveform() for waveforms to be generated a specific freqenc...
double i
Definition: bh_ringdown.c:118
double REAL8
Approximant
Enum that specifies the PN approximant to be used in computing the waveform.
LALSimInspiralWaveformCache * XLALCreateSimInspiralWaveformCache(void)
Construct and initialize a waveform cache.
int XLALSimInspiralChooseTDWaveformFromCache(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, REAL8 phiRef, REAL8 deltaT, REAL8 m1, REAL8 m2, REAL8 s1x, REAL8 s1y, REAL8 s1z, REAL8 s2x, REAL8 s2y, REAL8 s2z, REAL8 f_min, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, LALSimInspiralWaveformCache *cache)
Chooses between different approximants when requesting a waveform to be generated Returns the wavefor...
void XLALDestroySimInspiralWaveformCache(LALSimInspiralWaveformCache *cache)
Destroy a waveform cache.
int XLALSimInspiralChooseFDWaveformFromCache(COMPLEX16FrequencySeries **hptilde, COMPLEX16FrequencySeries **hctilde, REAL8 phiRef, REAL8 deltaF, REAL8 m1, REAL8 m2, REAL8 S1x, REAL8 S1y, REAL8 S1z, REAL8 S2x, REAL8 S2y, REAL8 S2z, REAL8 f_min, REAL8 f_max, REAL8 f_ref, REAL8 r, REAL8 i, LALDict *LALpars, Approximant approximant, LALSimInspiralWaveformCache *cache, REAL8Sequence *frequencies)
Chooses between different approximants when requesting a waveform to be generated Returns the wavefor...
static const INT4 r
Linked list of any number of parameters for testing GR.
COMPLEX16FrequencySeries * hctilde
COMPLEX16FrequencySeries * hptilde
Stores previously-computed waveforms and parameters to take advantage of approximant- and parameter-s...
LALSimInspiralWaveformFlags * waveFlags
LALSimInspiralTestGRParam * nonGRparams
double f_min
Definition: unicorn.c:22
double deltaT
Definition: unicorn.c:24
double f_max
Definition: unicorn.c:23