Task #665: Port existing trajectory analysis tools to use the new framework
Reimplement displacement calculation module
The code currently in src/gromacs/analysisdata/modules/displacement.* is an incomplete port of src/gromacs/gmxlib/trajana/displacement.c (and the related header in legacyheaders) to the new analysis framework. This is more of a proof-of-concept implementation than a real one, and there is currently nothing that uses the new module.This task should include the following:
- Improve/rewrite the AnalysisDataDisplacementModule class such that it provides more flexibility.
- Change the handling of the MSD histogram module such that it is created and managed internally within the displacement module, and only gives out an AbstractAverageHistogram handle (this gives more freedom in writing the module as well).
- Use storage facilities provided by the data object to which the module is attached instead of storing old values internally. If/when support for trestart-type of functionality from g_msd is needed, the storage facilities in AbstractAnalysisData/AnalysisDataStorage also need to be extended.
- Add unit tests for the module.
- Add a real analysis module under src/gromacs/trajectoryanalysis/modules that uses the displacement module to find out what are the requirements for the module. For example, port g_msd to the new framework.