Loading [MathJax]/extensions/TeX/AMSsymbols.js
LALSimulation 6.2.0.1-3a66518
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
LALSimBlackHoleRingdown.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2011 J. Creighton
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 _LALSIMBLACKHOLERINGDOWN_H
21#define _LALSIMBLACKHOLERINGDOWN_H
22
23#include <lal/LALDatatypes.h>
24#include <lal/LALSimInspiral.h>
25#include <gsl/gsl_linalg.h>
26#include <gsl/gsl_interp.h>
27#include <gsl/gsl_spline.h>
28
29#if defined(__cplusplus)
30extern "C" {
31#elif 0
32} /* so that editors will match preceding brace */
33#endif
34
35
36/**
37 * @author Jolien Creighton
38 * @addtogroup LALSimBlackHoleRingdown_h Header LALSimBlackHoleRingdown.h
39 * @ingroup lalsimulation_inspiral
40 * @brief Routines to generate black hole ringdown waveforms.
41 * @details
42 * These routines generate black hole quasinormal modes, spin-weighted
43 * spheroidal harmonics, and ringdown gravitational waveforms.
44 */
45
46/* LOW-LEVEL ROUTINES (USE LEAVER'S CONVENSIONS G = c = 2M = 1) */
47
48int XLALSimBlackHoleRingdownModeEigenvaluesLeaver(COMPLEX16 *A, COMPLEX16 *omega, double a, int l, int m, int s
49);
51
52
53/* HIGH-LEVEL ROUTINES */
54
55int XLALSimBlackHoleRingdownMode(double *frequency, double *quality, double mass, double dimensionless_spin, int l, int m, int s);
56COMPLEX16 XLALSimBlackHoleRingdownSpheroidalWaveFunction(double theta, double dimensionless_spin, int l, int m, int s);
57int XLALSimBlackHoleRingdown(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const LIGOTimeGPS *t0, double phi0, double deltaT, double mass, double dimensionless_spin, double fractional_mass_loss, double distance, double inclination, int l, int m);
58INT4 XLALSimIMREOBFinalMassSpin(REAL8 *finalMass, REAL8 *finalSpin, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], Approximant approximant);
59INT4 XLALSimIMREOBGenerateQNMFreqV2(COMPLEX16Vector *modefreqs, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], UINT4 l, INT4 m, UINT4 nmodes, Approximant approximant);
60INT4 XLALSimIMREOBGenerateQNMFreqV2fromFinal(COMPLEX16Vector *modefreqs, const REAL8 finalMass, const REAL8 finalSpin, UINT4 l, INT4 m, UINT4 nmodes);
61INT4 XLALSimIMREOBGenerateQNMFreqV5(COMPLEX16Vector *modefreqs, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], UINT4 l, INT4 m, UINT4 nmodes, Approximant approximant);
62INT4 XLALSimIMREOBGenerateQNMFreqV5fromFinal(COMPLEX16Vector *modefreqs, const REAL8 finalMass, const REAL8 finalSpin, UINT4 l, INT4 m, UINT4 nmodes);
63
67
68/* Constants entering the final mass formulas of SEOBNRv2,4 */
69/* See http://arxiv.org/pdf/1206.3803.pdf */
70static const REAL8 p0coeff = 0.04826;
71static const REAL8 p1coeff = 0.01559;
72static const REAL8 p2coeff = 0.00485;
73/* See http://arxiv.org/pdf/0904.2577.pdf */
74static const REAL8 t0coeff = -2.8904;
75static const REAL8 t2coeff = -3.5171;
76static const REAL8 t3coeff = 2.5763;
77static const REAL8 s4coeff = -0.1229;
78static const REAL8 s5coeff = 0.4537;
79/* See https://dcc.ligo.org/T1400476 */
80static const REAL8 s9coeff = 2.763032781169752;
81static const REAL8 s8coeff = -2.6081232221537394;
82static const REAL8 s7coeff = 1.2657111864932808;
83static const REAL8 s6coeff = -0.7835007857591175;
84static const REAL8 s5v2coeff = -0.3264724801557159;
85static const REAL8 s4v2coeff = -0.27506210736300474;
86static const REAL8 t0v2coeff = -2.649826989941522;
87static const REAL8 t3v2coeff = 3.910637513328723;
88static const REAL8 t2v2coeff = -3.850983155206041;
89
90/* Constants entering the final spin formulas of SEOBNRv4 */
91/* Table I of https://arxiv.org/pdf/1605.01938v2.pdf */
92static const REAL8 k00 = -5.977230835551017; // Solving Eq.(11) of https://arxiv.org/pdf/1605.01938v2.pdf
93static const REAL8 k01 = 3.39221;
94static const REAL8 k02 = 4.48865;
95static const REAL8 k03 = -5.77101;
96static const REAL8 k04 = -13.0459;
97static const REAL8 k10 = 35.1278;
98static const REAL8 k11 = -72.9336;
99static const REAL8 k12 = -86.0036;
100static const REAL8 k13 = 93.7371;
101static const REAL8 k14 = 200.975;
102static const REAL8 k20 = - 146.822;
103static const REAL8 k21 = 387.184;
104static const REAL8 k22 = 447.009;
105static const REAL8 k23 = -467.383;
106static const REAL8 k24 = -884.339;
107static const REAL8 k30 = 223.911;
108static const REAL8 k31 = -648.502;
109static const REAL8 k32 = -697.177;
110static const REAL8 k33 = 753.738;
111static const REAL8 k34 = 1166.89;
112
113#if 0
114{ /* so that editors will match succeeding brace */
115#elif defined(__cplusplus)
116}
117#endif
118
119#endif /* _LALSIMBLACKHOLERINGDOWN_H */
static const REAL8 k11
static const REAL8 s5coeff
static const REAL8 s4v2coeff
static const REAL8 t2v2coeff
INT4 XLALSimIMREOBGenerateQNMFreqV5(COMPLEX16Vector *modefreqs, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], UINT4 l, INT4 m, UINT4 nmodes, Approximant approximant)
These functions generate the quasinormal mode frequencies for a black hole ringdown,...
static const REAL8 k12
static const REAL8 k04
static const REAL8 k01
static const REAL8 s7coeff
static const REAL8 t3v2coeff
static const REAL8 p1coeff
static const REAL8 k24
static const REAL8 k30
static const REAL8 t3coeff
static const REAL8 s5v2coeff
static const REAL8 k02
static const REAL8 t0coeff
static const REAL8 k31
static const REAL8 k32
static const REAL8 k13
static const REAL8 k14
static const REAL8 k34
static const REAL8 k33
static const REAL8 t2coeff
static const REAL8 k23
static const REAL8 k20
static const REAL8 s6coeff
static const REAL8 s8coeff
static const REAL8 k00
static const REAL8 k22
static const REAL8 s9coeff
static const REAL8 k21
static const REAL8 k03
static const REAL8 t0v2coeff
static const REAL8 p0coeff
static const REAL8 k10
INT4 XLALSimIMREOBGenerateQNMFreqV5fromFinal(COMPLEX16Vector *modefreqs, const REAL8 finalMass, const REAL8 finalSpin, UINT4 l, INT4 m, UINT4 nmodes)
static const REAL8 p2coeff
static const REAL8 s4coeff
int s
Definition: bh_qnmode.c:137
int l
Definition: bh_qnmode.c:135
double theta
Definition: bh_sphwf.c:118
double complex COMPLEX16
double REAL8
uint32_t UINT4
int32_t INT4
int XLALSimBlackHoleRingdownMode(double *frequency, double *quality, double mass, double dimensionless_spin, int l, int m, int s)
Computes the frequency and quality factor of a specified quasinormal mode (l,m) of spin weight s pert...
INT4 XLALSimIMREOBGenerateQNMFreqV2fromFinal(COMPLEX16Vector *modefreqs, const REAL8 finalMass, const REAL8 finalSpin, UINT4 l, INT4 m, UINT4 nmodes)
INT4 XLALSimIMREOBFinalMassSpin(REAL8 *finalMass, REAL8 *finalSpin, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], Approximant approximant)
Computes the final mass and spin of the black hole resulting from merger.
REAL8 XLALSimEnergyKerrISCO(REAL8 rISCO)
REAL8 XLALSimAngMomKerrISCO(REAL8 rISCO)
REAL8 XLALSimRadiusKerrISCO(REAL8 a)
int XLALSimBlackHoleRingdownModeEigenvaluesLeaver(COMPLEX16 *A, COMPLEX16 *omega, double a, int l, int m, int s)
Low-level routine that computes the black hole quasinormal mode eigenefrequency, omega,...
INT4 XLALSimIMREOBGenerateQNMFreqV2(COMPLEX16Vector *modefreqs, const REAL8 mass1, const REAL8 mass2, const REAL8 spin1[3], const REAL8 spin2[3], UINT4 l, INT4 m, UINT4 nmodes, Approximant approximant)
These functions generate the quasinormal mode frequencies for a black hole ringdown.
COMPLEX16 XLALSimBlackHoleRingdownSpheroidalWaveFunctionLeaver(double mu, double a, int l, int m, int s, COMPLEX16 A, COMPLEX16 omega)
Low-level routine that evaluates the spheroidal wave function at a specified value of mu = cos(theta)...
COMPLEX16 XLALSimBlackHoleRingdownSpheroidalWaveFunction(double theta, double dimensionless_spin, int l, int m, int s)
Evaluates the value of spheroidal wave function at a given polar angle theta for a specified mode (l,...
int XLALSimBlackHoleRingdown(REAL8TimeSeries **hplus, REAL8TimeSeries **hcross, const LIGOTimeGPS *t0, double phi0, double deltaT, double mass, double dimensionless_spin, double fractional_mass_loss, double distance, double inclination, int l, int m)
Computes the waveform for the ringdown of a black hole quasinormal mode (l,m).
Approximant
Enum that specifies the PN approximant to be used in computing the waveform.
static const INT4 m
static const INT4 a
double deltaT
Definition: unicorn.c:24