CCL: B Matrix in GAMESS-US - Bug?
- From: Tom Sundius <Tom.Sundius(!)helsinki.fi>
- Subject: CCL: B Matrix in GAMESS-US - Bug?
- Date: Mon, 12 Jun 2006 11:45:06 +0300 (EEST)
Sent to CCL by: Tom Sundius [Tom.Sundius^helsinki.fi]
Gustavo Mercier asked about a problem he thinks he has found with the
torsion routine TORS in the GAMESS module zmatrx.src.
As far as I can see it is identical to the routine with the same
name in Schachtschneider's program GMAT (see Vibrational Analysis of
Polyatomic Molecules V, Techn. Report No. 231-64, Shell Development
Company, Emeryville, California 1964).
In the GAMESS module it is mentioned that a (wellknown?) sign error in
the second term of equation 22 on p. 61 of Wilson, Decius, Cross:
Molecular Vibrations (1955) has been corrected. This sign error has
been mentioned in several papers, for instance in W.F. Murphy,
Can. J. Chem. 69 (1991) 1672, and was corrected in the Dover
republication (1980). However, the sign error is still present in
equation (4.4.29) of S. Califano: Vibrational States (Wiley, 1976).
Concerning the scalar product, Gustavo Mercier correctly states
that cos (angle_1) should be calculated as e21 (dot) e23, where
the unit vectors are directed towards the bond end atoms.
However, checking the code in the TORS routine (lines 1853-1858 in my
copy), it seems that the scalar product is computed as -e12 (dot) e23,
which should give the correct result (the other scalar product that was
mentioned is computed as -e23 (dot) e34, which is similar).
If there is a problem, I suppose it is somewhere else in the code.
By the way, in the above mentioned paper by W.F. Murphy there is a
simple example which could be used to check the B-matrix calculation.
On Wed, 7 Jun 2006, Gustavo A Mercier gamercier[a]yahoo.com wrote:
Sent to CCL by: "Gustavo A Mercier" [gamercier(-)yahoo.com]
I might have found a bug in GAMESS-US... but before I make any claims
would like a second opinion.
I am encoding the B matrix the converts infinitesimal cartesian
displacements to internal coordinate displacements. This matrix is used
in the theory of molecular vibrations and the generation of delocalized
To check my code I've compared the output from GAMESS-US subroutines
zmatrx.src. However, there are differences in the B matrices I compute
and the one computed with the GAMESS-US code.These are associated with
the torsion angle terms. After looking at the code in GAMESS-US and the
formulae in Molecular Vibrations by Wilson, Decius, and Cross, pub.
1980, I find the following discrepancy:
In computing the matrix elements for the torsion angles 1,2,3,4, ie.
angle between the planes 123 and 234 with the atoms 1 and 4 at the
and 2 and 3 along the line of sight with 2 closest to the viewer
\ bend |
\ angle 1 |
\ | torsion angle
2 -------- 3 23
bend angle 2 \ \
i = 1, j = 2, k = 3, l = 4
From Wilson's book:
Cos(angle_1) = Dot(2--1>,2-->3) where i-->j is a unit vector from i
Cos(angle_2) = Dot(3-->2,3-->4) and Dot is the cartesian dot product
However in GAMESS-US the code (subroutine BTORS in zmatrx.src) computes
Cos(angle_1) = Dot(1-->2,2-->3)
Cos(angle_2) = Dot(2-->3,3-->4)
There is a reversal in the orientation of the first unit vector
with the first bond that makes the angle.
The end result is that there is a sign reversal in the Cos terms
the two programs. I don't see this "corrected" in the
remainder of the code.
Anyone who can shed any light on this discrepancy, beyond stating that
there is a bug in the GAMESS-US code or a typographical error in the
edition of Wilson's book? (I am familiar with Wilson's definition, so I
favor an error in GAMESS-US. However, before I make any claims I would
a second opinion!)
Neither one of the codes generates B matrices that reproduce the delocalized
coordinates for the fluoroethylene example in Baker's et al J. Chem.
105(1) 192-212 (1996).