Function symmetry::symm_srotate

Function Documentation

void symmetry::symm_srotate(int natoms, const std::vector<int> &nat, const std::vector<std::vector<double>> &coord, const std::array<double, 3> &axis, double sina, double cosa, double delta, int &nc, std::vector<int> &ntrans, double &delta3)

Performs an improper rotation (rotation followed by reflection)

This function applies an improper rotation transformation (rotation around an axis followed by reflection through a plane perpendicular to that axis) and checks which atoms are mapped to equivalent positions.

Parameters:
  • natoms – Number of atoms in the molecule

  • nat – Vector of atomic numbers for each atom

  • coord – 3D coordinates of atoms (vector of vectors, size 3 x natoms)

  • axis – Unit vector defining the rotation axis

  • sina – Sine of the rotation angle

  • cosa – Cosine of the rotation angle

  • delta – Tolerance for symmetry detection (distance threshold)

  • nc – Output: Number of atoms that are properly mapped by this improper rotation

  • ntrans – Output: Permutation array showing atom mappings (size natoms)

  • delta3 – Output: Maximum deviation from perfect symmetry