Gromacs
2024.3
|
#include <gromacs/analysisdata/datamodule.h>
Convenience base class for parallel analysis data modules.
Implements the dataStarted() method such that initialization is always done in parallelDataStarted(). dataStarted() calls are forwarded to parallelDataStarted() using a dummy serial AnalysisDataParallelOptions.
Public Member Functions | |
int | flags () const override=0 |
Returns properties supported by the module. More... | |
bool | parallelDataStarted (AbstractAnalysisData *data, const AnalysisDataParallelOptions &options) override=0 |
Called (once) for parallel data when the data has been set up. More... | |
void | frameStarted (const AnalysisDataFrameHeader &frame) override=0 |
Called at the start of each data frame. More... | |
void | pointsAdded (const AnalysisDataPointSetRef &points) override=0 |
Called one or more times during each data frame. More... | |
void | frameFinished (const AnalysisDataFrameHeader &header) override=0 |
Called when a data frame is finished. More... | |
void | frameFinishedSerial (int index) override=0 |
Called in sequential order for each frame after they are finished. More... | |
void | dataFinished () override=0 |
Called (once) when no more data is available. More... | |
Additional Inherited Members | |
Public Types inherited from gmx::IAnalysisDataModule | |
enum | Flag { efAllowMultipoint = 1 << 0, efOnlyMultipoint = 1 << 1, efAllowMulticolumn = 1 << 2, efAllowMissing = 1 << 3, efAllowMultipleDataSets = 1 << 4 } |
Possible flags for flags(). More... | |
|
overridepure virtual |
Called (once) when no more data is available.
unspecified | Can throw any exception required by the implementing class to report errors. |
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Returns properties supported by the module.
The return value of this method should not change after the module has been added to a data (this responsibility can, and in most cases must, be delegated to the user of the module).
The purpose of this method is to remove the need for common checks for data compatibility in the classes that implement the interface. Instead, AbstractAnalysisData performs these checks based on the flags provided.
Does not throw.
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Called when a data frame is finished.
[in] | header | Header information for the frame that is ending. |
unspecified | Can throw any exception required by the implementing class to report errors. |
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Called in sequential order for each frame after they are finished.
[in] | frameIndex | Index of the next finished frame. |
unspecified | Can throw any exception required by the implementing class to report errors. |
This method is called after frameFinished(), but with an additional constraint that it is always called in serial and with an increasing frameIndex
. Parallel data modules need this to serialize their data for downstream serial modules; AnalysisDataModuleSerial provides an empty implementation, as there frameFinished() can be used for the same purpose.
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Called at the start of each data frame.
[in] | frame | Header information for the frame that is starting. |
unspecified | Can throw any exception required by the implementing class to report errors. |
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Called (once) for parallel data when the data has been set up.
[in] | data | Data object to which the module is added. |
[in] | options | Parallelization properties of the input data. |
APIError | if the provided data is not compatible. |
unspecified | Can throw any exception required by the implementing class to report errors. |
This method is called instead of dataStarted() if the input data has the capability to present data in non-sequential order. If the method returns true, then the module accepts this and frame notification methods may be called in that non-sequential order. If the method returns false, then the frame notification methods are called in sequential order, as if dataStarted() had been called.
See dataStarted() for general information on initializing the data. That applies to this method as well, with the exception that calling AbstractAnalysisData::requestStorage() is currently not very well supported (or rather, accessing the requested storage doesn't work).
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.
|
overridepure virtual |
Called one or more times during each data frame.
[in] | points | Set of points added (also provides access to frame-level data). |
APIError | if the provided data is not compatible. |
unspecified | Can throw any exception required by the implementing class to report errors. |
Can be called once or multiple times for a frame. For all data objects currently implemented in the library (and all objects that will use AnalysisDataStorage for internal implementation), it is called exactly once for each frame if the data is not multipoint, but currently this restriction is not enforced.
Implements gmx::IAnalysisDataModule.
Implemented in gmx::AnalysisDataWeightedHistogramModule, and gmx::AnalysisDataSimpleHistogramModule.