LALSimulation  5.4.0.1-fe68b98
LALSimIMRNRHybSur3dq8.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 Vijay Varma
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  * \author Vijay Varma
22  *
23  * \file
24  *
25  * \brief C code for NRHybSur3dq8 waveform model, an NR-hybrid surrogate model
26  * for aligned-spin BBH.
27  *
28  * The binary data file is available at https://dcc.ligo.org/LIGO-T1900034.
29  * Get the lalsuite-extra repo or put the data into a location in your
30  * LAL_DATA_PATH.
31  *
32  * **Paper**: https://arxiv.org/abs/1812.07865
33  *
34  * **Parameter ranges**:
35  *
36  * q = [1, 10.1] and \f$\chi_{1z}, \chi_{2z}\f$ = [-0.81, 0.81]
37  * or
38  * q = [1, 9.1] and \f$\chi_{1z}, \chi_{2z}\f$ = [-0.91, 0.91]
39  *
40  * modes: \f$ \ell \leq 4, m \geq 0 \f$, and (5,5), but not (4,1) or (4,0).
41  * m<0 modes are determined from the m \f$\geq0\f$ modes.
42  *
43  * \f$M \geq 2.25 M_{\odot} \f$, for fstart=20Hz, for all modes.
44  *
45  * **Training parameter ranges**:
46  *
47  * q = [1, 8]
48  *
49  * \f$\chi_{1z}, \chi_{2z}\f$ = [-0.8, 0.8]
50  *
51  * But extrapolates reasonably to the above mass ratios and spins.
52  */
53 
54 
55 #ifndef _LALSIM_INSPIRAL_NRHybSur3dq8_H
56 #define _LALSIM_INSPIRAL_NRHybSur3dq8_H
57 #endif
58 
59 
60 #include <stdbool.h>
61 
62 #include <gsl/gsl_vector.h>
63 
64 #include <lal/Date.h>
65 #include <lal/Units.h>
66 #include <lal/LALSimIMR.h>
67 
69 
70 
71 
72 // https://dcc.ligo.org/LIGO-T1900034
73 static const char NRHybSur3dq8_DATAFILE[] = "NRHybSur3dq8_lal.h5";
74 
75 
76 //*************************************************************************/
77 //************************* function declarations *************************/
78 //*************************************************************************/
79 
80 static bool NRHybSur3dq8_IsSetup(void);
81 
82 static void NRHybSur3dq8_Init_LALDATA(void);
83 
85  gsl_vector* fit_params,
86  const REAL8 q,
87  const REAL8 chi1z,
88  const REAL8 chi2z
89 );
90 
91 
93  gsl_vector **phi_22,
94  EvaluatedDataPieces **evaluated_mode_dps,
96  const REAL8 deltaTOverM,
97  const REAL8 fMin,
98  const REAL8 fRef,
99  REAL8 q,
100  const REAL8 Mtot_sec,
101  REAL8 chi1z,
102  REAL8 chi2z,
103  LALValue* ModeArray,
104  LALDict* LALparams
105 );
int NRHybSur3dq8_fitParams(gsl_vector *fit_params, const REAL8 q, const REAL8 chi1z, const REAL8 chi2z)
Map from mass ratio and spins to surrogate fit parameters.
static bool NRHybSur3dq8_IsSetup(void)
int NRHybSur3dq8_core(gsl_vector **phi_22, EvaluatedDataPieces **evaluated_mode_dps, LIGOTimeGPS *epoch, const REAL8 deltaTOverM, const REAL8 fMin, const REAL8 fRef, REAL8 q, const REAL8 Mtot_sec, REAL8 chi1z, REAL8 chi2z, LALValue *ModeArray, LALDict *LALparams)
This is the core function of the NRHybSur3dq8 model.
static void NRHybSur3dq8_Init_LALDATA(void)
static const char NRHybSur3dq8_DATAFILE[]
Utilities needed for aligned-spin NR-hybrid surrogate models.
double REAL8
static const INT4 q
NRHybSur evaluated data for a single mode.
LIGOTimeGPS epoch
Definition: unicorn.c:20