Isotropy subgroup

class spgrep_modulation.isotropy.IsotropyEnumerator(little_rotations, little_translations, qpoint, small_rep, max_denominator=100, atol=1e-06)[source]

Enumerate isotropy subgroups of given little group and small representation.

Initialize class.

Parameters
  • little_rotations (array[int], (order, 3, 3)) – Rotation parts of a little group

  • little_translations (array, (order, 3)) – Translation parts of a little group

  • qpoint (array, (3, )) – Reciprocal point

  • small_rep (array, (order, dim, dim)) – Small representation of space group at qpoint

  • max_denominator (int, default=100) – Maximal value to infer denominators of qpoint

  • atol (float, default=1e-6) – Absolute tolerance to avoid numerical noise

property little_rotations

Return rotations of little group at qpoint.

property little_translations

Return translations of little group at qpoint.

property qpoint

Return qpoint.

property small_rep

Return small representation of space group.

property maximal_isotropy_subgroups

Return list of indices for isotropy subgroups.

Let subgroup = self.maximal_isotropy_subgroups[i]. (self.little_rotations[subgroup], self.little_translations[subgroup]) gives a coset of the i-th isotropy subgroup.

property order_parameter_directions

Return order-parameter directions of isotropy subgroups.

Let opd = self.order_parameter_directions[i], which is an array with (num_direction, dim). num_direction is the number of free parameters for the i-th isotropy subgroup. dim is dimension of the given small representation.

spgrep_modulation.isotropy.get_translational_subgroup(qpoint, max_denominator=100)[source]

Return transformation matrix of the following sublattice.

Let t be a lattice point of the returned sublattice. Then, np.dot(t, qpoint) is integer.

Parameters
  • qpoint (array, (3, )) – Reciprocal point

  • max_denominator (int, default=100) – Maximal value to infer denominators of qpoint

Returns

transformationtransformation @ qpoint is integer vector.

Return type

array, (3, 3)

spgrep_modulation.isotropy.enumerate_point_subgroup(table, preserve_sublattice, return_conjugacy_class=True)[source]

Enumerate conjugacy subgroups of point group.

Parameters
  • table (array[int], (order, order)) – Multiplication table of group

  • preserve_sublattice (list[bool]) – Specify preserve_sublattice[i] = True if the i-th operation preserves translational subgroup of isotropy subgroup

  • return_conjugacy_class (bool, default=True) – If true, return representatives of conjugacy classes.

Returns

subgroups

Return type

list[list[int]]

spgrep_modulation.isotropy.search_compliment(rotations, translations, indices, transformation, table, atol=1e-06)[source]

Return true if some adjusted translations enable given point group and translational subgroup correspond to a space group.