IMSL diagonalizing a general complex matrix (DEVCCG)

AI Thread Summary
DEVCCG may encounter issues when attempting to diagonalize certain general complex matrices, particularly those that are defective due to eigenvalue degeneracies. This results in the program hanging without returning an error code, as the iterative diagonalization process fails to converge within a set number of attempts. The problem is particularly relevant in scenarios involving high-symmetry situations, where the boundary condition matrix leads to doubly degenerate solutions. A workaround involves slightly perturbing the matrix to break symmetry, allowing the numerical procedure to yield closely spaced eigenvalues with orthogonal wave functions. While DEVCCG successfully diagonalizes most matrices, there are specific cases where it struggles, prompting users to explore alternative software solutions. Communication with the software developers is ongoing to address these limitations.
orzyszpon
Messages
11
Reaction score
2
Under some circumstances, whenever I call DEVCCG to diagonalize a general complex matrix, the program gets stuck inside and never returns. I do not even get out an error code so that I may continue with the rest of the program. I assume the iterative diagonalization inside the procedure does not converge in an allowed number of times. (I cannot access the innards of the code.)
Question: Are there some matrices that will not be diagonalizable with DEVCCG? Which types of matrices it cannot handle? Thank you very much.
 
Physics news on Phys.org
Thank you, Dr. Courtney for responding to my question, for your help, and for your perceptive question. Since posting my question, I have come up with an answer. It turns out that general complex matrices are not always diagonalizable; in those cases they are called defective. This is certain to occur when there are eigenvalue degeneracies. The DEVCCG code uses similarity transformations to reduce the matrix to diagonal form. Actually, it iterates toward that form. After some 30 tries, it gives up. Unfortunately, it does not relinquish control to the outside program, so the whole execution hangs up.

I am calculating band structures of superlattices for which the bands are spin-degenerate in certain directions of the Brillouin zone. The boundary condition matrix (the offending culprit) is general complex, and its solutions will be doubly degenerate in high-symmetry situations. (It is impossible to block diagonalize the matrix.)

The problem is numerical. The way around it is to "perturb" the matrix slightly by destroying the perfect symmetry. Then the numerical procedure will produced two closely spaced eigenvalues with orthogonal wave functions.

So, these are my true confessions. I hope this is of use to the next unfortunate soul.Frank
 
I just had a colleague use his own package to successfully diagonalize one of the matrices DEVCCG has problems with. He did it without any problems. Since DEVCCG diagonalizes most everything I have thrown at it (meaning that there are not formatting issues, etc.), it must be that there are certain matrices that DEVCCG does not abide. I am talking to the people in the company regarding this issue.
 

Similar threads

Back
Top