Geometry Optimization

I’ve spent a bit of time over the last 2 days working on the force
field geometry optimizer. Technically it’s in Open Babel, but clearly
Avogadro benefits. It’s one of my big complaints about Avo right now.

The good news is that I’ve made some performance improvements and the
optimizer is now smarter than Ghemical – it is much less likely to
get stuck in a local minima.

The bad news is that the most significant performance improvements
will have to wait until OB-2.2, because they add a new API call. The
main problem was that the optimizer moved each individual atom, then
recomputed the energy a few times. So rather than one energy call per
optimization step, it was making mol.NumAtoms() calls for energy