Base support for multiple analysisdata data sets.
authorTeemu Murtola <teemu.murtola@gmail.com>
Fri, 7 Jun 2013 11:17:52 +0000 (14:17 +0300)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sun, 11 Aug 2013 10:54:14 +0000 (12:54 +0200)
commit3a18bf03d7a28faad41fd842fc9529f63d4be27a
treec9ea783e1a3cf0493f34635c2f9489a64a390576
parentec3b4b103fd17550ff816a6c3328f3ced886897c
Base support for multiple analysisdata data sets.

Make it possible for an AbstractAnalysisData object to contain multiple
data sets.  See #1010 for the rationale for implementing this.

The main changes are:
- Support for specifying the number of data sets and the number of
  columns for each data set in AbstractAnalysisData and classes deriving
  from it.  At the same time, improved checking the constraints for
  analysis data modules, so that the restrictions for calling the
  various set*() methods are now more uniform.
- Modeling multiple data sets in the dataframe.h interfaces: now the
  point set has an additional attribute, specifying the data set.
  Data with multiple data sets now always has multiple point sets.
  There is exactly one per data set if it is not multipoint.
- Support for storage in AnalysisDataStorage. This is straighforward
  extension of multipoint storage.
- Support for creating the data sets in AnalysisDataStorage and
  AnalysisData.
- Adjust unit test framework to support at least basic testing of
  multiple data sets.

Will implement support for multiple data sets in the modules, including
the angle trajectory analysis module, in a separate change to keep the
amount of simultaneous changes limited.

Part of #1010.

Change-Id: Ieb373638d25ecd885d563c467bff893dd47b23b5
27 files changed:
share/template/template.cpp
src/gromacs/analysisdata/abstractdata.cpp
src/gromacs/analysisdata/abstractdata.h
src/gromacs/analysisdata/analysisdata.cpp
src/gromacs/analysisdata/analysisdata.h
src/gromacs/analysisdata/arraydata.cpp
src/gromacs/analysisdata/arraydata.h
src/gromacs/analysisdata/dataframe.cpp
src/gromacs/analysisdata/dataframe.h
src/gromacs/analysisdata/datamodule.h
src/gromacs/analysisdata/dataproxy.cpp
src/gromacs/analysisdata/datastorage.cpp
src/gromacs/analysisdata/datastorage.h
src/gromacs/analysisdata/modules/average.cpp
src/gromacs/analysisdata/modules/displacement.cpp
src/gromacs/analysisdata/modules/histogram.cpp
src/gromacs/analysisdata/tests/analysisdata.cpp
src/gromacs/analysisdata/tests/arraydata.cpp
src/gromacs/analysisdata/tests/average.cpp
src/gromacs/analysisdata/tests/histogram.cpp
src/gromacs/trajectoryanalysis/modules/angle.cpp
src/gromacs/trajectoryanalysis/modules/distance.cpp
src/gromacs/trajectoryanalysis/modules/freevolume.cpp
src/gromacs/trajectoryanalysis/modules/select.cpp
src/testutils/datatest.cpp
src/testutils/datatest.h
src/testutils/mock_datamodule.cpp