First, the coords must be translated to place any vacuum separation at the cell borders, and then mapped into the unit cell, because the concept of rotational modes only exists in aperiodic systems.
2. Find a best fit rotation axis
Now imagine, if you will, that the atomic displacements of a phonon are linear velocities. If a mode is perfectly rotational, then there exists a point P and a vector omega such that
v_n = omega ⨯ (x_n - P)
for all site indices n. Of course, this does not uniquely determine P; for that, we simply choose the point on the axis of rotation that is closest to the origin:
P ∙ omega = 0
Altogether this gives you 3n + 1 residuals you can stick into any nonlinear least squares solver to solve for 6 independent variables. (P and omega)
A good initial guess for P is probably the cell center. Choose a random initial omega.
3. Construct the eigenmode and project
Determine the quality of the fit by constructing the pure rotational mode (use v_n as defined above, then mass reduce and normalize) and computing the overlap with the eigenvector.
If the overlap is close to the norm of the eigenvector, it's a good fit and the mode is rotational!
(If it's not close, then I wouldn't place too much stock in the precise value found for the overlap, because the other stuff in the eigenvector may have influenced the fit)
1. Translate
First, the coords must be translated to place any vacuum separation at the cell borders, and then mapped into the unit cell, because the concept of rotational modes only exists in aperiodic systems.
2. Find a best fit rotation axis
Now imagine, if you will, that the atomic displacements of a phonon are linear velocities. If a mode is perfectly rotational, then there exists a point
P
and a vectoromega
such thatfor all site indices
n
. Of course, this does not uniquely determine P; for that, we simply choose the point on the axis of rotation that is closest to the origin:Altogether this gives you 3n + 1 residuals you can stick into any nonlinear least squares solver to solve for 6 independent variables. (P and omega)
A good initial guess for P is probably the cell center. Choose a random initial omega.
3. Construct the eigenmode and project
Determine the quality of the fit by constructing the pure rotational mode (use
v_n
as defined above, then mass reduce and normalize) and computing the overlap with the eigenvector.If the overlap is close to the norm of the eigenvector, it's a good fit and the mode is rotational!
(If it's not close, then I wouldn't place too much stock in the precise value found for the overlap, because the other stuff in the eigenvector may have influenced the fit)