Mass weight Gaussian energy derivative datatypes
Is the Gaussian Hessian already mass weighted? For the option -gh, there currently isn't any additional mass weighting going on after reading the Hessian from the archive, which may be a big problem.
For -geigz, we simply read the eigenvalues and convert them to a diagonal matrix. Again, does any mass weighting have to occur here? Currently, I only have methods for mass weighting Hessians and eigenvectors, not eigenvalues. I'm not sure how I would do this.
For -mgeig, we use the Gaussian eigenvectors and the MM Hessian to form the diagonal eigenvalue matrix. Again, do we need to mass weight the eigenvectors after reading them?
I think I answered mopst of this in another issue. If you get a Hessina from archive or formchk, or jaguar .01.in, do mass weighting of the Hessian. If you pick the eigensystem from the log files, no need. Only Hessians are ever mass-weighted, but the eigen-vectors and -values from the mass-weighted are different.
For the MM Hessian, it must be mass-weighted before we use it with the eigenvectors. Since we get it from RRHO-files, it will be mass-weighted in the log file, which is why we must use mass-weighting with the QM Hessians. Note that the mass from atom.typ is used, it must be correct! Change for Z0 if you use it.
So it sounds like the Gaussian Hessian for -gh needs mass weighting. On the other hand, -geigz doesn't need eigenvalues modified. Similarly, -mgeig doesn't need the eigenvectors modified. The bit about -mgeig surpirses me because the eigenvectors are mass weighted in -mjeig (see line 1137 of calculate).
For future reference, the masses used are in constants.MASSES.
I don't remember, and don't have time to check right now, but I think there was a difference between Jaguar and Gaussian eigenvectors, maybe the former needed mass-weighting... It rings a bell. Strange if so, but yes, I think that was the only way I could rationalize differences between Gaussian and Jaguar output. Needs checking.