qnm.spinsequence¶
Follow a QNM labeled by (s,l,m,n) as spin varies from a=0 upwards.
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: sqrt(double epsilon)]
Tolerance for root-finding omega
- cf_tol: float [defailt: 1e-10]
Tolerance for continued fraction calculation
- 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, interp_only, …])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)Solve for the “spin sequence”, i.e. -
__call__
(self, a, store=False, interp_only=False, resolve_if_found=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.
- interp_only: bool, optional [default: False]
If False, use the Leaver solver to polish the interpolated guess. If True, just use the interpolated guess.
- resolve_if_found: bool, optional [default: False]
If False, and the value of a is found in the sequence, the previously-found solution is returned. If True, the Leaver solver will be used to polish the root with the current parameters for the solver.
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
orqnm.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()
.