Class for handling atom ranges and dimensions of domain decomposition zones.
In the eighth-shell domain decomposition there is a home zone and up to seven zones in the halo. Along each dimension which is decomposed, there are two rows of zones, resulting in a maximum of 2^3=8 zones. For computing pair interactions, each pair only once, we take atom pairs between pairs of zones where the two zones are labelled "i" and "j", like atom pairs in the pair list. This class provides a list of zone pairs (i,j) from which to collect atom pairs for computing all pair interactions within a given cut-off distance. These pairs are provided as range of consecutive j-zones for each i-zone.
|
| DomdecZones (ArrayRef< const int > ddDims) |
|
int | numZones () const |
| Returns the number of zones.
|
|
int | numIZones () const |
| Returns the number of "i-zones" for non-bonded pair interactions.
|
|
const Range< int > & | jZoneRange (int iZone) const |
| Returns the j-zone range for i-zone iZone .
|
|
const IVec & | shift (int zone) const |
| Returns the shift of zone zone with respect to the home zone.
|
|
const Range< int > | atomRange (int zone) const |
| Returns the atom index range for zone zone .
|
|
int | directNeighborAtomRangeEnd (int zone) const |
| Returns the atom index range end for atoms from directly neighboring domains for zone zone .
|
|
Range< int > | jAtomRange (const int iZone) const |
| Returns the j-atom index range for i-zone iZone .
|
|
const gmx_domdec_zone_size_t & | sizes (int zone) const |
| Returns the sizes for zone zone .
|
|
void | setAtomRangeEnd (const int zone, const int atomRangeEnd, const bool rangeIsFromDirectNeighbor) |
| Sets the end of the atom range for zone zone . More...
|
|
void | setSizes (const gmx_domdec_t &dd, const matrix box, const gmx_ddbox_t *ddbox, const gmx::Range< int > zoneRange) |
| Set zone dimensions for a range of zones. More...
|
|