Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Attributes
gmx_ana_indexmap_t Struct Reference

#include <gromacs/selection/indexutil.h>

Description

Data structure for calculating index group mappings.

Public Attributes

e_index_t type
 Type of the mapping. More...
 
int * refid
 Current reference IDs. More...
 
int * mapid
 Current mapped IDs. More...
 
t_blocka mapb
 Mapped block structure. More...
 
int * orgid
 Customizable ID numbers for the original blocks. More...
 
t_blocka b
 Block data that defines the mapping (internal use only). More...
 
bool bStatic
 true if the current reference IDs are for the whole group (internal use only). More...
 

Member Data Documentation

t_blocka gmx_ana_indexmap_t::b

Block data that defines the mapping (internal use only).

The data is initialized by gmx_ana_indexmap_init() and is not changed after that. Hence, it cannot be directly applied to the index group passed to gmx_ana_indexmap_update() unless bMaskOnly was specified or the index group is identical to the one provided to gmx_ana_indexmap_init().

bool gmx_ana_indexmap_t::bStatic

true if the current reference IDs are for the whole group (internal use only).

This is used internally to optimize the evaluation such that gmx_ana_indexmap_update() does not take any time if the group is actually static.

t_blocka gmx_ana_indexmap_t::mapb

Mapped block structure.

A block structure that corresponds to the current index group. mapb.nra and mapb.a correspond to the last mapped index group.

int* gmx_ana_indexmap_t::mapid

Current mapped IDs.

This array provides IDs for the current index group. Instead of a zero-based mapping that refid provides, the values from the orgid array are used, thus allowing the mapping to be customized. In other words, mapid[i] = orgid[refid[i]]. If bMaskOnly is provided to gmx_ana_indexmap_update(), this array equals orgid.

int* gmx_ana_indexmap_t::orgid

Customizable ID numbers for the original blocks.

This array has b.nr elements, each defining an original ID number for a block in b (i.e., in the original group passed to gmx_ana_indexmap_init()). These are initialized in gmx_ana_indexmap_init() based on the type:

All the above numbers are zero-based. After gmx_ana_indexmap_init(), the caller is free to change these values if the above are not appropriate. The mapped values can be read through mapid.

int* gmx_ana_indexmap_t::refid

Current reference IDs.

This array provides a mapping from the current index group (last given to gmx_ana_indexmap_update()) to the blocks in b, i.e., the original index group used in gmx_ana_indexmap_init(). The mapping is zero-based. If bMaskOnly is provided to gmx_ana_indexmap_update(), the indices for blocks not present in the current group are set to -1, otherwise they are removed completely and the nr field updated.

e_index_t gmx_ana_indexmap_t::type

Type of the mapping.


The documentation for this struct was generated from the following file: