[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