Gromacs  2024.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions
gmx::AnalysisDataVectorPlotModule Class Reference

#include <gromacs/analysisdata/modules/plot.h>

+ Inheritance diagram for gmx::AnalysisDataVectorPlotModule:
+ Collaboration diagram for gmx::AnalysisDataVectorPlotModule:

Description

Plotting module specifically for data consisting of vectors.

See AbstractPlotModule for common plotting options.

Public Types

enum  Flag {
  efAllowMultipoint = 1 << 0, efOnlyMultipoint = 1 << 1, efAllowMulticolumn = 1 << 2, efAllowMissing = 1 << 3,
  efAllowMultipleDataSets = 1 << 4
}
 Possible flags for flags(). More...
 

Public Member Functions

 AnalysisDataVectorPlotModule (const AnalysisDataPlotSettings &settings)
 Creates AnalysisDataVectorPlotModule and assign common settings.
 
void setWriteX (bool bWrite)
 Set whether to write X component.
 
void setWriteY (bool bWrite)
 Set whether to write Y component.
 
void setWriteZ (bool bWrite)
 Set whether to write Z component.
 
void setWriteNorm (bool bWrite)
 Set whether to write norm of the vector.
 
void setWriteMask (const bool bWrite[4])
 Set mask for what to write.
 
void pointsAdded (const AnalysisDataPointSetRef &points) override
 Called one or more times during each data frame. More...
 
void setSettings (const AnalysisDataPlotSettings &settings)
 Set common settings for the plotting.
 
void setFileName (const std::string &filename)
 Set the output file name. More...
 
void setPlainOutput (bool bPlain)
 Set plain output. More...
 
void setErrorsAsSeparateColumn (bool bSeparate)
 Plot errors as a separate output column after each value column.
 
void setOmitX (bool bOmitX)
 Omit the X coordinates from the output. More...
 
void setTitle (const char *title)
 Set plot title.
 
void setTitle (const std::string &title)
 Set plot title. More...
 
void setSubtitle (const char *subtitle)
 Set plot subtitle.
 
void setSubtitle (const std::string &subtitle)
 Set plot subtitle. More...
 
void setXLabel (const char *label)
 Set X axis label.
 
void setXAxisIsTime ()
 Treat X axis as time. More...
 
void setYLabel (const char *label)
 Set Y axis label.
 
void setLegend (int nsets, const char *const *setname)
 Add legend from an array of strings. More...
 
void appendLegend (const char *setname)
 Add a legend string for the next data set. More...
 
void appendLegend (const std::string &setname)
 Add a legend string for the next data set. More...
 
void setXFormat (int width, int precision, char format= 'f')
 Set field width and precision for X value output.
 
void setYFormat (int width, int precision, char format= 'f')
 Set field width and precision for Y value output.
 
int flags () const override
 Returns properties supported by the module. More...
 
void dataStarted (AbstractAnalysisData *data) override
 Called (once) when the data has been set up properly. More...
 
void frameStarted (const AnalysisDataFrameHeader &header) override
 Called at the start of each data frame. More...
 
void frameFinished (const AnalysisDataFrameHeader &header) override
 Called when a data frame is finished. More...
 
void dataFinished () override
 Called (once) when no more data is available. More...
 

Protected Member Functions

bool isFileOpen () const
 Whether an output file has been opened.
 
void writeValue (const AnalysisDataValue &value) const
 Appends a single value to the current output line. More...
 

Member Enumeration Documentation

Possible flags for flags().

Enumerator
efAllowMultipoint 

The module can process multipoint data.

efOnlyMultipoint 

The module does not make sense for non-multipoint data.

efAllowMulticolumn 

The module can process data with more than one column.

efAllowMissing 

The module can process data with missing points.

efAllowMultipleDataSets 

The module can process data with multiple data sets.

Member Function Documentation

void gmx::AbstractPlotModule::appendLegend ( const char *  setname)
inherited

Add a legend string for the next data set.

Multiple calls to setLegend() and/or appendLegend() are added together.

void gmx::AbstractPlotModule::appendLegend ( const std::string &  setname)
inherited

