Post-5.0 feature clean-up plan - Redmine #1500
General status summary:
- #1292 (removing features for 5.0) is complete as far as I could achieve it on my own. Thanks to those who did contribute. Main items that happened there are removal of PD, and clean up for planned removal of iterated code for MTTK constraints.
- The Verlet scheme will be close to feature-complete in 5.0. The main thing missing is support for user tables, which is one of the things Alfredo Metere is working on. Other minor issues are that the GB parallelization is probably broken for both group and cutoff (so until someone wants to put time into it again, we support GB after 5.0 only in all-vs-all mode), and adress is only implemented for the group scheme (which needs at least new kernels, which should be addressed after we produce a kernel-generator python script)
We do want a release where the Verlet and group schemes are both as reliable as we can reasonably achieve, so that any issues of cross-validating protocols can be settled unambiguously. I see that as the main reason for having a 5.1 later this year. Many of the group-scheme protocols are not worth reproducing, however.
Suggested features to announce as deprecated in 5.0
- group scheme (grompp already announces this; remove after 5.1)
- twin-range multiple-time-step scheme (it’s been broken since before 4.5 #1400, and my attempt to fix it lately has not clearly succeeded; remove after 5.0)
- Generalized Born other than all-vs-all (#1054; remove after 5.0)
- iteration scheme for MTTK with constraints (remove after 5.0)
- ensemble-averaged restraints (unless someone actually is using it in ~4.6 and has a setup showing that it still works - discussion at #1117; remove after 5.0)
- mdrun
testverlet (since Verlet will be the default and people should no longer be converting ancient .tpr filesdiscussion at #1424; remove after 5.0) - heuristic updates for group scheme (complicates signalling, which currently hurts multi simulations and makes it hard to verify a solution for #692, and Berk hopes to implement a better version of this for the Verlet scheme; remove after 5.0)
I don’t like breaking/removing things that work, but “keep it, it may once have worked” is not a reasonable barrier to progress for those of us working on things we need for the future. “Here, keep this working” can be reasonable! :-)
(from redmine: issue id 1500, created on 2014-05-13 by mark.j.abraham)
- Relations:
- relates #1017 (closed)
- relates #1193 (closed)
- relates #860 (closed)
- relates #1411 (closed)
- relates #1971 (closed)
- child #1054 (closed)
- child #1117 (closed)
- child #1424 (closed)
- parent #1292 (closed)
- Changesets:
- Revision b2b75d45 by David van der Spoel on 2014-09-10T13:40:13Z:
Remove .tpa, .tpb, .tpx, .trj files. Part of #1500.
Change-Id: Ia055cbf5311bf8780ca826c767207e5172d1b7e2
- Revision 6a334106 by Mark Abraham on 2018-01-23T16:51:22Z:
Remove topology support for implicit solvation
Refs #1500
Refs #1971
Change-Id: I75d05d52ea1d528f63f2249da62f0bcfca4274d2
- Revision 93c6b6d6 by Mark Abraham on 2018-01-23T17:08:21Z:
Remove support for implicit solvation
Mdp files with implicit-solvent = no can still be read, and formerly
valid related fields are now ignored, so that default mdp files from
previous versions of GROMACS will work. Anything else for the
implciit-solvent mdp value gives an error in grompp.
grompp can now only write a tpr file that has a false value for
ir->implicit_solvent, but can read older versions. When mdrun is
presented with an older tpr file that did such a simulation, it
refuses to run, presenting a useful error message. Such tpr files are
still useful for other purposes, so can still be read, except that the
fields specific to these methods are ignored.
grompp now ignores the topology directives for related parameters,
which means that force-field folders that are the same as, or
modifications of folders formerly supported by GROMACS still
work. However, the versions currently distributed have none of those
fields.
The group-scheme kernels have been removed, and generation
infrastructure updated so that they do generate the code that's in the
repo. However, now that the python generation scripts no longer
generate GB kernels, the dictionary ordering changes, which changes
the generated output. That output is not sensitive to the order of the
declarations or data-structure elements, so this is only a cosmetic
issue.
Documentation has been removed.
Unit tests on .mdp file handling have had to be updated.
Also removed unused enbcoul enumeration
Refs #1500
Refs #1971
Fixes #1054
Change-Id: Ib241555ff3d8e60012ba0e628ab0f9a3f91eca9e