mirror of
https://github.com/nwchemgit/nwchem.git
synced 2026-07-28 22:25:48 -04:00
successful. It turns out that there are 2 aspects to it. 1. The phase of the displacement vectors was canonicalized by making sure that the absolute largest element is positive. In past that approach has proven to be tricky in particular when elements may have to be equally large by symmetry (which one you pick becomes arbitrary. An alternative approach is to compute the dot-product between the displacement vectors and the nuclear coordinates. Making sure that these dot-products are positive leads to body fixed displacement vectors. This approach has proven to work well with the VSCF code. 2. The displacement vectors are obtained from diagonalizing some metric matrix. This metric has zero eigenvalues for the redundant as well as the non-symmetric displacement vectors. For all symmetric vectors the eigen- value is one. Hence all vectors separate into two categories. Within each category they are completely degenerate. As a result the diagonalization routine returns them in arbitrary order. However, the dot-products with the nuclear coordinates produce different values for different vectors. So we can sort those in order of decreasing value to canonicalize the displacement vector order. Having fixed both these issues the points in the calculation of numerical gradients should be fixed in a unique order. The oniom3 baseline has been updated to reflect this particular order for that test case. |
||
|---|---|---|
| .. | ||
| oniom3.nw | ||
| oniom3.out | ||