LALInspiral 5.0.3.1-eeff03c
Header RingUtils_h

Detailed Description

Black hole ringdown waveform generation.

Author
Jolien Creighton

Synopsis

#include <lal/RingUtils.h>

Routines for generating waveforms for black hole ringdown.

The ringdown waveform is an exponentially-damped sinusoid

\begin{equation} r(t) = \left\{ \begin{array}{ll} e^{-\pi ft/Q}\cos(2\pi ft + \phi_0) & \mbox{for } t\ge0 \\ 0 & \mbox{for } t<0 \end{array} \right. \end{equation}

where \(f\) is the central frequency of the ringdown waveform, \(Q\) is the quality factor, and \(\phi_0\) is the initial phase of the waveform. Note that Ref. [11] adopted the normalization convention \(q(t)=(2\pi)^{1/2}r(t)\).

For a black hole ringdown, the gravitational waveform produced, averaged over the various angles, is

\begin{equation} h(t) = A_qq(t) \end{equation}

where the central frequency and quality of the ringdown are determined from the mass and spin of the black holes. An analytic approximation yields [18] ,[17]

\begin{equation} f \simeq 32\,\textrm{kHz}\times[1-0.63(1-{\hat{a}})^{3/10}](M_\odot/M) \end{equation}

and

\begin{equation} Q \simeq 2(1-{\hat{a}})^{-9/20} \end{equation}

with the black hole mass given by \(M\) and its spin by \(S={\hat{a}}GM^2/c\) (where \(G\) is Newton's constant and \(c\) is the speed of light). The dimensionless spin parameter \({\hat{a}}\) lies between zero (for a Schwarzschild black hole) and unity (for an extreme Kerr black hole). The amplitude of the waveform depends on these quantities as well as the distance \(r\) to the source and the fractional mass loss \(\epsilon\) radiated in gravitational waves [11] :

\begin{equation} A_q = 2.415\times10^{-21}Q^{-1/2}[1-0.63(1-{\hat{a}})^{3/10}]^{-1/2} \left(\frac{\textrm{Mpc}}{r}\right) \left(\frac{M}{M_\odot}\right) \left(\frac{\epsilon}{0.01}\right)^{1/2}. \end{equation}

Note that this is the amplitude factor for the waveform \(q(t)\), whereas the amplitude factor for \(r(t)\) would be \((2\pi)^{1/2}A_q\).

The mismatch between two nearby templates is given by \(ds^2\), which can be thought of as the line interval for a mismatch-based metric on the \((f,Q)\) parameter space [20] ,[11] :

\begin{equation} ds^2 = \frac{1}{8} \biggl\{ \frac{3+16Q^4}{Q^2(1+4Q^2)^2}\,dQ^2 - 2\frac{3+4Q^2}{fQ(1+4Q^2)}\,dQ\,df + \frac{3+8Q^2}{f^2}\,df^2 \biggr\}. \end{equation}

When expressed in terms of \(\log f\) rather than \(f\), the metric coefficients depend on \(Q\) alone. We can exploit this property for the task of template placement. The method is the following: First, choose a "surface" of constant \(Q=Q_{\mathrm{\scriptstyle min}}\), and on this surface place templates at intervals in \(\phi=\log f\) of \(d\phi=d\ell/\surd g_{\phi\phi}\) for the entire range of \(\phi\). Here, \(d\ell=\surd(2ds^2_{\mathrm{\scriptstyle threshold}})\). Then choose the next surface of constant \(Q\) with \(dQ=d\ell/\surd g_{QQ}\) and repeat the placement of templates on this surface. This can be iterated until the entire range of \(Q\) has been covered; the collection of templates should now cover the entire parameter region with no point in the region being farther than \(ds^2_{\mathrm{\scriptstyle threshold}}\) from the nearest template.

Algorithm

The waveform generation routines use recurrance relations for both the exponentially-decaying envelope and for the co-sinusoid.

The template placement algorithm is described above.

Prototypes

REAL4 XLALBlackHoleRingSpin (REAL4 Q)
 
REAL4 XLALBlackHoleRingMass (REAL4 f, REAL4 Q)
 
REAL4 XLALBlackHoleRingQuality (REAL4 a)
 
REAL4 XLALBlackHoleRingFrequency (REAL4 M, REAL4 a)
 
REAL4 XLALNonSpinBinaryFinalBHSpin (REAL4 eta)
 
REAL4 XLALNonSpinBinaryFinalBHMass (REAL4 eta, REAL4 mass1, REAL4 mass2)
 
REAL4 XLALSpinBinaryFinalBHSpin (REAL4 eta, REAL4 mass1, REAL4 mass2, REAL4 spin1x, REAL4 spin2x, REAL4 spin1y, REAL4 spin2y, REAL4 spin1z, REAL4 spin2z)
 
REAL4 XLALBlackHoleRingAmplitude (REAL4 f, REAL4 Q, REAL4 r, REAL4 epsilon)
 
REAL4 XLALBlackHoleRingEpsilon (REAL4 f, REAL4 Q, REAL4 r, REAL4 amplitude)
 
REAL4 XLALBlackHoleRingHRSS (REAL4 f, REAL4 Q, REAL4 amplitude, REAL4 plus, REAL4 cross)
 
REAL8 XLAL2DRingMetricDistance (REAL8 fa, REAL8 fb, REAL8 Qa, REAL8 Qb)
 
REAL8 XLAL3DRingMetricDistance (REAL8 fa, REAL8 fb, REAL8 Qa, REAL8 Qb, REAL8 dt)
 
REAL8 XLAL3DRingTimeMinimum (REAL8 fa, REAL8 fb, REAL8 Qa, REAL8 Qb)
 
REAL8 XLALRingdownTimeError (const SnglRingdownTable *table, REAL8 lal_ring_ds_sq)
 
int XLALComputeRingTemplate (REAL4TimeSeries *output, SnglRingdownTable *input)
 This routine computes the ringdown waveform. More...
 
int XLALComputeBlackHoleRing (REAL4TimeSeries *output, SnglRingdownTable *input, REAL4 dynRange)
 This routine computes a waveform for a black hole with the specified physical parameters (in the input structure). More...
 
RingTemplateBankXLALCreateRingTemplateBank (RingTemplateBankInput *input)
 This routine creates a bank of ringdown templates that cover a set range in the parameters \(f\) and \(Q\). More...
 
void XLALDestroyRingTemplateBank (RingTemplateBank *bank)
 Destroys a RingTemplateBank. More...
 

Data Structures

struct  RingTemplateBank
 This structure contains a bank of ringdown waveforms. More...
 
struct  RingTemplateBankInput
 This structure contains the parameters required for generating a ringdown template bank. More...
 

Error Codes

#define RINGH_ENULL   01
 Null pointer. More...
 
#define RINGH_ENNUL   02
 Non-null pointer. More...
 
#define RINGH_EALOC   04
 Memory allocation error. More...
 

Function Documentation

◆ XLALBlackHoleRingSpin()

REAL4 XLALBlackHoleRingSpin ( REAL4  Q)

Definition at line 71 of file RingUtils.c.

◆ XLALBlackHoleRingMass()

REAL4 XLALBlackHoleRingMass ( REAL4  f,
REAL4  Q 
)

Definition at line 88 of file RingUtils.c.

◆ XLALBlackHoleRingQuality()

REAL4 XLALBlackHoleRingQuality ( REAL4  a)

Definition at line 98 of file RingUtils.c.

◆ XLALBlackHoleRingFrequency()

REAL4 XLALBlackHoleRingFrequency ( REAL4  M,
REAL4  a 
)

Definition at line 115 of file RingUtils.c.

◆ XLALNonSpinBinaryFinalBHSpin()

REAL4 XLALNonSpinBinaryFinalBHSpin ( REAL4  eta)

Definition at line 127 of file RingUtils.c.

◆ XLALNonSpinBinaryFinalBHMass()

REAL4 XLALNonSpinBinaryFinalBHMass ( REAL4  eta,
REAL4  mass1,
REAL4  mass2 
)

Definition at line 134 of file RingUtils.c.

◆ XLALSpinBinaryFinalBHSpin()

REAL4 XLALSpinBinaryFinalBHSpin ( REAL4  eta,
REAL4  mass1,
REAL4  mass2,
REAL4  spin1x,
REAL4  spin2x,
REAL4  spin1y,
REAL4  spin2y,
REAL4  spin1z,
REAL4  spin2z 
)

Definition at line 145 of file RingUtils.c.

◆ XLALBlackHoleRingAmplitude()

REAL4 XLALBlackHoleRingAmplitude ( REAL4  f,
REAL4  Q,
REAL4  r,
REAL4  epsilon 
)

Definition at line 189 of file RingUtils.c.

◆ XLALBlackHoleRingEpsilon()

REAL4 XLALBlackHoleRingEpsilon ( REAL4  f,
REAL4  Q,
REAL4  r,
REAL4  amplitude 
)

Definition at line 204 of file RingUtils.c.

◆ XLALBlackHoleRingHRSS()

REAL4 XLALBlackHoleRingHRSS ( REAL4  f,
REAL4  Q,
REAL4  amplitude,
REAL4  plus,
REAL4  cross 
)

Definition at line 219 of file RingUtils.c.

◆ XLAL2DRingMetricDistance()

REAL8 XLAL2DRingMetricDistance ( REAL8  fa,
REAL8  fb,
REAL8  Qa,
REAL8  Qb 
)

Definition at line 226 of file RingUtils.c.

◆ XLAL3DRingMetricDistance()

REAL8 XLAL3DRingMetricDistance ( REAL8  fa,
REAL8  fb,
REAL8  Qa,
REAL8  Qb,
REAL8  dt 
)

Definition at line 242 of file RingUtils.c.

◆ XLAL3DRingTimeMinimum()

REAL8 XLAL3DRingTimeMinimum ( REAL8  fa,
REAL8  fb,
REAL8  Qa,
REAL8  Qb 
)

Definition at line 269 of file RingUtils.c.

◆ XLALRingdownTimeError()

REAL8 XLALRingdownTimeError ( const SnglRingdownTable table,
REAL8  lal_ring_ds_sq 
)

Definition at line 292 of file RingUtils.c.

◆ XLALComputeRingTemplate()

int XLALComputeRingTemplate ( REAL4TimeSeries output,
SnglRingdownTable input 
)

This routine computes the ringdown waveform.

\begin{equation} r(t) = \left\{ \begin{array}{ll} e^{-\pi ft/Q}\cos(2\pi ft) & \mbox{for} t\ge0 \\ 0 & \mbox{for} t<0 \end{array} \right. \end{equation}

where the parameters \(f\) and \(Q\) are specified in the input structure. The output must have an appropriate amount of memory allocated, and must have the desired temporal spacing set. Note: Ref. [11] used a different convention for the ringdown normlization: there the ringdown waveform was taken to be \(q(t)=(2\pi)^{1/2}r(t)\).

Definition at line 320 of file RingUtils.c.

◆ XLALComputeBlackHoleRing()

int XLALComputeBlackHoleRing ( REAL4TimeSeries output,
SnglRingdownTable input,
REAL4  dynRange 
)

This routine computes a waveform for a black hole with the specified physical parameters (in the input structure).

The parameters are the black hole mass \(M\) (in solar masses \(M_\odot\)), the spin \(S={\hat{a}}GM^2/c\) expressed in terms of the dimensionless mass parameter \({\hat{a}}\), the fractional mass lost \(\epsilon\) in ringdown radiation expressed as a percent, and the distance to the typical source (angle-averaged waveform) \(r\) given in megaparsecs (Mpc). The central frequency and quality of the ringdown are approximated as\ [18] ,[4] :

\begin{equation} f \simeq 32\,\textrm{kHz}\times[f_1+f_2(1-{\hat{a}})^{f_3}](M_\odot/M) \end{equation}

and

\begin{equation} Q \simeq q_1+q_2(1-{\hat{a}})^{q_3}, \end{equation}

where the values of the constants (f_1,f_2,f_3) and (q_1,q_2,q_3) are given for each of (l,m,n) in\ [4] . The strain waveform produced is \(h(t)=A_q q(t)\) where the amplitude factor is\ [11]

\begin{equation} A_q = 2.415\times10^{-21}Q^{-1/2}[1-0.63(1-{\hat{a}})^{3/10}]^{-1/2} \left(\frac{\textrm{Mpc}}{r}\right) \left(\frac{M}{M_\odot}\right) \left(\frac{\epsilon}{0.01}\right)^{1/2}. \end{equation}

Note that this is written \(A_q\) to emphasize that it is the amplitude factor for \(q(t)\) rather than \(r(t)\).

Definition at line 399 of file RingUtils.c.

◆ XLALCreateRingTemplateBank()

RingTemplateBank * XLALCreateRingTemplateBank ( RingTemplateBankInput input)

This routine creates a bank of ringdown templates that cover a set range in the parameters \(f\) and \(Q\).

Definition at line 458 of file RingUtils.c.

◆ XLALDestroyRingTemplateBank()

void XLALDestroyRingTemplateBank ( RingTemplateBank bank)

Destroys a RingTemplateBank.

Definition at line 487 of file RingUtils.c.

Macro Definition Documentation

◆ RINGH_ENULL

#define RINGH_ENULL   01

Null pointer.

Definition at line 124 of file RingUtils.h.

◆ RINGH_ENNUL

#define RINGH_ENNUL   02

Non-null pointer.

Definition at line 125 of file RingUtils.h.

◆ RINGH_EALOC

#define RINGH_EALOC   04

Memory allocation error.

Definition at line 126 of file RingUtils.h.