Total: 1
sdos is an open Python package that computes the density of states (DOS) and related spectral quantities of very large sparse Hermitian matrices A, and of generalized problems A psi = lambda B psi, from Chebyshev moments estimated with random vectors. The density is reconstructed by the kernel polynomial method (KPM, the default) or by maximum entropy (Maxent); the same interface gives band energies, Fermi levels, local and projected densities, harmonic thermodynamics, exact HOMO-LUMO gaps and eigenpairs in a spectral window. Interfaces cover electronic (empirical tight-binding, DFTB, SIESTA) and vibrational (matrix-free LAMMPS Hessians) problems. I checked most ingredients against dense diagonalization or an independent code; the exceptions are listed in Sec. V. On a workstation (4 threads, 19 GB) the DOS of an 884,736-atom amorphous silicon model (a 6^3 tiling of a 4096-atom cell; 3.5 million orbitals; the orthogonal empirical tight-binding model of Kwon et al.) takes 71 s (M=100, R=2, no exact moments; 383 s with the default exact moments), and a matrix-free 2,097,152-atom crystal 10 min in 1.8 GB. A 17^3 replica of a 216-atom amorphous cell (1,061,208 atoms) agrees with exact Bloch spectra: electronic DOS in 229 s, matrix-free ACE vibrational DOS in 2.2 h on one GPU. Shift-invert, incomplete-Cholesky setup, exact moments of high order and Maxent at high moment counts do not scale. The underlying methods are due to Silver, Roder, Kress, Voter, Drabold, Sankey and collaborators; the Introduction states what is added.