[MMTK] Orthogonality of normal modes

Konrad Hinsen research at khinsen.fastmail.net
Mon Apr 23 10:44:54 UTC 2012


Ramon Crehuet writes:

 > Thanks Ralf and Konrad for the explanation,
 > Let me see if I got it right:
 > 
 > * EnergeticNormalModes diagonalizes the hessian matrix (K) , in cartesian coordinates.
 > If temperature = None, eigenvectors are normalized, otherwise the norm is
 > temperature-dependent. Therefore dotProduct directly tests for orthogonalisation.

That's correct. You can also use

   energetic_modes.rawNode(mode_index)

to get the orthogonal raw mode vectors that are never scaled by the
thermal fluctuation amplitudes.

That was the easy part.

 > * VibrationalNormalModes (or default NormalModes) diagonalizes the mass-weighted hessian
 > matrix : K' = 1/sqrt(M) K 1/sqrt(M))  where M are the masses of the atoms.

True.

 > The resulting eigenvectors are expressed also in mass-weighted
 > cartesian coordinates.

True as well, but note that the modes as returned by MMTK are *not* the eigenvectors.
You can get the raw unmodified eigenvectors through

   vibrational_modes.rawMode(mode_index)

These mode vectors are in mass-weighted coordinates and not scaled by the thermal
amplitudes, so they are orthonormal.

If you use indexing to extract individual modes, i.e.

   vibrational_modes[mode_index]

you get the eigenvectors converted to unweighted Cartesian
coordinates.  Moreover, unless you set temperature=None, the modes are
also scaled by the thermal fluctuation amplitudes.

 > Therefore one needs to use the massWeighted versions of dotProduct
 > and norm to work with them. In particular, a vector e' in
 > mass-weighted coords is related to the cartesian vector e as:
 > e'=1/sqrt(M)e

As Ralf pointed out, it's just the opposite: e' = sqrt(M) e.

 > So in order to have the eigenvectors of K' in cartesian corrdinates one should do
 > something like (given m1 and m2 as vibrational modes):

The standard (non-raw) modes are already in unweighted coordinates, so you can
just use them directly.

I hope I have not created any further confusion!

Konrad.
-- 
---------------------------------------------------------------------
Konrad Hinsen
Centre de Biophysique Moléculaire, CNRS Orléans
Synchrotron Soleil - Division Expériences
Saint Aubin - BP 48
91192 Gif sur Yvette Cedex, France
Tel. +33-1 69 35 97 15
E-Mail: research AT khinsen DOT fastmail DOT net
http://dirac.cnrs-orleans.fr/~hinsen/
---------------------------------------------------------------------



More information about the mmtk mailing list