Skip to main content
Sandbox Physics
Spinning black holes and boson clouds

Solving for the bound cloud's growth rate reproducibly

Sandbox Physics ·

The cloud's complex frequency is a zero of a continued fraction built from a three-term recurrence, and a zero found that way can be trusted only after three checks: it does not move when the fraction is made deeper, it is the ground state and not an overtone, and it reproduces a published table. Our solver passes all three. It matches Dolan's 2007 maximum growth rates to within 0.30.3 percent, and the Lab's growth curve is built from it.

Open the black hole superradiance Lab

This chapter continues conserved flux, physical units and a first growth estimate. It assumes complex numbers, series solutions of differential equations and some Python.

What makes a frequency a bound state

A trapped cloud must satisfy two boundary conditions at once. At the horizon it may only fall in, as for the scattered wave. Far away it must decay instead of radiating, R∝eqrR\propto e^{qr} with

q=−μ2−ω2,Re q<0.q=-\sqrt{\mu^2-\omega^2},\qquad \mathrm{Re}\,q<0 .

Both conditions together are possible only for special complex values of ω\omega. Their real part is the cloud's oscillation frequency; their imaginary part ωI\omega_I is the growth rate, positive for a growing cloud.

Dolan writes the solution as a product that already has the right behaviour at both ends, times a power series:

R=(r−r+)−iσ(r−r−)iσ+χ−1eqr∑n=0∞an(r−r+r−r−)n,R=(r-r_+)^{-i\sigma}(r-r_-)^{i\sigma+\chi-1}e^{qr}\sum_{n=0}^{\infty}a_n\left(\frac{r-r_+}{r-r_-}\right)^n,

with σ=2r+(ω−mΩH)/(r+−r−)\sigma=2r_+(\omega-m\Omega_H)/(r_+-r_-) and χ=(μ2−2ω2)/q\chi=(\mu^2-2\omega^2)/q. The series variable runs from 00 at the horizon to 11 at infinity. Dolan, Instability of the massive Klein-Gordon field on the Kerr spacetime, §III, Eqs. (33)-(34)

From a recurrence to a continued fraction

Putting the series into the radial equation gives a three-term recurrence,

αnan+1+βnan+γnan−1=0,\alpha_na_{n+1}+\beta_na_n+\gamma_na_{n-1}=0,

where αn\alpha_n, βn\beta_n and γn\gamma_n are quadratics in nn whose coefficients depend on ω\omega, aa, μ\mu, mm and the angular eigenvalue Λ\Lambda. The series converges at r→∞r\to\infty only for the minimal solution of the recurrence, and that solution exists exactly when

β0−α0γ1β1−α1γ2β2−⋯=0.\beta_0-\frac{\alpha_0\gamma_1}{\beta_1-\dfrac{\alpha_1\gamma_2}{\beta_2-\cdots}}=0 .

Dolan, §III, Eqs. (35)-(36) and (47)-(48) This is Leaver's method, first used for black-hole ringing.

Two details matter in code. First, Λ\Lambda must be computed for the complex spheroidal parameter c2=a2(ω2−μ2)c^2=a^2(\omega^2-\mu^2), not for a2ω2a^2\omega^2; our solver finds it as an eigenvalue of a 24×2424\times24 matrix in a Legendre basis. Second, the fraction is evaluated from a finite depth NN back to n=0n=0, so NN is a numerical parameter that must be tested.

def continued_fraction(omega, a, mu, l=1, m=1, depth=4000):
    c0, c1, c2, c3, c4 = _recurrence_coefficients(omega, a, mu, l, m)
    n = np.arange(depth + 1, dtype=float)
    alpha = n * n + (c0 + 1) * n + c0
    beta = -2 * n * n + (c1 + 2) * n + c3
    gamma = n * n + (c2 - 3) * n + c4
    tail = 0j
    for k in range(depth, 0, -1):
        tail = alpha[k - 1] * gamma[k] / (beta[k] - tail)
    return (beta[0] - tail) / beta[0]

The full file is kerr_bound_states.py.

Finding the zero

