TeukolskyQNMFunctions
Documentation for TeukolskyQNMFunctions.
TeukolskyQNMFunctions
computes the quasinormal modes and eigenfunctions for the spin s Teukolsky equation using a horizon penetrating, hyperboloidally compactified coordinate system. The main advantage of using these coordinates is that the quasinormal wavefunctions are finite valued from the black hole to future null infinity.
Currently, this code uses a Chebyshev pseudospectral method to compute the radial part of the eigenfunctions, and a spectral method to compute the angular part of the eigenfunctions The angular spectral method was originally introduced by Cook and Zalutskiy).
TeukolskyQNMFunctions.RadialODE
TeukolskyQNMFunctions.RadialODE.Chebyshev
TeukolskyQNMFunctions.Spheroidal
TeukolskyQNMFunctions.TeukolskyQNMFunctions
TeukolskyQNMFunctions.F
TeukolskyQNMFunctions.RadialODE.Chebyshev.cheb_pts
TeukolskyQNMFunctions.RadialODE.Chebyshev.cheb_pts
TeukolskyQNMFunctions.RadialODE.Chebyshev.mat_D1
TeukolskyQNMFunctions.RadialODE.Chebyshev.mat_X
TeukolskyQNMFunctions.RadialODE.Chebyshev.to_cheb
TeukolskyQNMFunctions.RadialODE.Chebyshev.to_real
TeukolskyQNMFunctions.RadialODE.eig_vals_vecs
TeukolskyQNMFunctions.RadialODE.radial_discretized_eqn_a
TeukolskyQNMFunctions.RadialODE.radial_discretized_eqn_c
TeukolskyQNMFunctions.Spheroidal.compute_A
TeukolskyQNMFunctions.Spheroidal.compute_B
TeukolskyQNMFunctions.Spheroidal.compute_C
TeukolskyQNMFunctions.Spheroidal.compute_M_matrix
TeukolskyQNMFunctions.Spheroidal.compute_l_min
TeukolskyQNMFunctions.Spheroidal.eig_vals_vecs
TeukolskyQNMFunctions.Spheroidal.mat_L
TeukolskyQNMFunctions.Spheroidal.mat_Y
TeukolskyQNMFunctions.compute_om
TeukolskyQNMFunctions.TeukolskyQNMFunctions
— ModuleTeukolskyQNMFunctions.jl computes the quasinormal modes and eigenfunctions for the spin s Teukolsky equation using a horizon penetrating, hyperboloidally compactified coordinate system. The main advantage of using these coordinates is that the quasinormal wavefunctions are finite valued from the black hole to future null infinity.
TeukolskyQNMFunctions.F
— Methodfunction F(
nr::Integer,
nl::Integer,
s::Integer,
l::Integer,
m::Integer,
a::T,
om::Complex{T},
) where {T<:Real}
Compute the absolute difference of Lambda seperation constant for radial and angular ODEs.
TeukolskyQNMFunctions.compute_om
— Methodcompute_om(
nr::Integer,
nl::Integer,
s::Integer,
l::Integer,
m::Integer,
a::Real,
om::Complex;
tolerance::Real = 1e6,
epsilon::Real = 1e-6,
gamma::Real = 1.0,
verbose::Bool = false
) where T<:Real
Search for quasinormal mode frequency in the complex plane using Newton's method.
Arguments
nr
: number of radial Chebyshev collocation pointsnl
: number of spherical harmonic termss
: spin of the field in the Teukolsky equationl
: l angular numberm
: m angular numbera
: black hole spinom
: guess for the initial quasinormal modetolerance
: tolerance for root finderepsilon
: derivative finite difference lengthgamma
: search gammaverbose
: true: print out intermediate results as searches for root
Modules = [TeukolskyQNMFunctions.CustomTypes]
TeukolskyQNMFunctions.Spheroidal
— ModuleMethods to compute spin-weighted spheroidal harmonics
TeukolskyQNMFunctions.Spheroidal.compute_A
— Methodcompute_A(s::Integer, l::Integer, m::Integer)
See Appendix A of J. Ripley, Class.Quant.Grav. 39 (2022) 14, 145009, Class.Quant.Grav. 39 (2022) 145009 arXiv:2202.03837
TeukolskyQNMFunctions.Spheroidal.compute_B
— Methodcompute_B(s::Integer, l::Integer, m::Integer)
See Appendix A of J. Ripley, Class.Quant.Grav. 39 (2022) 14, 145009, Class.Quant.Grav. 39 (2022) 145009 arXiv:2202.03837
TeukolskyQNMFunctions.Spheroidal.compute_C
— Methodcompute_C(s::Integer, l::Integer, m::Integer)
See Appendix A of J. Ripley, Class.Quant.Grav. 39 (2022) 14, 145009, Class.Quant.Grav. 39 (2022) 145009 arXiv:2202.03837
TeukolskyQNMFunctions.Spheroidal.compute_M_matrix
— Methodcompute_M_matrix(nl::Integer, s::Integer, m::Integer, c::Complex)
Compute the matrix for computing spheroidal-spherical mixing and seperation coefficients.
TeukolskyQNMFunctions.Spheroidal.compute_l_min
— Methodcompute_l_min(s::Integer, m::Integer)
Compute the minimum l value
TeukolskyQNMFunctions.Spheroidal.eig_vals_vecs
— Methodeig_vals_vecs(nl::Integer, neig::Integer, s::Integer, m::Integer, c::Complex)
Compute the eigenvectors and eigenvalues for the spheroidal equation. Returns eigenvalues λs (smallest to largest), and eigenvectors as an array (access nth eigenvector through v[:,n]); i.e. returns (λs, vs)
TeukolskyQNMFunctions.Spheroidal.mat_L
— Methodfunction mat_L(nl::Integer, s::Integer, m::Integer)
Compute the matrix for spherical laplacian (s=0) in spectral space.
TeukolskyQNMFunctions.Spheroidal.mat_Y
— Methodmat_Y(nl::Integer, s::Integer, m::Integer)
Compute the matrix for y in spectral space.
TeukolskyQNMFunctions.RadialODE
— ModuleOrdinary differential equation in radial direction for the hyperboloidally compactified Teukolsky equation.
TeukolskyQNMFunctions.RadialODE.eig_vals_vecs
— Methodeig_vals_vecs(
nr::Integer,
s::Integer,
m::Integer,
a::T,
om::Complex{T}
) where T<:Real
Compute eigenvectors and eigenvalues for the radial equation using a pseudospectral Chebyshev polynomial method. The black hole mass is always one.
TeukolskyQNMFunctions.RadialODE.radial_discretized_eqn_a
— Methodfunction radial_discretized_eqn_a(
nr::Integer,
s::Integer,
m::Integer,
a::T,
bhm::T,
om::Complex{T},
rmin::T,
rmax::T
) where T<:Real
Discretization that uses fast, well conditioned method of
S. Olver and A. Townsend,
SIAM review, 2013,
arXiv:1202.1347
TeukolskyQNMFunctions.RadialODE.radial_discretized_eqn_c
— Methodfunction radial_discretized_eqn_c(
nr::Integer,
s::Integer,
m::Integer,
a::T,
bhm::T,
om::Complex{T},
rmin::T,
rmax::T
) where T<:Real
Discretization that uses Chebyshev pseudospectral method.
TeukolskyQNMFunctions.RadialODE.Chebyshev
— ModuleMethods for position space Chebyshev methods.
TeukolskyQNMFunctions.RadialODE.Chebyshev.cheb_pts
— Methodcheb_pts(xmin::Real, xmax::Real, nx::Integer)
Computes Chebyshev points on interval [xmin,xmax]
TeukolskyQNMFunctions.RadialODE.Chebyshev.cheb_pts
— Methodcheb_pts([T,] nx::Integer)
Computes Generates nx Chebyshev points in [-1,1]
TeukolskyQNMFunctions.RadialODE.Chebyshev.mat_D1
— Methodmat_D1(
xmin::Real,
xmax::Real,
nx::Integer,
)
Computes derivative matrix D1 in real space.
TeukolskyQNMFunctions.RadialODE.Chebyshev.mat_X
— Methodmat_X(
xmin::Real,
xmax::Real,
nx::Integer
)
Computes matrix for multiplication of x in real space.
TeukolskyQNMFunctions.RadialODE.Chebyshev.to_cheb
— Methodto_cheb(f::Vector{<:Number})
Convert to Chebyshev space. We assume we are working with Chebyshev-Gauss-Lobatto points.
TeukolskyQNMFunctions.RadialODE.Chebyshev.to_real
— Methodto_real(c::Vector{<:Number})
Convert to Real space. We assume we are working with Chebyshev-Gauss-Lobatto points.