Add a legend string for the next data set.

Multiple calls to setLegend() and/or appendLegend() are added together.

void gmx::AbstractPlotModule::dataFinished ( )
overridevirtualinherited

Called (once) when no more data is available.

Exceptions
unspecifiedCan throw any exception required by the implementing class to report errors.

Implements gmx::AnalysisDataModuleSerial.

void gmx::AbstractPlotModule::dataStarted ( AbstractAnalysisData data)
overridevirtualinherited

Called (once) when the data has been set up properly.

Parameters
[in]dataData object to which the module is added.
Exceptions
APIErrorif the provided data is not compatible.
unspecifiedCan throw any exception required by the implementing class to report errors.

When the data is ready, either this method or parallelDataStarted() is called, depending on the nature of the input data. If this method is called, the input data will always present the frames in sequential order.

The data to which the module is attached is passed as an argument to provide access to properties of the data for initialization and/or validation. The module can also call AbstractAnalysisData::requestStorage() if needed.

This is the only place where the module gets access to the data; if properties of the data are required later, the module should store them internally. It is guaranteed that the data properties (column count, whether it's multipoint) do not change once this method has been called.

Notice that data will be a proxy object if the module is added as a column module, not the data object for which AbstractAnalysisData::addColumnModule() was called.

Implements gmx::AnalysisDataModuleSerial.

int gmx::AbstractPlotModule::flags ( ) const
overridevirtualinherited

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::AnalysisDataModuleSerial.

void gmx::AbstractPlotModule::frameFinished ( const AnalysisDataFrameHeader header)
overridevirtualinherited

Called when a data frame is finished.

Parameters
[in]headerHeader information for the frame that is ending.
Exceptions
unspecifiedCan throw any exception required by the implementing class to report errors.

Implements gmx::AnalysisDataModuleSerial.

void gmx::AbstractPlotModule::frameStarted ( const AnalysisDataFrameHeader frame)
overridevirtualinherited

Called at the start of each data frame.

Parameters
[in]frameHeader information for the frame that is starting.
Exceptions
unspecifiedCan throw any exception required by the implementing class to report errors.

Implements gmx::AnalysisDataModuleSerial.

void gmx::AnalysisDataVectorPlotModule::pointsAdded ( const AnalysisDataPointSetRef points)
overridevirtual

Called one or more times during each data frame.

Parameters
[in]pointsSet of points added (also provides access to frame-level data).
Exceptions
APIErrorif the provided data is not compatible.
unspecifiedCan 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::AbstractPlotModule.

void gmx::AbstractPlotModule::setFileName ( const std::string &  filename)
inherited

Set the output file name.

If no file name is set (or if filename is empty), no output occurs.

void gmx::AbstractPlotModule::setLegend ( int  nsets,
const char *const *  setname 
)
inherited

Add legend from an array of strings.

Multiple calls to setLegend() and/or appendLegend() are added together.

void gmx::AbstractPlotModule::setOmitX ( bool  bOmitX)
inherited

Omit the X coordinates from the output.

This method only makes sense when combined with setPlainOutput().

void gmx::AbstractPlotModule::setPlainOutput ( bool  bPlain)
inherited

Set plain output.

If bPlain is true, no xvgr headers are written to the file. In this case, only setOmitX(), setXFormat(), and setYFormat() methods have any effect on the output.

void gmx::AbstractPlotModule::setSubtitle ( const std::string &  subtitle)
inherited

Set plot subtitle.

void gmx::AbstractPlotModule::setTitle ( const std::string &  title)
inherited

Set plot title.

void gmx::AbstractPlotModule::setXAxisIsTime ( )
inherited

Treat X axis as time.

Sets the label for the axis accordingly and also scales output to take into account the correct time unit.

void gmx::AbstractPlotModule::writeValue ( const AnalysisDataValue value) const
protectedinherited

Appends a single value to the current output line.

Parameters
[in]valueValue to append.

Should be used from pointsAdded() implementations in derived classes to write out individual y values to the output.

Must not be called if isFileOpen() returns false.


The documentation for this class was generated from the following files: