Gromacs  2022.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions | Directories | Files
Parsing and Evaluation of Analysis Selections (selection)
+ Collaboration diagram for Parsing and Evaluation of Analysis Selections (selection):

Description

Provides functionality for initializing and evaluating selections.

The core of the selection engine is accessed through gmx::SelectionCollection, which manages a set of selections. Documentation for that class explains the general selection mechanisms.

For each selection that is parsed using a gmx::SelectionCollection, a gmx::Selection handle is returned and can be used to access information about that selection. gmx::SelectionPosition is a helper class used to access information about individual positions in a selection. These classes refer to internal state within the gmx::SelectionCollection, and their contents update automatically when the gmx::SelectionCollection is compiled or evaluated.

This module also provides gmx::SelectionOption and gmx::SelectionOptionInfo classes for declaring options that evaluate to selections (see Extensible Handling of Options (options) for general explanation of the options mechanism). These classes provide the main interface to obtain gmx::Selection objects in trajectory analysis using gmx::TrajectoryAnalysisModule. To use these classes outside the trajectory analysis framework, a gmx::SelectionOptionManager or a gmx::SelectionOptionBehavior needs to be created to serve as a bridge between the selection option classes and the gmx::SelectionCollection object. gmx::SelectionFileOption can be used to implement generic file input for selection options (done internally within gmx::SelectionOptionBehavior).

The selection module contains some lower-level functionality that is currently internal to it (centerofmass.h, indexutil.h, poscalc.h, position.h), but could possibly be useful also outside the module. It should be considered whether they should be moved somewhere else.

Author
Teemu Murtola teemu.nosp@m..mur.nosp@m.tola@.nosp@m.gmai.nosp@m.l.com

Classes

class  gmx::FileNameOptionManager
 Handles interaction of file name options with global options. More...
 
class  gmx::AnalysisNeighborhoodPositions
 Input positions for neighborhood searching. More...
 
class  gmx::AnalysisNeighborhood
 Neighborhood searching for analysis tools. More...
 
class  gmx::AnalysisNeighborhoodPair
 Value type to represent a pair of positions found in neighborhood searching. More...
 
class  gmx::AnalysisNeighborhoodSearch
 Initialized neighborhood search with a fixed set of reference positions. More...
 
class  gmx::AnalysisNeighborhoodPairSearch
 Initialized neighborhood pair search with a fixed set of positions. More...
 
class  gmx::Selection
 Provides access to a single selection. More...
 
class  gmx::SelectionPosition
 Provides access to information about a single selected position. More...
 
class  gmx::SelectionCollection
 Collection of selections. More...
 
struct  gmx::SelectionTopologyProperties
 Describes topology properties required for selection evaluation. More...
 
class  gmx::SelectionFileOption
 Specifies a special option that provides selections from a file. More...
 
class  gmx::SelectionFileOptionInfo
 Wrapper class for accessing and modifying selection file option information. More...
 
class  gmx::SelectionOption
 Specifies an option that provides selection(s). More...
 
class  gmx::SelectionOptionInfo
 Wrapper class for accessing and modifying selection option information. More...
 
class  gmx::ITopologyProvider
 Provides topology information to SelectionOptionBehavior. More...
 
class  gmx::SelectionOptionBehavior
 Options behavior to allow using SelectionOptions. More...
 
class  gmx::SelectionOptionManager
 Handles interaction of selection options with other options and user input. More...
 

Functions

static bool next_group_index (int atomIndex, const gmx_mtop_t *top, e_index_t type, int *id)
 Helper for splitting a sequence of atom indices into groups. More...
 
HelpTopicPointer gmx::createSelectionHelpTopic ()
 */ More...
 

Directories

directory selection
 Parsing and Evaluation of Analysis Selections (selection)
 
directory tests
 Unit tests for Parsing and Evaluation of Analysis Selections (selection).
 

Files

file  indexutil.h
 API for handling index files and index groups.
 
file  nbsearch.h
 API for neighborhood searching for analysis.
 
file  position.h
 API for handling positions.
 
file  selection.h
 Declares gmx::Selection and supporting classes.
 
file  selectioncollection.h
 Declares gmx::SelectionCollection.
 
file  selectionenums.h
 Declares common types used in selections.
 
file  selectionfileoption.h
 Declares gmx::SelectionFileOption and gmx::SelectionFileOptionInfo.
 
file  selectionoption.h
 Declares gmx::SelectionOption and gmx::SelectionOptionInfo.
 
file  selectionoptionbehavior.h
 Declares gmx::SelectionOptionBehavior.
 
file  selectionoptionmanager.h
 Declares gmx::SelectionOptionManager.
 
file  selhelp.h
 Functions for initializing online help for selections.
 
file  selection.h
 Public API convenience header for selection handling.
 

Function Documentation

HelpTopicPointer gmx::createSelectionHelpTopic ( )

*/

Creates a help tree for selections.

Exceptions
std::bad_allocif out of memory.
Returns
Root topic of the created selection tree.
static bool next_group_index ( int  atomIndex,
const gmx_mtop_t *  top,
e_index_t  type,
int *  id 
)
static

Helper for splitting a sequence of atom indices into groups.

Parameters
[in]atomIndexIndex of the next atom in the sequence.
[in]topTopology structure.
[in]typeType of group to split into.
[in,out]idVariable to receive the next group id.
Returns
true if atomIndex starts a new group in the sequence, i.e., if *id was changed.

*id should be initialized to -1 before first call of this function, and then each atom index in the sequence passed to the function in turn.