I have to diagonalize a large matrix which take a lot of time. The matrix size 10,000 x 10,000.
This matrix is Hamiltonian of a spin system which have some block structure. Is there way to diagonalize the full matrix by diagonalize each block ?
Basically I want to
1. permutate the matrix to reduce to a block structure
2. Diagonalize each blocks .
I would appreciate any help.
Similar question for mathematica : https://mathematica.stackexchange.com/questions/170008/finding-the-eigenvalues-diagonalizing-of-a-bl...