Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Diagonalization of Gigantic Dense Hermitian Matrices

  1. Jun 2, 2017 #1
    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. jcsd
  3. Jun 3, 2017 #2
    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:
  4. Jun 3, 2017 #3
    Thanks a lot. How does the QR perform with gigantic matrices?
  5. Jun 3, 2017 #4
    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.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted