# Diagonalization of Gigantic Dense Hermitian Matrices

Tags:
1. Jun 2, 2017

### Bora

Hi there,

This is a question about numerical analysis used particularly in the computational condensed matter or anywhere where one needs to DIAGONALIZE GIGANTIC DENSE HERMITIAN MATRICES.

In order to diagonalize dense Hermitian matrices size of 25k-by-25k and more (e.g. 1e6-by-1e6) it is not enough to use canned routines like zheevx() in LAPACK. It's way too slow. One needs new state of the art routines like RMM-DIIS (Residual Minimisation-Direct Inversion in Iterative Subspace) from Wood, Zunger "A New Method for Diagonalising Large Matrices" [J.Phys.A - Mathematical and General, 18, 1343 (1985)]. Since, I have never written eigensolver before, can anyone with experience give an advice what I need to learn to do progam RMM-DIIS quickly. E.g. to give a list of methods and concepts, with book/chapters. Thanks.

2. Jun 3, 2017

### DeathbyGreen

I'm not sure if you've considered the QR algorithm, but I have used it in the past and it works well. Here is a short video explaining how to write a simple code for it:

3. Jun 3, 2017

### Bora

Thanks a lot. How does the QR perform with gigantic matrices?

4. Jun 3, 2017

### DeathbyGreen

It depends on the matrix. Just do a random matrix generation (in MATLAB I think it's with function 'magic') and write the code and see. The computation time really depends on the matrix size and how accurate you want the eigenvalues. If you take data for computation time vs iteration for a few medium size matrices you could probly plot that and extrapolate with a curve fit to predict higher matrix sizes.