qnm.schwarzschild.overtonesequence

Follow a Schwarzschild QNM sequence (s,l) from n=0 upwards.

The class SchwOvertoneSeq makes it possible to find successive overtones (n’s) of a QNM labeled by (s,l), in Schwarzschild (a=0). See its documentation for more details.

Classes

SchwOvertoneSeq(*args, **kwargs) Object to follow a sequence of Schwarzschild overtones, starting from n=0.
class qnm.schwarzschild.overtonesequence.SchwOvertoneSeq(*args, **kwargs)[source]

Object to follow a sequence of Schwarzschild overtones, starting from n=0. First two overtone seeds come from approx.dolan_ottewill_expansion, and afterwards linear extrapolation on the solutions is used to seed the root finding for higher values of n. Uses qnm.nearby.NearbyRootFinder to actually perform the root-finding.

Parameters:
n_max: int [default: 12]

Maximum overtone number to search for (must be positive).

s: int [default: 2]

Spin weight of field of interest.

[The m parameter is omitted because this is just for Schwarzschild.]
l: int [default: 2]

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

tol: float [default: 1e-10]

Tolerance for root-finding.

Nr: int [default: 300]

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

r_N: complex [default: 0.j]

Seed value taken for truncation of infinite continued fraction.

Examples

Suppose you want the n=5 overtone for (s=-1, l=3):

>>> from qnm.schwarzschild.overtonesequence import SchwOvertoneSeq
>>> seq = SchwOvertoneSeq(s=-1, l=3, n_max=5)
>>> seq.find_sequence()
>>> "{:.10f}".format(seq.omega[5])
'0.5039017454-1.1703558890j'

Later, you want to go out to n=8:

>>> seq.extend(n_max=8)
>>> "{:.10f}".format(seq.omega[8])
'0.4227909294-1.9136575598j'
Attributes:
A: float

Value of the angular separation constant.

n: array of int

Overtone numbers.

omega: np.array of complex

The QNM frequencies along the overtone sequence, element i is overtone i.

cf_err: np.array of float

Estimate of continued fraction truncation error in solving for QNM frequency.

n_frac: np.array of int

Truncation number of continued fraction.

solver: NearbyRootFinder

Instance of qnm.nearby.NearbyRootFinder that is used to find the QNMs.

Methods

extend([n_max]) Extend the current overtone sequence to a greater n_max.
find_sequence() Alias for extend()
extend(n_max=None)[source]

Extend the current overtone sequence to a greater n_max.

Parameters:
n_max: int, optional [default: None]

If is None, use the value of self.n_max . If given, set self.n_max to this new value and proceed.

Raises:
optimize.nonlin.NoConvergence

If a root can’t be found within a few [TODO make param?] attempted inversion numbers.

find_sequence()[source]

Alias for extend()