Function symmetry::symclass

Function Documentation

void symmetry::symclass(int natoms, int nprm, const std::vector<std::vector<int>> &nper, int &nseq, std::vector<int> &nccl, std::vector<std::vector<int>> &nscl, const std::vector<int> &nat, const std::vector<std::string> &symb, int nout)

Classify atoms into equivalence classes based on symmetry permutations.

This function groups atoms into equivalence classes where atoms in the same class are related by symmetry operations. It uses the permutation matrix to determine which atoms are equivalent under the symmetry group.

Parameters:
  • natoms – Number of atoms in the molecule

  • nprm – Number of symmetry permutations

  • nper – Permutation matrix (natoms x nprm) where nper[i][j] is the atom mapped to i by permutation j

  • nseq – Output: Number of equivalence classes found

  • nccl – Output: Vector containing the size of each equivalence class

  • nscl – Output: 2D vector where nscl[k][c] contains the atoms in class c (0-based indexing)

  • nat – Vector of atomic numbers (currently unused)

  • symb – Vector of element symbols (currently unused)

  • nout – Output verbosity level (currently unused)