Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALSimulation 6.2.0.1-5e288d3
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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)
26extern "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 */
45typedef struct
46tagLALSimInspiralWaveformCacheOld {
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
76typedef struct
77tagLALSimInspiralWaveformCache {
97 LALDict *LALpars;
101
102/** @} */
103
105
107
108int 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
110int 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
112int 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