I have developed pyStab, a Python computer code, to analyse the stability of a razor-thin stellar disc with an axisymmetric or spherically symmetric central bulge and dark-matter halo. To maximize computational efficiency, pyStab relies on numpy and scipy routines to speed up the pure Python parts of the code. Moreover, we extended Python with fast C++ modules that interface with Python via the Boost Python Library. These modules in turn employ routines for minimization, root finding, spline interpolation, and numerical quadrature from the GNU Scientific Library. The routines for solving linear systems and for matrix eigendecompositions are taken from the C++ linear algebra library Armadillo. The code is controled from a Graphical User Interface, implemented in pyQt4, and contains a wide variety of numerical checks on the results as well as plotting options. The mathematical formalism behind this code can be found in Vauterin & Dejonghe (1996) and in De Rijcke & Voulis (2016).

This is a plot of the m=2 mode spectrum of the cored exponential disc
model, introduced by Jalali & Hunter
(2005) in the complex frequency plane as computed with pyStab. The
real frequency ω_{real} equals m times the pattern speed
while the imaginary frequncy ω_{imag} quantifies the
growth rate. The white dots correspond with eigenmodes. The colored
triangles indicate the position of the same modes as calculated with
other codes (Omurkanov &
Polyachenko 2014)

Below are the density distributions of four prominent two-armed spiral
modes of the cored exponential disc model. Red is positive density;
blue is negative. The full line indicates the location of the
co-rotation radius; the dashed line marks the location of the outer
Lindblad radius. The names of the modes, as given by Jalali
(2007), are indicated in each panel along with the mode's complex
frequency.

We used pyStab to investigate how a phase-space groove at fixed
angular momentum affects the disc's stability properties and showed
that, if a groove exists in a responsive part of phase-space, new
modes are triggered. These modes can be fast-growing and even dominate
the mode spectrum, as can be seen in the figure below.
Here, a groove was carved in phase space
around an angular momentum of 433 kpc km s^{-1} causing new
modes to arrise, all more rapidly growing than in the ungrooved model.

Thus, we confirm the hypothesis made by previous authors that spiral patterns beget new spiral patterns by carving grooves in phase space at successively larger radii. Because we are using first-order perturbation theory to construct and compare the eigenmode spectra of grooved and ungrooved models, we can rule out two of the possible origins of the wave patterns observed in simulated grooved disc galaxies as suggested by Sellwood & Lin (1989) : these patterns are not intrinsic modes of the original, ungrooved disc and they are not due to non-linear mode coupling. We do confirm the third possibility raised by these authors: they are true eigenmodes, particular to the grooved disc.