Computational supplemental material
Authors: Dr. Davide Batic, Dr. Denys Dutykh and Zeinabou Ahmed Babou (Mathematics Department, Khalifa University of Science and Technology, Abu Dhabi, UAE)
Repository: https://github.com/dutykh/dirtybh
Numerical method: collocation-type spectral method based on Chebyshev polynomials, coupled with a polynomial (quadratic) eigenvalue solver
Programming languages: Maple™ and MATLAB™
This repository contains the computational supplemental material for the following peer-reviewed article:
D. Batic, D. Dutykh and Z. A. Babou, Quasi-normal modes of non-commutative geometry-inspired dirty black holes, Proc. R. Soc. A 481 (2318): 20250021 (2025). Open Access. DOI: 10.1098/rspa.2025.0021. Preprint: arXiv:2507.19107 [gr-qc].
The codes collected here compute the quasi-normal mode (QNM) spectrum of a non-commutative geometry-inspired dirty black hole, for scalar, electromagnetic and gravitational (axial) perturbations, in both the non-extremal and the extremal configuration.
The computation is split into a symbolic stage and a numerical stage. Maple carries out the derivation of the master equation, the change of variables that compactifies the black hole exterior onto a finite interval, the ansatz that encodes the quasi-normal boundary conditions, the classification of the singularities of the resulting ordinary differential equation, and finally the assembly of the spectral matrices. MATLAB, driven by the Advanpix Multiprecision Computing Toolbox, then solves the resulting quadratic eigenvalue problem in arbitrary precision and produces the convergence diagram.
The abstract of the article reads:
We investigate the quasinormal modes (QNMs) of noncommutative geometry-inspired dirty black holes, focusing on both non-extremal and extremal configurations. These gravitational objects, characterized by smeared energy distributions within a modified de Sitter-like equation of state, modify the classical Schwarzschild metric and regularize central singularities. We employ a spectral method based on Chebyshev polynomials to solve the eigenvalue problem for scalar, electromagnetic, and gravitational perturbations. Our results reveal new overdamped modes indicative of rapid decay without oscillation, particularly prominent in near-extremal and extremal regimes. Additionally, we establish that the QNMs converge to classical Schwarzschild values for large mass parameters, validating our method's robustness. Our findings highlight the impact of dirtiness and noncommutative effects on black hole QNM spectra, offering potential observational signatures for distinguishing these objects in gravitational-wave detections.
The background is a static, spherically symmetric dirty black hole, that is, a black hole surrounded by a non-trivial matter distribution. Its line element carries two independent metric functions,
The function
Non-commutativity of spacetime coordinates is implemented, following the
standard prescription, by replacing the point-like source with a Gaussian
smeared energy density of minimal width
where
Every routine in this repository works with the two dimensionless quantities
so that
The second form makes the physical content transparent: the dirtiness is
sourced by the fraction of the total mass that has not yet been enclosed at
radius
These are exactly the expressions coded in matrixassembler_nonext.mpl and
matrixassembler_ext.mpl.
The horizon is the root of
-
Non-extremal case. For
$\mu$ above the critical value there are two horizons; the codes track the outer one,$x_h$ , obtained fromfsolve(f(x) = 0, x = 0.98). As$\mu$ grows,$x_h \to 1$ and the classical Schwarzschild results are recovered. -
Extremal case. At the critical mass the two horizons merge into a degenerate one. It is found by solving the double-root conditions
$f = 0$ and$\partial f / \partial x = 0$ simultaneously, which yields$\mu_{e} \simeq 1.90$ and$x_{e} \simeq 0.79$ , that is$M \simeq 1.90\sqrt{\theta}$ and$r_{e} \simeq 3.0\sqrt{\theta}$ , the well-known critical values of the non-commutative Schwarzschild geometry. Below$\mu_{e}$ no horizon forms.
A useful identity, used implicitly by the codes, is that
The distinction matters numerically, not just physically: at a non-degenerate horizon the tortoise coordinate diverges logarithmically, whereas at a degenerate horizon it diverges as a simple pole. The two cases therefore require different ansatzes, and this is why the repository carries two parallel sets of files throughout.
Linear perturbations of spin
with the effective potential for a dirty background
The three physically relevant spins are covered:
| Perturbation | Potential | |
|---|---|---|
| 0 | massless scalar | |
| 1 | electromagnetic |
|
| 2 | gravitational, axial |
Setting
Quasi-normal modes are the solutions that are purely ingoing at the horizon and purely outgoing at spatial infinity,
The admissible frequencies
The black hole exterior
so that
Rather than imposing the boundary conditions as extra algebraic constraints, the divergent oscillatory behaviour at both ends is factored out analytically. The remaining amplitude is regular on the closed interval, so it can be expanded in Chebyshev polynomials with no boundary rows at all. Only solutions with the correct asymptotics survive, and every computed eigenvalue is a genuine QNM.
The factorization requires the near-horizon scale of the tortoise coordinate, and this is where the two cases part company.
Non-extremal case. The relevant constant is
with
Extremal case. Here
The regular amplitude is expanded in a truncated Chebyshev series,
and the transformed ordinary differential equation is collocated at the
The transformed equation is quadratic in the frequency and second order in
with
The discrete problem is the quadratic (polynomial) eigenvalue problem
solved in MATLAB with polyeig. The three matrices are real; the imaginary
unit is attached to the linear term at solve time, which is why the Maple side
exports
The Chebyshev coefficients of a function with endpoint singularities of the
type occurring here span many orders of magnitude, and the quadratic eigenvalue
problem is severely ill-conditioned: in double precision the computed spectrum
is dominated by round-off well before the physical modes are resolved. The
codes therefore run at a working precision matched to the truncation order, by
default Digits and mp.Digits equal to
dirtybh/
├── 01-NONEXTREME CASE_NCGDBHs-SUPPLEMENTAL MATERIAL.mw Maple worksheet: full symbolic derivation, non-extremal case
├── 02-EXTREME CASE_NCDBHs-SUPPLEMENTAL MATERIAL.mw Maple worksheet: full symbolic derivation, extremal case
├── Effective_Potential_in_r_non_extreme.mw Maple worksheet: effective potential in r, non-extremal case
├── Effective_Potential_in_r_extreme.mw Maple worksheet: effective potential in r, extremal case
├── matrixassembler_nonext.mpl Maple procedure: assembles M0, M1, M2, non-extremal case
├── matrixassembler_ext.mpl Maple procedure: assembles M0, M1, M2, extremal case
├── chaseQNMs.m MATLAB driver: solves the eigenvalue problem and plots
├── LICENSE GNU Lesser General Public License, version 2.1
└── README.md This file
The matrices exchanged between Maple and MATLAB live in a data/
subdirectory, which is not tracked by git and must be created before the first
run (see Section 7).
Maple 2022.1 worksheet. Complete symbolic derivation for the non-extremal configuration, annotated step by step with the corresponding equation numbers of the manuscript. It proceeds through:
- definition of the master perturbation equation;
- introduction of the quasi-normal ansatz;
- derivation of the transformed equation, and an independent verification that the transformed and original forms are equivalent;
- the change of independent variable, performed with
PDEtools[dchange], onto the compactified interval; - classification of the points
$y = \pm 1$ for the coefficient functions$F(y)$ ,$V(y)$ ,$S_2(y)$ ,$S_1(y)$ ,$S_0(y)$ : the worksheet establishes, for instance, that$S_1$ and$S_0$ each have a pole of order 2 at$y = 1$ and a zero of order 3 at$y = -1$ . These results constitute the singularity table of the article; - definition of
$M_0(y)$ ,$N_1(y)$ ,$N_0(y)$ and$C_2(y)$ ,$C_1(y)$ ,$C_0(y)$ , and evaluation of the limits that define the coefficients$\Lambda_1$ ,$\Lambda_0$ and$B_2$ ,$B_1$ ,$B_0$ , each checked against the closed forms quoted in the article; - after an explicit
restart, definition of the entriesL00hatthroughL22hatthat the numerical assembler implements.
Note. The worksheet contains a deliberate restart partway through. The
second half must be executed from that fresh start, as the annotations in the
worksheet indicate.
Maple 2022.1 worksheet. The counterpart of the above for the extremal
configuration, following the same seven steps with the extremal ansatz. The
singularity structure differs, as the worksheet documents explicitly: restart before the definition of
L00ehat through L22ehat.
Maple 18 worksheets. They construct the effective potential directly in the
radial variable UNCSCHW in the source), and perform the change
of variables to the compactified coordinate. They are self-contained and serve
to validate the potential used by the assembler routines; they are not part of
the eigenvalue pipeline.
These two worksheets were written under an older Maple release than the two above, and open in any later version.
Defines the Maple procedure
MatrixAssembler(d, n, s, L, mu, p)
| Argument | Type | Meaning |
|---|---|---|
d |
integer | number of digits used in the computation |
n |
integer | number of Chebyshev modes, and the size of the matrices |
s |
numeric | spin: 0 (scalar), 1 (electromagnetic), 2 (gravitational) |
L |
numeric | angular momentum |
mu |
numeric | dimensionless black hole mass |
p |
string | path under which the assembled matrices are written |
The procedure locates the event horizon, prints the value of
<p>/data/M0_<n>.mat
<p>/data/M1_<n>.mat
<p>/data/M2_<n>.mat
in MATLAB ASCII format via ExportMatrix. An error is raised if
The extremal counterpart, with the signature
MatrixAssembler(d, n, s, L, p)
The argument mu is absent: in the extremal case the mass is not free. The
procedure solves the double-root system for
Because the file names coincide, the extremal and non-extremal matrices must be
kept in separate data/ directories, or generated and consumed one case at a
time.
The MATLAB driver. It loops over a list of truncation orders, by default
list = [200, 150, 100];and for each order sets the working precision to match, reads the three matrices produced by Maple, and solves the quadratic eigenvalue problem:
mp.Digits(n);
M0 = mp.read(strcat('data/M0_', nstr, '.mat'));
M1 = mp.read(strcat('data/M1_', nstr, '.mat'));
M2 = mp.read(strcat('data/M2_', nstr, '.mat'));
e = polyeig(M0, mp('1i')*M1, M2);It finally overlays the spectra for all truncation orders in the complex
frequency plane,
One line must be edited before the first run:
addpath('/path/to/advanpix/');It has to point at the local installation of the Advanpix toolbox.
The pipeline runs Maple first, then MATLAB.
Step 1. Create the exchange directory. From the repository root:
mkdir -p dataThis is required: ExportMatrix writes into <p>/data/ but does not create
the directory.
Step 2. Assemble the matrices in Maple. For the non-extremal case, load the
assembler and call it once per truncation order, keeping s, L and mu
fixed:
read "matrixassembler_nonext.mpl":
MatrixAssembler(200, 100, 0, 2, 5.0, "/absolute/path/to/dirtybh"):
MatrixAssembler(200, 150, 0, 2, 5.0, "/absolute/path/to/dirtybh"):
MatrixAssembler(200, 200, 0, 2, 5.0, "/absolute/path/to/dirtybh"):
The example computes the scalar (
read "matrixassembler_ext.mpl":
MatrixAssembler(200, 100, 0, 2, "/absolute/path/to/dirtybh"):
MatrixAssembler(200, 150, 0, 2, "/absolute/path/to/dirtybh"):
MatrixAssembler(200, 200, 0, 2, "/absolute/path/to/dirtybh"):
Choose d at least as large as the highest mp.Digits that MATLAB will
request, since d fixes the number of digits actually written to the ASCII
files. With the default driver this means d of at least 200.
Step 3. Solve and plot in MATLAB. Edit the addpath line in
chaseQNMs.m, make sure list matches the truncation orders assembled in
Step 2, then run
>> chaseQNMsThe script reports its progress order by order and produces the complex-plane convergence diagram.
Changing the physical parameters. The spin and angular momentum are
arguments of MatrixAssembler, so a different perturbation type or multipole
requires re-running Step 2. The same applies to the mass chaseQNMs.m needs to change other than list.
| Component | Requirement |
|---|---|
| Maple | version 2022.1 or later for matrixassembler_*.mpl and the two supplemental worksheets; the two effective-potential worksheets were written under Maple 18 and open in any later release |
| MATLAB | any reasonably recent release providing polyeig |
| MATLAB toolbox | Advanpix Multiprecision Computing Toolbox, mandatory: the mp class, mp.Digits, mp.read and multiprecision polyeig are all used |
No other third-party package is needed, and no compilation step is involved.
On cost. Both stages are expensive, and the cost grows sharply with the
truncation order n. The Maple stage evaluates the coefficient functions
symbolically at every one of the n collocation points and extracts n
coefficients at each, so its work grows quadratically in n on top of a high
constant from multiprecision special-function evaluation. The MATLAB stage
solves a dense quadratic eigenvalue problem of size n at several hundred
decimal digits, which linearises to a dense
-
The tables of quasi-normal frequencies. Each table corresponds to one
choice of the perturbation spin
$s$ , the multipole number$\ell$ and, in the non-extremal case, the dimensionless mass$\mu$ . Set those three as arguments ofMatrixAssemblerin Step 2, then read off the converged eigenvalues in Step 3. The overtone index$n$ orders the converged modes by increasing$\lvert \mathrm{Im}\omega \rvert$ ; it is not an input of the computation, since the spectral method returns the whole spectrum at once. -
The large-mass limit. Increasing
$\mu$ drives the non-extremal spectrum towards the classical Schwarzschild values, which is the validation test reported in the article. -
The extremal and near-extremal spectra. Use
matrixassembler_ext.mplfor the exactly extremal configuration, andmatrixassembler_nonext.mplwith$\mu$ slightly above$\mu_e \simeq 1.90$ for the near-extremal one. The purely imaginary, overdamped modes reported in the article appear in this regime. -
The figure. The convergence diagram is the direct output of
chaseQNMs.mwith the defaultlist = [200, 150, 100].
This article is part of the Quasi-Normal Modes Hall of Fame, subtitled Celestial Music:
The site is maintained by Dr. Davide Batic and Dr. Denys Dutykh at the Mathematics Department of Khalifa University of Science and Technology, with contributions from international collaborators. It gathers the group's peer-reviewed manuscripts on quasi-normal modes, each entry carrying its full citation, the DOI of the published version, a link to the arXiv preprint, and a link to the companion repository holding the computational material.
The present repository is the companion code for the dirty black hole entry. Readers looking for the group's other quasi-normal mode studies, and for the codes accompanying them, will find them indexed there.
If you use these codes, in whole or in part, please acknowledge this work by citing the article:
D. Batic, D. Dutykh and Z. A. Babou, Quasi-normal modes of non-commutative geometry-inspired dirty black holes, Proc. R. Soc. A 481 (2318): 20250021 (2025). DOI: 10.1098/rspa.2025.0021.
In BibTeX:
@article{Batic2025,
author = {Batic, Davide and Dutykh, Denys and Babou, Zeinabou Ahmed},
title = {Quasi-normal modes of non-commutative geometry-inspired
dirty black holes},
journal = {Proceedings of the Royal Society A},
volume = {481},
number = {2318},
pages = {20250021},
year = {2025},
doi = {10.1098/rspa.2025.0021},
url = {https://doi.org/10.1098/rspa.2025.0021}
}The preprint, should you need it:
@misc{Batic2025arXiv,
author = {Batic, Davide and Dutykh, Denys and Babou, Zeinabou Ahmed},
title = {Quasinormal modes of noncommutative geometry-inspired
dirty black holes},
year = {2025},
eprint = {2507.19107},
archivePrefix= {arXiv},
primaryClass = {gr-qc},
url = {https://arxiv.org/abs/2507.19107}
}The codes in this repository are distributed under the GNU Lesser General
Public License, version 2.1. The full text is in LICENSE.
They are provided in the hope that they will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose. See the licence for details.
- Dr. Davide Batic, Mathematics Department, Khalifa University of Science and Technology, Abu Dhabi, UAE (corresponding author of the article)
- Dr. Denys Dutykh, Mathematics Department, Khalifa University of Science and Technology, Abu Dhabi, UAE
- Zeinabou Ahmed Babou, Mathematics Department, Khalifa University of Science and Technology, Abu Dhabi, UAE
Questions about the codes, bug reports and suggestions are welcome through the issue tracker of this repository.