Over the weekend, I finished up a long-needed change to the SVN trunk,
which just went in.
Previously, the force field code would evaluate geometry optimization
for one atom at a time. This means that for each atom, it would try a
move, evaluate the energy (of the whole molecule), repeat.
The much faster method (used by every other program) is to propose a
step for the entire molecule, then evaluate the energy. This requires
a new LineSearch() method, so it can’t be backported to the 2.1.x
releases.
The benefits are great. For a 63-atom molecule, the previous code
would execute 500 steps in 1 min. 50 sec. on my workstation.
New code: 8 seconds.
The effects are even more significant for larger molecules. OTOH, the
code hasn’t received a full workout. Please let me know if you
encounter problems!
Cheers,
-Geoff
P.S. This fix doesn’t require any user changes – call the
SteepestDescent and ConjugateGradients methods as normal. But it does
mean that Avogadro users may want to try out SVN trunk of Open Babel
soon.