PointGroup class#

class AaronTools.symmetry.PointGroup(geom, tolerance=0.1, max_rotation=6, rotation_tolerance=0.01, groups=None, center=None)#

determines point group and valid symmetry operations for a structure

__init__(geom, tolerance=0.1, max_rotation=6, rotation_tolerance=0.01, groups=None, center=None)#
get_symmetry_elements(geom, tolerance=0.1, max_rotation=6, rotation_tolerance=0.01, groups=None)#

determine what symmetry elements are valid for geom

Parameters:
  • geom (Geometry) – structre

  • tolerance (float) – maximum error for an element to be valid

  • max_rotation (int) – maximum n for Cn (Sn can be 2x this)

  • rotation_tolerance (float) – tolerance in radians for angle between axes to be for them to be considered parallel/antiparallel/orthogonal

Return type:

list(SymmetryElement)

determine_point_group(rotation_tolerance=0.01)#

determines point group of self by looing at self.elements

Parameters:

rotation_tolerance (float) – tolerance in radians for axes to be considered parallel/antiparallel/orthogonal

Returns:

point group name

property symmetry_number#

external symmetry number

equivalent_positions()#

returns a list of lists of atoms that are symmetry-equivalent

property optically_chiral#

is this point group optically_chiral?

idealize_geometry()#

adjust coordinates of self.geom to better match this point group also re-determines point group and symmetry elements