Dolan minimised the absolute value of the fraction over the complex plane. We use a complex secant iteration started from the hydrogenic frequency of the previous chapter. Brito, Cardoso and Pani, Superradiance, §5.6.2, Eq. (5.27) Neighbouring levels are separated by about μ3\mu^3, so each step is clamped to 55 percent of that spacing. Without the clamp, a single large step can jump to another level.

Worked example 1. For a=0.99a=0.99 and α=0.1\alpha=0.1 the hydrogenic guess is Mω=0.099875+1.59×10−11iM\omega=0.099875+1.59\times10^{-11}i. The iteration converges to MωI=7.389×10−12M\omega_I=7.389\times10^{-12}. The real part barely moves; the imaginary part halves.

Convergence: make the fraction deeper

We use depth 30003000 for α≥0.1\alpha\ge0.1 and 60006000 below. To test it, solve again with four times the depth and compare.

Table 3.1 Relative change of MωIM\omega_I when the depth is multiplied by four.
SpinCouplingRelative change
0.990.990.050.051.2×10−41.2\times10^{-4}
0.990.990.420.428×10−128\times10^{-12}
0.70.70.190.191.1×10−91.1\times10^{-9}
0.50.50.100.106.1×10−96.1\times10^{-9}
0.20.20.700.704.7×10−134.7\times10^{-13}

Small couplings converge slowest. The cloud peaks near r=4/α2r=4/\alpha^2, which for α=0.05\alpha=0.05 is 1600M1600M, so the series variable must get very close to 11 before the solution is captured, and the terms decay slowly. A 10−410^{-4} error is far below what the Lab displays. It is still the worst case, and the worst case is the number to quote.

A published check: Dolan's Table I

Dolan lists, for six spins, the coupling of the fastest-growing l=m=1l=m=1 cloud and its growth rate. We find each maximum with a golden-section search on our solver.

Table 3.2 Maximum growth rate: published and recomputed.
SpinPublished α\alphaPublished MωIM\omega_IOur α\alphaOur MωIM\omega_IDifference
0.70.70.1870.1873.33×10−103.33\times10^{-10}0.18700.18703.335×10−103.335\times10^{-10}0.14 %0.14\,\%
0.80.80.2310.2312.16×10−92.16\times10^{-9}0.23070.23072.164×10−92.164\times10^{-9}0.19 %0.19\,\%
0.90.90.2930.2931.55×10−81.55\times10^{-8}0.29290.29291.553×10−81.553\times10^{-8}0.17 %0.17\,\%
0.950.950.3430.3434.88×10−84.88\times10^{-8}0.34270.34274.878×10−84.878\times10^{-8}0.04 %0.04\,\%
0.980.980.3930.3931.11×10−71.11\times10^{-7}0.39280.39281.112×10−71.112\times10^{-7}0.20 %0.20\,\%
0.990.990.4210.4211.50×10−71.50\times10^{-7}0.42080.42081.504×10−71.504\times10^{-7}0.29 %0.29\,\%

Dolan, Table I

Every difference is smaller than the rounding of the printed three figures. This is a reproduction of one table, not of the whole paper. The script is compare_hydrogenic_growth.py, and its saved output is hydrogenic-comparison-outputs.json.

The overtone trap

The secant iteration converges to whichever zero is nearest, and at large coupling the ground state and the first overtone are close. In the hydrogenic picture their real parts are α(1−α2/8)\alpha(1-\alpha^2/8) and α(1−α2/18)\alpha(1-\alpha^2/18). At α=0.47\alpha=0.47 these differ by only about 1.51.5 percent.

Worked example 2. For a=0.55a=0.55 and α=0.47\alpha=0.47, starting from the hydrogenic guess converges to MωR=0.4622M\omega_R=0.4622. That is the overtone with one radial node. Starting instead from the solution at a=0.54a=0.54 gives the ground state, MωR=0.45190M\omega_R=0.45190 with MωI=−1.354×10−3M\omega_I=-1.354\times10^{-3}: the cloud is absorbed. A guard that rejects a solution whose real part is more than 88 percent from the hydrogenic value cannot catch this, because the two levels are much closer than that.

