qnm.angular¶
Solve the angular Teukolsky equation via spectral decomposition.
For a given complex QNM frequency ω, the separation constant and
spherical-spheroidal decomposition are found as an eigenvalue and
eigenvector of an (infinite) matrix problem. The interface to solving
this problem is C_and_sep_const_closest()
, which returns a
certain eigenvalue A and eigenvector C. The eigenvector contains the
C coefficients in the equation
Here ℓmin=max(|m|,|s|) (see l_min()
), and ℓmax can be chosen at
run time. The C coefficients are returned as a complex ndarray, with
the zeroth element corresponding to ℓmin. You can get the associated
ℓ values by calling ells()
.
Functions
C_and_sep_const_closest (A0, s, c, m, l_max) |
Get a single eigenvalue and eigenvector of decomposition matrix, where the eigenvalue is closest to some guess A0. |
M_matrix (s, c, m, l_max) |
Spherical-spheroidal decomposition matrix truncated at l_max. |
M_matrix_elem (s, c, m, l, lprime) |
The (l, lprime) matrix element from the spherical-spheroidal decomposition matrix from Eq. |
M_matrix_old (s, c, m, l_max) |
Legacy function. |
ells (s, m, l_max) |
Vector of ℓ values in C vector and M matrix. |
give_M_matrix_elem_ufunc (s, c, m) |
Legacy function. |
l_min (s, m) |
Minimum allowed value of l for a given s, m. |
sep_const_closest (A0, s, c, m, l_max) |
Gives the separation constant that is closest to A0. |
sep_consts (s, c, m, l_max) |
Finds eigenvalues of decomposition matrix, i.e. |
swsphericalh_A (s, l, m) |
Angular separation constant at a=0. |
-
qnm.angular.
C_and_sep_const_closest
(A0, s, c, m, l_max)[source]¶ Get a single eigenvalue and eigenvector of decomposition matrix, where the eigenvalue is closest to some guess A0.
Parameters: - A0: complex
Value close to the desired separation constant.
- s: int
Spin-weight of interest
- c: complex
Oblateness of spheroidal harmonic
- m: int
Magnetic quantum number
- l_max: int
Maximum angular quantum number
Returns: - complex, complex ndarray
The first element of the tuple is the eigenvalue that is closest in value to A0. The second element of the tuple is the corresponding eigenvector. The 0th element of this ndarray corresponds to
l_min()
.
-
qnm.angular.
M_matrix
(s, c, m, l_max)[source]¶ Spherical-spheroidal decomposition matrix truncated at l_max.
Parameters: - s: int
Spin-weight of interest
- c: complex
Oblateness of the spheroidal harmonic
- m: int
Magnetic quantum number
- l_max: int
Maximum angular quantum number
Returns: - complex ndarray
Decomposition matrix
-
qnm.angular.
M_matrix_elem
(s, c, m, l, lprime)[source]¶ The (l, lprime) matrix element from the spherical-spheroidal decomposition matrix from Eq. (55).
Parameters: - s: int
Spin-weight of interest
- c: complex
Oblateness of the spheroidal harmonic
- m: int
Magnetic quantum number
- l: int
Angular quantum number of interest
- lprime: int
Primed quantum number of interest
Returns: - complex
Matrix element M_{l, lprime}
-
qnm.angular.
M_matrix_old
(s, c, m, l_max)[source]¶ Legacy function. Same as
M_matrix()
except trying to be cute with ufunc’s, requiring scope capture with temp func insidegive_M_matrix_elem_ufunc()
, which meant that numba could not speed up this method. Remains here for testing purposes. See documentation forM_matrix()
parameters and return value.
-
qnm.angular.
ells
(s, m, l_max)[source]¶ Vector of ℓ values in C vector and M matrix.
The format of the C vector and M matrix is that the 0th element corresponds to l_min(s,m) (see
l_min()
).Parameters: - s: int
Spin-weight of interest
- m: int
Magnetic quantum number
- l_max: int
Maximum angular quantum number
Returns: - int ndarray
Vector of ℓ values, starting from l_min
-
qnm.angular.
give_M_matrix_elem_ufunc
(s, c, m)[source]¶ Legacy function. Gives ufunc that implements matrix elements of the spherical-spheroidal decomposition matrix. This function is used by
M_matrix_old()
.Parameters: - s: int
Spin-weight of interest
- c: complex
Oblateness of the spheroidal harmonic
- m: int
Magnetic quantum number
Returns: - ufunc
Implements elements of M matrix
-
qnm.angular.
l_min
(s, m)[source]¶ Minimum allowed value of l for a given s, m.
The formula is l_min = max(|m|,|s|).
Parameters: - s: int
Spin-weight of interest
- m: int
Magnetic quantum number
Returns: - int
l_min
-
qnm.angular.
sep_const_closest
(A0, s, c, m, l_max)[source]¶ Gives the separation constant that is closest to A0.
Parameters: - A0: complex
Value close to the desired separation constant.
- s: int
Spin-weight of interest
- c: complex
Oblateness of spheroidal harmonic
- m: int
Magnetic quantum number
- l_max: int
Maximum angular quantum number
Returns: - complex
Separation constant that is the closest to A0.
-
qnm.angular.
sep_consts
(s, c, m, l_max)[source]¶ Finds eigenvalues of decomposition matrix, i.e. the separation constants, As.
Parameters: - s: int
Spin-weight of interest
- c: complex
Oblateness of spheroidal harmonic
- m: int
Magnetic quantum number
- l_max: int
Maximum angular quantum number
Returns: - complex ndarray
Eigenvalues of spherical-spheroidal decomposition matrix
-
qnm.angular.
swsphericalh_A
(s, l, m)[source]¶ Angular separation constant at a=0.
- Eq. (50). Has no dependence on m. The formula is
- A_0 = l(l+1) - s(s+1)
Parameters: - s: int
Spin-weight of interest
- l: int
Angular quantum number of interest
- m: int
Magnetic quantum number, ignored
Returns: - int
Value of A(a=0) = l(l+1) - s(s+1)