Solving 2D Schrodinger Equation with ARPACK: Can I ensure all eigenvectors have the same phase?

I use arpack to solve the 2D Schrodinger, and eigenvalue problem of the form

$$Hx = \epsilon x$$

on a uniform grid. All eigenvectors are real in my case.

Arpack doesn't normalise the eigenvectors, and phases between the eigenvectors will differ (some are multiplied by -1, some aren't).

Normalising the eigenvectors after the arpack run is easy, but I am not sure how to ensure all eigenvectors have the same phase. Is there some way to compare the phase between two orthogonal eigenvectors (say, by checking the sign near a boundary)?

• Even if they are normalized they might differ in a sign. Both of them satisfy the equation. I don't think that two different eigenvectors can have the same phase, since they might have different number of zeros. – nicoguaro Jan 14 '18 at 2:13
• How are you defining the "correct" phase? But to be honest if you are worrying about this you are probably doing something wrong after you have solved the eigenvalue problem, no properties of the system should depend upon this. – Ian Bush Jan 14 '18 at 7:29
• The issue arises when I perform a coupled mode-space calculation of transistor properties, where the Schrodinger equation is solved at different locations on the transistor and compared. scicomp.stackexchange.com/questions/28608/… – DJames Jan 15 '18 at 12:59