Gromacs
2024.4
|
#include <gromacs/selection/indexutil.h>
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... | |
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.