First commit of code to support a new symmetric minimization strategy, currently accessible via flag -new_sym_min
In this approach, all dofs (including dependent ones) are added to the minimizer map, and derivatives are calculated for all dofs, but
when we are actually filling out the derivatives vector to hand to the minimizer we sum the dependent dof derivatives into the
derivatives of their independent "master" dofs. This approach obviates the need for the jump_clone_wts and for the derivative
graph.
Conceptually I think it's a bit simpler, and it doesn't actually depend on symmetry; all that it relies on is the fact that
when you move the master dof the other dofs are moved in the same way. So the effective derivative for the master dof
is just the directional derivative corresponding to the direction of motion in which we move all the dofs simultaneously.
One problem is that it uses the function "make_assymetric_movemap" (sic) in order to make sure that dependent dofs are
added to the minimizer map. I think this function may miss dofs that are set individually via MoveMap::set_dof
rather than by set_bb, set_chi, set_jump, etc. So that should be probably be fixed.
Use with caution, check the numerical derivs, and let me know if you see any problems. I haven't evaluated the performance
costs of this approach, but I doubt that it is rate limiting in most applications.
I only saw one integration test change, in ligand_dock_script. It looked like a numerical instability. Has anyone else seen
unexpected changes in this test? I don't see how these symmetry-related and cmdline dependent changes could have affected it.