Indexing atoms

There are many methods in sisl that will do stuff based no atomic indices. Generally one can index subsets of atoms via direct indices, but sometimes it can be beneficial to index atoms based on other things, such as:

  • species name

  • odd/even indices

  • specific coordinates

To accommodate more powerful indices one can use the below class constructs to select atoms based on particular things:

AtomCategory

AtomFracSite

Classify atoms based on fractional sites for a given supercell

AtomXYZ

Classify atoms based on coordinates

AtomZ

Classify atoms based on atomic number

AtomIndex

Classify atoms based on indices

AtomSeq

Classify atoms based on their indices using a sequence string.

AtomTag

Classify atoms based on their tag.

AtomOdd

Classify atoms based on indices (odd in this case)

AtomEven

Classify atoms based on indices (even in this case)

AtomNeighbors

Classify atoms based on number of neighbors

NullCategory

Special Null class which always represents a classification not being anything