LALSimulation  5.4.0.1-fe68b98
LALSimIMRPhenomX_PNR_alpha.h
Go to the documentation of this file.
1 #ifndef _LALSIM_IMR_PHENOMX_PNR_ALPHA_H
2 #define _LALSIM_IMR_PHENOMX_PNR_ALPHA_H
3 /*
4  * Copyright (C) 2022 Cardiff University
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with with program; see the file COPYING. If not, write to the
18  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19  * MA 02110-1301 USA
20  */
21 
22 /**
23  * \author Eleanor Hamilton, Sebastian Khan, Jonathan E. Thompson
24  *
25  */
26 
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
32  typedef struct tagIMRPhenomX_PNR_alpha_parameters
33  {
34  // alpha Ansatz terms
35  REAL8 A1; /**< MR Ansatz coefficient */
36  REAL8 A2; /**< MR Ansatz coefficient */
37  REAL8 A3; /**< MR Ansatz coefficient */
38  REAL8 A4; /**< MR Ansatz coefficient */
39 
40  // connection values
41  REAL8 Mf_alpha_lower; /**< connection frequency */
42  REAL8 Mf_alpha_upper; /**< connection frequency */
43  REAL8 alpha_lower; /**< alpha at connection frequency */
44  REAL8 alpha_upper; /**< alpha at connection frequency */
45  REAL8 derivative_alpha_lower; /**< derivative at connection frequency */
46  REAL8 derivative_alpha_upper; /**< derivative at connection frequency */
47  REAL8 alpha_interp_0; /**< intermediate coefficient */
48  REAL8 alpha_interp_1; /**< intermediate coefficient */
49  REAL8 alpha_interp_2; /**< intermediate coefficient */
50  REAL8 alpha_interp_3; /**< intermediate coefficient */
51  REAL8 alpha_MR_offset; /**< continuity offset between intermediate and MR */
53 
55  REAL8 Mf,
56  const IMRPhenomX_PNR_alpha_parameters *alphaParams,
59 
61  REAL8 Mf,
62  const IMRPhenomX_PNR_alpha_parameters *alphaParams,
65 
67  REAL8 Mf,
70 
75 
76  REAL8 IMRPhenomX_PNR_alpha_interpolation_0(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2);
77  REAL8 IMRPhenomX_PNR_alpha_interpolation_1(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2);
78  REAL8 IMRPhenomX_PNR_alpha_interpolation_2(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2);
79  REAL8 IMRPhenomX_PNR_alpha_interpolation_3(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2);
80 
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 
92 #endif /*_LALSIM_IMR_PHENOMX_PNR_ALPHA_H*/
REAL8 IMRPhenomX_PNR_MR_alpha_expression(REAL8 Mf, const IMRPhenomX_PNR_alpha_parameters *alphaParams)
This function evaluates Eq.
int IMRPhenomX_PNR_precompute_alpha_coefficients(IMRPhenomX_PNR_alpha_parameters *alphaParams, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec)
This function evaluates the coefficients outlined in Sec 7A of arXiv:2107.08876 for alpha.
REAL8 IMRPhenomX_PNR_alpha_interpolation_0(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2)
The following four functions are used to compute the C1 interpolation function used to connect the in...
REAL8 IMRPhenomX_PNR_intermediate_alpha_expression(REAL8 Mf, const IMRPhenomX_PNR_alpha_parameters *alphaParams)
This function evaluates Eq.
REAL8 IMRPhenomX_PNR_GetPNAlphaAtFreq(REAL8 Mf, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec)
Here we write a wrapper function to produce either MSA or NNLO alpha for use in IMRPhenomX_PNR_Genera...
REAL8 IMRPhenomX_PNR_GeneratePNRAlphaAtMf(REAL8 Mf, const IMRPhenomX_PNR_alpha_parameters *alphaParams, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec)
This function evaluates Eq.
REAL8 IMRPhenomX_PNR_alpha_interpolation_1(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2)
REAL8 IMRPhenomX_PNR_alpha_interpolation_3(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2)
int IMRPhenomX_PNR_alpha_connection_parameters(IMRPhenomX_PNR_alpha_parameters *alphaParams, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec)
This function evaluates the connection frequencies Mf1 and Mf2 detailed in Sec.
REAL8 IMRPhenomX_PNR_GenerateMergedPNRAlphaAtMf(REAL8 Mf, const IMRPhenomX_PNR_alpha_parameters *alphaParams, IMRPhenomXWaveformStruct *pWF, IMRPhenomXPrecessionStruct *pPrec)
This function generates the blended PNR and PN expressions for alpha for the transition region of par...
REAL8 IMRPhenomX_PNR_alpha_interpolation_2(REAL8 Mf1, REAL8 Mf2, REAL8 alpha1, REAL8 alpha2, REAL8 dalpha1, REAL8 dalpha2)
double REAL8
REAL8 derivative_alpha_upper
derivative at connection frequency
REAL8 derivative_alpha_lower
derivative at connection frequency
REAL8 alpha_interp_2
intermediate coefficient
REAL8 alpha_lower
alpha at connection frequency
REAL8 alpha_MR_offset
continuity offset between intermediate and MR
REAL8 alpha_interp_0
intermediate coefficient
REAL8 Mf_alpha_lower
connection frequency
REAL8 alpha_interp_3
intermediate coefficient
REAL8 Mf_alpha_upper
connection frequency
REAL8 alpha_upper
alpha at connection frequency
REAL8 alpha_interp_1
intermediate coefficient