The entirety of rsp2 was written assuming that the eigenvectors of the dynamical matrix are the same as their displacement directions, but this is not actually true; it turns out that the mass normalization in the dynamical matrix is also reflected in the eigenvectors.
To obtain the true mode displacement directions, one must divide each 3-vector by its corresponding sqrt(mass).
Working it out on paper it seems there is no guarantee that the displacements are orthogonal. I am confused/worried because I think my code may rely on this assumption.
The entirety of rsp2 was written assuming that the eigenvectors of the dynamical matrix are the same as their displacement directions, but this is not actually true; it turns out that the mass normalization in the dynamical matrix is also reflected in the eigenvectors.
To obtain the true mode displacement directions, one must divide each 3-vector by its corresponding
sqrt(mass)
.https://atztogo.github.io/phonopy/formulation.html#id7
This went unnoticed as all structures I work with are pure carbon.