Symmetry#

autode.thermochemistry.symmetry.cn_and_axes(species, pcoords, max_n, dist_tol)#

Find the highest symmetry rotation axis

Parameters:
  • max_n (int) –

  • dist_tol (float) –

Returns:

np.ndarray)):

Return type:

(dict(int

autode.thermochemistry.symmetry.create_pcoords(species)#

Return a tensor where the first dimension is the size of the number of unique atom types in a molecule, the second, the atoms of that type and the third the number of dimensions in the coordinate space (3)

Returns:

(np.ndarray) shape (n, m, 3)

autode.thermochemistry.symmetry.get_possible_axes(coords, max_triple_dist=2.0, sim_axis_tol=0.1)#

Possible rotation axes in a molecule. Currently limited to average vectors and cross products i.e.:

  Y          Y --->
 / \        / \
X   Y      X   Z

  |
  |
  ,
Parameters:
  • max_triple_dist (float) –

  • sim_axis_tol (float) –

Return type:

(list(np.ndarray))

autode.thermochemistry.symmetry.is_same_under_n_fold(pcoords, axis, n, m=1, tol=0.25, excluded_pcoords=None)#

Does applying an n-fold rotation about an axis generate the same structure back again?

Parameters:
  • axis (np.ndarray) – shape = (3,)

  • n (int) – n-fold of this rotation

  • m (int) – Apply this n-fold rotation m times

  • tol (float) –

  • excluded_pcoords (list) –

Return type:

(bool)

autode.thermochemistry.symmetry.strip_identical_and_inv_axes(axes, sim_axis_tol)#

For a list of axes remove those which are similar to within some distance tolerance, or are inverses to within that tolerance

Return type:

(list(np.ndarray))

autode.thermochemistry.symmetry.symmetry_number(species, max_n_fold_rot_searched=6, dist_tol=0.25)#

Calculate the symmetry number of a molecule. See: Theor Chem Account (2007) 118:813–826. 10.1007/s00214-007-0328-0

Keyword Arguments:
  • max_n_fold_rot_searched (int) –

  • dist_tol (float) – Distance tolerance (Å)

Return type:

(int)