Source code for qnm.schwarzschild.approx

""" Analytic approximations for Schwarzschild QNMs.

The approximations implemented in this module can be used as initial
guesses when numerically searching for QNM frequencies.

"""

from __future__ import division, print_function, absolute_import

import numpy as np

[docs]def dolan_ottewill_expansion(s, l, n): """ High l asymptotic expansion of Schwarzschild QNM frequency. The result of [1]_ is an expansion in inverse powers of L = (l+1/2). Their paper stated this series out to L^{-4}, which is how many terms are implemented here. The coefficients in this series are themselves positive powers of N = (n+1/2). This means the expansion breaks down for large N. Parameters ---------- s: int Spin weight of the field of interest. l: int Multipole number of interest. [The m parameter is omitted because this is just for Schwarzschild.] n: int Overtone number of interest. Returns ------- complex Analytic approximation of QNM of interest. References ---------- .. [1] SR Dolan, AC Ottewill, "On an expansion method for black hole quasinormal modes and Regge poles," CQG 26 225003 (2009), https://arxiv.org/abs/0908.0329 . """ L = l + 0.5 N = n + 0.5 beta = 1. - s*s DO_coeffs = { -1: 1., 0: -1.j * N, +1: beta/3. - 5.*N*N/36. - 115./432., +2: -1.j * N * (beta/9. + 235.*N*N/3888. - 1415./15552.), +3: (-beta*beta/27. + (204.*N*N + 211.)/3888.*beta +(854160.*N**4 - 1664760.*N*N - 776939.)/40310784.), +4: -1.j * N *(beta*beta/27. + (1100.*N*N-2719.)/46656.*beta + (11273136.*N**4 - 52753800.*N*N + 66480535.)/2902376448.) } omega = 0. for k, c in DO_coeffs.items(): omega = omega + c * np.power(L, -k) omega = omega / np.sqrt(27) return omega
[docs]def large_overtone_expansion(s, l, n): r""" The eikonal approximation for QNMs, valid for l >> n >> 1 . This is just the first two terms of the series in :meth:`dolan_ottewill_expansion`. The earliest work I know deriving this result is [1]_ but there may be others. In the eikonal approximation, valid when :math:`l \gg n \gg 1`, the QNM frequency is .. math:: \sqrt{27} M \omega \approx (l+\frac{1}{2}) - i (n+\frac{1}{2}) . Parameters ---------- s: int Spin weight of the field of interest. l: int Multipole number of interest. [The m parameter is omitted because this is just for Schwarzschild.] n: int Overtone number of interest. Returns ------- complex Analytic approximation of QNM of interest. References ---------- .. [1] V Ferrari, B Mashhoon, "New approach to the quasinormal modes of a black hole," Phys. Rev. D 30, 295 (1984) """ k = np.log(3.)/(8. * np.pi) kappa = 0.25 # Surface gravity return k - 1.j * kappa * (n + 0.5)
[docs]def Schw_QNM_estimate(s, l, n): """ Give either :meth:`large_overtone_expansion` or :meth:`dolan_ottewill_expansion`. The Dolan-Ottewill expansion includes terms with higher powers of the overtone number n, so it breaks down faster at high n. Parameters ---------- s: int Spin weight of the field of interest. l: int Multipole number of interest. [The m parameter is omitted because this is just for Schwarzschild.] n: int Overtone number of interest. Returns ------- complex Analytic approximation of QNM of interest. """ if (( n > 3 ) and (n >= 2*l)): return large_overtone_expansion(s, l, n) else: return dolan_ottewill_expansion(s, l, n)