qnm.spinsequence

Follow a QNM labeled by (s,l,m,n) as spin varies from a=0 upwards.

TODO Documentation.

Classes

KerrSpinSeq(*args, **kwargs) Object to follow a QNM up a sequence in a, starting from a=0.
class qnm.spinsequence.KerrSpinSeq(*args, **kwargs)[source]

Object to follow a QNM up a sequence in a, starting from a=0. Values for omega and the separation constant from one value of a are used to seed the root finding for the next value of a, to maintain continuity in a when separation constant order can change. Uses NearbyRootFinder to actually perform the root-finding.

Parameters:
a_max: float [default: .99]

Maximum dimensionless spin of black hole for the sequence, 0 <= a_max < 1.

delta_a: float [default: 0.005]

Step size in a for following the sequence from a=0 to a_max

delta_a_min: float [default: 1.e-5]

Minimum step size in a.

delta_a_max: float [default: 4.e-3]

Maximum step size in a.

s: int [default: 2]

Spin of field of interest

m: int [default: 2]

Azimuthal number of mode of interest

l: int [default: 2]

The l-number of a sequence starting from the analytically-known value at a=0

l_max: int [default: 20]

Maximum value of l to include in the spherical-spheroidal matrix for finding separation constant and mixing coefficients. Must be sufficiently larger than l of interest that angular spectral method can converge. The number of l’s needed for convergence depends on a.

omega_guess: complex [default: from schwarzschild.QNMDict]

Initial guess of omega for root-finding

tol: float [default: 1e-10]

Tolerance for root-finding

n: int [default: 0]

Overtone number of interest (sets the inversion number for infinite continued fraction in Leaver’s method)

Nr: int [default: 300]

Truncation number of radial infinite continued fraction. Must be sufficiently large for convergence.

Nr_min: int [default: Nr]

Minimum number of terms for evaluating continued fraction.

Nr_max: int [default: 4000]

Maximum number of terms for evaluating continued fraction.

r_N: complex [default: 0.j]

Seed value taken for truncation of infinite continued fraction. UNUSED, REMOVE

Methods

__call__(self, a[, store]) Solve for omega, A, and C[] at a given spin a.
build_interps(self) Build interpolating functions for omega(a) and A(a).
do_find_sequence(self) TODO Document
__call__(self, a, store=False)[source]

Solve for omega, A, and C[] at a given spin a.

This uses the interpolants, based on the solved sequence, for initial guesses of omega(a) and A(a).

Parameters:
a: float

Value of spin, 0 <= a < 1.

store: bool, optional [default: False]

Whether or not to save newly solved data in sequence. Warning, this can produce a slowdown if a lot of data needs to be moved.

Returns:
complex, complex, complex ndarray

The first element of the tuple is omega. The second element of the tuple is A. The third element of the tuple is the array of complex spherical-spheroidal decomposition coefficients. For documentation on the format of the spherical-spheroidal decomposition coefficient array, see qnm.angular or qnm.angular.C_and_sep_const_closest().

build_interps(self)[source]

Build interpolating functions for omega(a) and A(a).

This is automatically called at the end of do_find_sequence().

do_find_sequence(self)[source]

TODO Document