Skip to content

Data Structures

Stephen Goodlett edited this page Jul 10, 2025 · 1 revision

Data classes

Atom

Data class holding:

  • atom.Z: Atomic number
  • atom.mass: Atomic mass
  • atom.xyz: Cartesian coordinates

SEA

The symmetry equivalent atoms (SEA) are those the atoms determined to be equivalent by inspection of the distance matrix.

  • sea.label: Used to describe geometry and thus the possible rotations of a SEA set. Options: "Single Atom", "Linear", "Spherical", "Regular Polygon", "Irregular Polygon", "Asymmetric Rotor", "Oblate Symmetric Top", "Prolate Symmetric Top".
  • sea.subset: Indices of atoms that form the SEA set.
  • sea.axis: Not always utilized, describes principal axis of SEA set. Useful for finding rotations.

Symel

  • symbol: String of Schoenflies symbol for symmetry element.
  • vector: Not defined for E or i, rotation axis for proper and improper rotations, plane normal vector for reflections.
  • rrep: Cartesian representation of symmetry operation.
  • m: Equal to the power of the rotation used to generate the element.
  • n: Typically equal to the order of a rotation axis from which the element was generated.
  • O: Operation used to generate element from proper rotations about primary axis. Options: E, sigma_v, C_2', i, sigma_h

Irrep

  • symbol: Label of irreducible representation matrix.
  • idx:int: Label if multiple irreps with same name ("A", "B", "E", etc.)
  • sub_idx: Index for separably degenerate irreps.
  • d: Dimension of irrep.

Molecule

Point Group

Attributes:

  • self.str: Schoenflies label.
  • self.family: Family of point group, "C", "D", "S", etc.
  • self.subfamily: Subfamily of point group, None, "v", "d", "h", etc.
  • self.n: Number associated with label.

The family, subfamily, and n can be used to reconstruct the original Schoenflies string. For instance, the $\mathrm{D}_{5d}$ point group would have:

  • family = "D"
  • subfamily = "d"
  • n = 5

If there is no subfamily ($\mathrm{C}_2$) or no n ($\mathrm{C}_s$) then the attribute is None. For linear point groups, n = 0.

Methods

  • PointGroup.from_string: Constructs a PointGroup object from a Schoenflies string.
  • PointGroup.dumb_pg: Automatically runs after a PointGroup is initialized to check for unreasonable point groups. For instance, $\mathrm{C}_{1h}$ would throw a Dumb point group exception.

Symtext

The fundamental data structure of MolSym is the Symtext. The purpose of this object is to store relevant symmetry information for a molecule and point group.

Attributes:

symtext.mol

The reference molecule.

Rotation matrices

Point group

Symels

Atom map

Multiplication table

Irreducible representations

Irreducible representation matrices

Character table

Methods

  • Symtext from a MolSym Molecule
  • Symtext from an .xyz file
  • Direct product
  • Reduction coefficient
  • Rotational symmetry number
  • Symtext to subgroup

Clone this wiki locally