Better averaging for analysis data modules.
authorTeemu Murtola <teemu.murtola@gmail.com>
Wed, 3 Apr 2013 17:17:12 +0000 (20:17 +0300)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Wed, 12 Jun 2013 05:30:46 +0000 (07:30 +0200)
commit64bc37468301c4e72dcce4ebfe576c54e71f3309
tree083d6b73c46d0a5f81915aad3ba328a415ef84cb
parent67aeaae8aefd08995cdaa54be93a84d84f514061
Better averaging for analysis data modules.

Added an AnalysisDataFrameAverager for functionality common to analysis
data modules that compute averages over frames.  Currently, it only
accumulates the average and variance in double precision (using better
formula than before), but provides a useful base for implementing other
functionality:
 - Block averaging or other methods of better estimating the error.
 - Parallelization support to allow these modules to work in parallel
   after #869 is implemented.
For all of these, after the implementation is done in this common class,
it is easy to have that functionality in all the modules.  Some
interface changes may be required for some of the above, though.

Also some improvements to AnalysisDataAverageModule documentation.

Change-Id: I06ae7a92d36a0ee7e2fc0a1602ac40e6b8212d1d
21 files changed:
src/gromacs/analysisdata/modules/average.cpp
src/gromacs/analysisdata/modules/average.h
src/gromacs/analysisdata/modules/frameaverager.cpp [new file with mode: 0644]
src/gromacs/analysisdata/modules/frameaverager.h [new file with mode: 0644]
src/gromacs/analysisdata/modules/histogram.cpp
src/gromacs/analysisdata/modules/histogram.h
src/gromacs/analysisdata/tests/refdata/AverageModuleTest_BasicTest.xml
src/gromacs/analysisdata/tests/refdata/AverageModuleTest_CanCustomizeXAxis.xml
src/gromacs/analysisdata/tests/refdata/AverageModuleTest_HandlesMultipointData.xml
src/gromacs/analysisdata/tests/refdata/BinAverageModuleTest_ComputesCorrectly.xml
src/gromacs/analysisdata/tests/refdata/BinAverageModuleTest_ComputesCorrectlyWithAll.xml
src/gromacs/analysisdata/tests/refdata/SimpleHistogramModuleTest_ComputesCorrectly.xml
src/gromacs/analysisdata/tests/refdata/SimpleHistogramModuleTest_ComputesCorrectlyWithAll.xml
src/gromacs/analysisdata/tests/refdata/WeightedHistogramModuleTest_ComputesCorrectly.xml
src/gromacs/analysisdata/tests/refdata/WeightedHistogramModuleTest_ComputesCorrectlyWithAll.xml
src/gromacs/trajectoryanalysis/tests/refdata/AngleModuleTest_ComputesVectorTimeZeroAngles.xml
src/gromacs/trajectoryanalysis/tests/refdata/SelectModuleTest_BasicTest.xml
src/gromacs/trajectoryanalysis/tests/refdata/SelectModuleTest_HandlesMaxPDBOutput.xml
src/gromacs/trajectoryanalysis/tests/refdata/SelectModuleTest_HandlesPDBOutputWithNonPDBInput.xml
src/gromacs/trajectoryanalysis/tests/refdata/SelectModuleTest_HandlesPDBOutputWithPDBInput.xml
src/gromacs/trajectoryanalysis/tests/refdata/SelectModuleTest_HandlesSelectedPDBOutput.xml