Rework gmx-solvate to use analysis nbsearch
- More understandable control flow, with less code.
- No memory leaks.
- No dependency on mdrun/group kernel specific neighborhood search, so
no confusing messages about deprecated group kernels or LJ/Coulomb
cutoffs. All output is controlled by the tool code now.
- Eventual group kernel removal no longer needs to consider these tools.
- Now tool code is independent of t_forcerec.
Even without additional algorithm-level optimization allowed by the new,
more flexible pair search, the new code outperforms the old one by ~30%
(in a debug build) in the cases triggered by the unit tests.
Some useful functionality is refactored into topology/. Subsequent
changes can clean that up and start using those parts also in
insert-molecules.
Change-Id: Ibad1090667e057a00c08a84bdb6bebbf2e55c5f4