Gromacs  2025-dev-20240710-afbd73d
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Framework for energy analysis

GROMACS provides a framework for implementing flexible energy data analysis routines. It consists of a few components that can also be used individually, but in most cases it is desirable to use features from all of them to get most out of the framework. The main features are:

High-level framework

The Framework for Energy Analysis (energyanalysis) module provides the high-level framework that integrates all the pieces together. It provides the abstract base class for analysis tool modules (gmx::EnergyAnalysisModule), and the code that runs such a module as a command-line tool (gmx::EnergyAnalysisCommandLineRunner). See energyanalysis module documentation for more details.

Output data handling

The Parallelizable Handling of Output Data (analysisdata) module provides two things:

The general concept is explained in more detail on a separate page: Analysis output data handling. The analysisdata module documentation provides more technical details.

Input options

To declare input data for the tool (typically, command-line options, including input files and selections), Extensible Handling of Options (options) module is used. The analysis tool code receives an instance of gmx::IOptionsContainer for one of its initialization methods, and uses it to provide its input options. Basic options are declared in basicoptions.h. For each option, the tool declares a local variable that will receive the value for that option. After the options are parsed from the command line (by the framework), the tool code can read the values from these variables. The option declarations filled into the gmx::IOptionsContainer object are also used to provide help to the user (also handled by the framework). See the documentation for gmx::EnergyAnalysisModule and the options module documentation for more details.