QuasinormalModes.jl

A Julia package for computing discrete eigenvalues of second order ODEs
Author lucass-carneiro
Popularity
30 Stars
Updated Last
4 Months Ago
Started In
November 2020

QuasinormalModes.jl

logo

This is a Julia package whose primary objective is to compute the discrete eigenvalues of second order ordinary differential equations. It was written with the intent to be used for computing quasinormal modes (QNMs) of black holes in General Relativity efficiently and accurately. QNMs are the discrete spectrum of characteristic oscillations produced by black holes when perturbed. These oscillations decay exponentially in time and thus it's said that QNMs contain a real \omega_R oscillation frequency and an imaginary \omega_I frequency that represents the mode's decay rate. These frequencies are often described by a discrete eigenvalue in a second order ODE. For a comprehensive review see [1].

To compute eigenvalues (and thus quasinormal frequencies) this package uses the Asymptotic Iteration Method (AIM) [2], more specifically the "improved" version of the AIM as described in [3]. The AIM can be used to find the eigenvectors and eigenvalues of any second order differential equation (the class of problems with which the quasinormal modes belong) and thus this package can be used not only in the context of General Relativity but can also be used to find the discrete eigenvalues of other systems such as the eigenenergies of a quantum system described by the time independent Schrödinger equation.

Docs Docs Build Status codecov

Zenodo archive

JOSS paper

Author

Lucas T. Sanches, Centro de Ciências Naturais e Humanas, Universidade Federal do ABC (UFABC).

License

QuasinormalModes is licensed under the MIT license.

Installation

This package can be installed using the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run

pkg> add QuasinormalModes

and then type backspace to exit back to the REPL.

Using

For detailed usage instructions please read the documentation. You can also find examples here.

Contributing

There are many ways to contribute to this package:

  • Report an issue if you encounter some odd behavior, or if you have suggestions to improve the package.
  • Contribute with code addressing some open issues, that add new functionality or that improve the performance.
  • When contributing with code, add docstrings and comments, so others may understand the methods implemented.
  • Contribute by updating and improving the documentation.

Used By Packages

No packages found.