Diagonalization of Gigantic Dense Hermitian Matrices

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
3 replies · 2K views
Bora
Messages
2
Reaction score
0
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.
 
Physics news on Phys.org
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:
 
Thanks a lot. How does the QR perform with gigantic matrices?
 
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.