LALSimulation  5.4.0.1-fe68b98
LALSimUniversalRelations.c
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2017 Andrea Taracchini
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 #include <lal/LALSimUniversalRelations.h>
21 
22 /**< Generic form of universal relation */
24  return coeffs[0] + coeffs[1] * x + coeffs[2] * x * x + coeffs[3] * x * x * x + coeffs[4] * x *x * x * x;
25 }
26 
27 /**< Eq. (60) with coeffs from 1st row of Table I of https://arxiv.org/pdf/1311.0872.pdf */
28 /* Gives the dimensionless l=3 tidal deformability: lambda3bar = 2/15 k3 C^7
29  where k3 is the l=3 Love number and C is the compactness. It is a
30  function the dimensionless l=2 tidal deformability: lambda2bar = 2/3 k2 C^5.
31  Compared to NR for 1 <= lambda2bar <= 3000
32  */
34  REAL8 lambda2bar /**< l=2 dimensionless tidal defomability */
35 )
36 {
37  REAL8 coeffs[] = {-1.15, 1.18, 2.51e-2, -1.31e-3, 2.52e-5};
38  REAL8 lnx;
39  if ( lambda2bar < 0. ) {
41  }
42  else if ( 0. <= lambda2bar && lambda2bar < 0.01 ) {
43  /* This is a function fitted to the universal relation in the range
44  0.00001 <= lambda2hat <= 0.01 with the requirements that it goes to 0 at
45  lambda2hat=0 and is exactly equal to the universal relation at lambda2hat=0.01 */
46  return 0.4406491912035266*lambda2bar - 34.63232296075433*lambda2bar*lambda2bar
47  + 1762.112913125107*lambda2bar*lambda2bar*lambda2bar;
48  }
49  else {
50  lnx = log( lambda2bar );
51  }
52  REAL8 lny = XLALSimUniversalRelation( lnx, coeffs );
53  return exp(lny);
54 }
55 
56 /**< Eq. (3.5) with coeffs from 1st column of Table I of https://arxiv.org/pdf/1408.3789.pdf */
57 /* Gives the l=2 f-mode frequency M_{NS}omega_{02}
58  as a function the dimensionless l=2 tidal deformability: lambda2bar = 2/3 k2 C^5
59  where k2 is the l=2 Love number and C is the compactness.
60  Compared to NR for 0 <= log(lambda2bar) <= 9, that is
61  1 <= lambda2bar <= 8100
62  */
64  REAL8 lambda2bar /**< l=2 dimensionless tidal defomability */
65 )
66 {
67  REAL8 coeffs[] = {1.82e-1, -6.836e-3, -4.196e-3, 5.215e-4, -1.857e-5};
68  REAL8 lnx;
69  if ( lambda2bar < 0. ) {
71  }
72  else if ( 0. <= lambda2bar && lambda2bar < 1. ) {
73  lnx = 0.;
74  }
75  else if ( 1. <= lambda2bar && lambda2bar < exp(9.) ) {
76  lnx = log( lambda2bar );
77  }
78  else {
79  lnx = 9.;
80  }
81  return XLALSimUniversalRelation( lnx, coeffs );
82 }
83 
84 /**< Eq. (3.5) with coeffs from 2nd column of Table I of https://arxiv.org/pdf/1408.3789.pdf */
85 /* Gives the l=3 f-mode frequency M_{NS}omega_{03}
86  as a function the dimensionless l=3 tidal deformability: lambda3bar = 2/15 k3 C^5
87  where k3 is the l=3 Love number and C is the compactness.
88  Compared to NR for -1 <= log(lambda3bar) <= 10, that is
89  0.37 <= lambda3bar <= 20000
90  */
92  REAL8 lambda3bar /**< l=3 dimensionless tidal defomability */
93 )
94 {
95  REAL8 coeffs[] = {2.245e-1, -1.5e-2, -1.412e-3, 1.832e-4, -5.561e-6};
96  REAL8 lnx;
97  if ( lambda3bar < 0. ) {
99  }
100  else if ( 0. <= lambda3bar && lambda3bar < exp(-1.) ) {
101  lnx = -1.;
102  }
103  else if ( exp(-1.) <= lambda3bar && lambda3bar < exp(10.) ) {
104  lnx = log( lambda3bar );
105  }
106  else {
107  lnx = 10.;
108  }
109  return XLALSimUniversalRelation( lnx, coeffs );
110 }
111 
112 /**< Eq. (15) with coeffs from third row of Table I of https://arxiv.org/pdf/1608.02582.pdf (Yagi-Yunes) */
113 /* Gives the spin-induced quadrupole coefficient as a function the dimensionless l=2
114  tidal deformability: lambda2bar = 2/3 k2 C^5.
115  This coefficient quadparam relates the spin-induced quadrupole to the square of the spin, according to Q = -quadparam*chi^2*m^3*.
116  It takes the value 1 for BH, and can reach ~10 for NS.
117  The notation is Qbar in Yagi-Yunes. In the PN literature, the notation is often kappa (e.g. in
118  https://arxiv.org/pdf/1501.01529.pdf). In https://arxiv.org/pdf/gr-qc/9709032.pdf the notation is a.
119  The Yagi-Yunes fit does not cover the BH limit, where lambda2bar->0 and kappa->1.
120  We extend it with a polynomial below lambda2bar=1. so that the function and its two
121  first derivatives are smooth at the junction, while enforcing the BH limit.
122  */
124  REAL8 lambda2bar /**< l=2 dimensionless tidal deformability */
125 )
126 {
127  REAL8 coeffs[] = {0.1940, 0.09163, 0.04812, -4.283e-3, 1.245e-4};
128  REAL8 lnx;
129  if ( lambda2bar < 0. ) {
131  }
132  else if ( 0. <= lambda2bar && lambda2bar < 1. ) {
133  /* Extension of the fit in the range lambda2bar=[0,1.] so that
134  the BH limit is enforced, lambda2bar->0 gives quadparam->1. and
135  the junction with the universal relation is smooth, of class C2 */
136  return 1. + lambda2bar*(0.427688866723244 + lambda2bar*(-0.324336526985068 + lambda2bar*0.1107439432180572));
137  }
138  else {
139  lnx = log( lambda2bar );
140  }
141  REAL8 lny = XLALSimUniversalRelation( lnx, coeffs );
142  return exp(lny);
143 }
144 
145 /* Quasi universal relation between spin-induced quadrupole and
146  * spin-induced octupole moment based on Yagi & Yunes arxiv:1608.02582;
147  * Table 2 of the review also given explicitly in NRTidalv2 paper https://arxiv.org/abs/1905.06011
148 */
149 
151  REAL8 qm_def /**< spin-induced quadrupole moment */
152 )
153 {
154  REAL8 coeffs[] = {0.003131, 2.071, -0.7152, 0.2458, -0.03309};
155  REAL8 lnx;
156  lnx = log( qm_def );
157 
158  REAL8 lny = 1;
159  lny = XLALSimUniversalRelation( lnx, coeffs );
160  return exp(lny);
161 
162 }
REAL8 XLALSimUniversalRelationlambda3TidalVSlambda2Tidal(REAL8 lambda2bar)
Eq.
REAL8 XLALSimUniversalRelationomega03TidalVSlambda3Tidal(REAL8 lambda3bar)
Eq.
REAL8 XLALSimUniversalRelation(REAL8 x, REAL8 coeffs[])
< Generic form of universal relation
REAL8 XLALSimUniversalRelationSpinInducedOctupoleVSSpinInducedQuadrupole(REAL8 qm_def)
REAL8 XLALSimUniversalRelationQuadMonVSlambda2Tidal(REAL8 lambda2bar)
REAL8 XLALSimUniversalRelationomega02TidalVSlambda2Tidal(REAL8 lambda2bar)
Eq.
double REAL8
#define XLAL_ERROR(...)
XLAL_EFUNC
list x