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.