Our grid avoids the trap by continuation. From α=0.15\alpha=0.15 on, each new coupling starts from a straight-line extrapolation of the two previous solutions of the same spin, so the solver follows one level as it moves. Every stored entry is also checked against the superradiance condition, ωI>0\omega_I>0 exactly when ωR<mΩH\omega_R<m\Omega_H. That test catches a wrong root or a wrong angular eigenvalue, but it cannot tell levels apart, because an overtone obeys the same condition. Continuation and a smooth curve are what keep the grid on the ground state.

The grid behind the Lab

The Lab does not solve the continued fraction in the browser. It reads an offline grid made with build_growth_reference_grid.py:

  1. Spins from 00 to 0.980.98 in steps of 0.020.02, plus 0.990.99.
  2. Couplings from 0.050.05 to 0.700.70 in steps of 0.010.01.
  3. For each entry, MωIM\omega_I to four significant figures and MωRM\omega_R to six.

Between grid points the Lab writes the rate as ωI=g (mΩH−ωR)\omega_I=g\,(m\Omega_H-\omega_R) and interpolates ln⁡g\ln g, which is smooth, against ln⁡α\ln\alpha. This keeps the zero of the growth rate exactly at the superradiance threshold. At seven points chosen between grid lines, including the overtone case above, the interpolated rate agrees with a direct solution to within 0.830.83 percent.

Lab tasks

  1. Set spin 0.990.99 and slide the frequency until the growth curve peaks. Compare the peak coupling with Table 3.2.
  2. Repeat at spin 0.50.5. Note where the dashed hydrogenic curve and the solid curve agree, and where they separate.
  3. Pick the preset Right at the threshold and confirm that the cloud's growth rate and the scattered wave's gain change sign at the same frequency.

Exercises with explained answers

  1. Why must the root satisfy Re q<0\mathrm{Re}\,q<0?
  2. Why does a deeper fraction matter more at small coupling?
  3. You find a growing mode with ωR>mΩH\omega_R>m\Omega_H. What went wrong?
  4. Why interpolate ln⁡g\ln g instead of ωI\omega_I directly?
Answers
  1. With Re q>0\mathrm{Re}\,q>0 the factor eqre^{qr} grows at large radius. That describes a field fed from infinity, not a cloud held by the hole.
  2. The cloud extends to about 4M/α24M/\alpha^2. The series must reproduce the solution out to that radius, where the expansion variable is close to 11, so more terms are needed before the tail stops changing.
  3. The flux identity forbids it, so either the iteration converged to a spurious root or an overtone, the depth is too small, or the angular eigenvalue was computed for the wrong c2c^2. Repeat with a deeper fraction and a guess continued from a neighbouring solution.
  4. ωI\omega_I changes by orders of magnitude and changes sign at the threshold. Linear interpolation of it would move the zero away from ωR=mΩH\omega_R=m\Omega_H. The factor gg is positive and smooth on both sides, so interpolating it keeps the threshold exact.

The scattered wave can be checked the same way against a public table. The method guide does that: recomputing a published superradiance amplification table.

Try it in the Lab

Compare the solid and dashed growth curves at spin 0.99, then at spin 0.5, and note where they agree. Open the black hole superradiance Lab

Sources

  1. Dolan, Instability of the massive Klein-Gordon field on the Kerr spacetime, §III, Eqs. (33)-(34)
  2. Brito, Cardoso and Pani, Superradiance, §5.6.2, Eq. (5.27)

Keep reading

What this page links to directly

Spinning black holes and boson clouds · Reading path

From an amplified wave to a growing cloud

  1. ArticleWhy can a spinning black hole make the waves around it ever stronger?
  2. ArticleWaves, spin and the scales of a Kerr black hole
  3. ArticleConserved flux, physical units and a first growth estimate
  4. You are hereSolving for the bound cloud's growth rate reproducibly
  5. ArticleRecomputing a published superradiance amplification table
  6. ArticleHow self-interactions change boson-cloud limits from spins and gravitational waves
Something broken, confusing, or missing on this page?Tell us
What kind of feedback?

Sent with this page’s address, its Lab ID, the site language and your device type. Please leave out personal details. Feedback is kept for up to 12 months.Privacy policy