# How does one project out the translations and rotations from a hessian?

I've recently written a simple code to numerically compute the hessian of some function (at a point). Most electronic structure packages will compute the hessian and then project out the translations and rotations. I have tried to look up how one actually does this, but I can't find any good information really.

I feel like this should be pretty simple, so I feel a bit silly for not knowing how to do it, but if someone can provide some mathematical detail on how to project out the translational and rotational modes, that would be greatly appreciated.

• Related: mattermodeling.stackexchange.com/questions/441/…. The link to the Gaussian website talks about the projection – Tyberius Feb 25 at 20:13
• @ShoubhikRMaiti I think this actually answers the question, so I might try to implement it from there. There's a lot of extra stuff being described in this paper, so maybe someone will summarize in a nice way. If I figure it out first, I'll give an answer. – jheindel Feb 25 at 22:08
• While converting the Hessian to internal coordinates is an interesting one, it is not how it is done in practice. In practice the translation and rotations are removed by going to the Eckart frame, which separates vibrations from rotations and translations. Those modes are then easily identifiable because their frequency is zero. I can post some python code to see how this is done if you would like – Cody Aldaz Feb 26 at 7:51
• I think this gaussian page answers the question very clearly: web.archive.org/web/20191229092611/https://gaussian.com/vib Basically, you do transform the hessian to internal coordinates. I will try this and answer the question here, though the gaussian link explains it as clearly as one could hope to really. – jheindel Feb 26 at 9:05
• @CodyAldaz They are constructing the transformation matrix from cartesian coordinates to internal coordinates. This transformation essentially projects out the external degrees of freedom. They are not diagonalizing the Cartesian hessian, but the hessian which is transformed to internal coordinates which forces exactly the six zero eigenvalues. So, it is true they are doing the displacements in cartesian coordinates (makes finite differencing easier), but they are not diagonalizing the hessian made up those derivatives. – jheindel Feb 26 at 22:10