Space Symmetry Analysis

LatticeTools.jl provides functionalities space symmetry analysis, useful for creating symmetry sectors of quantum Hamiltonian. (Check out Using Symmetry in Exact Diagonalization.)

Group

Space symmetry operations (translation, rotation, inversion, mirror, etc.) form a mathematical structure called group. Within LatticeTools.jl, the term group refers to the mathematical group structure of a symmetry, which essentially boils down to its multiplication table. Currently, the only type which implements a group is FiniteGroup.

The elements of a FiniteGroup are consecutive integers from 1 to n: The identity element is always represented by 1. The following example produces the Klein four-group.

julia> g = FiniteGroup([1 2 3 4; 2 1 4 3; 3 4 1 2; 4 3 2 1])
FiniteGroup([1 2 3 4; 2 1 4 3; 3 4 1 2; 4 3 2 1], [1, 2, 2, 2], [1, 2, 3, 4], [[1], [2], [3], [4]])

Group binary operation can be applied by group_product

julia> group_product(g, 3, 4)
2

julia> p = group_product(g);

julia> p(3, 4)
2

Given a group, a subgroup which contains certain elements can be generated by generate_subgroup. The function returns the set of elements, not the group structure, of the subgroup including all of the specified elements, along with elements that are generated by the group law.

julia> generate_subgroup(g, 3)
BitSet with 2 elements:
  1
  3

julia> generate_subgroup(g, [1, 3])
BitSet with 2 elements:
  1
  3

julia> generate_subgroup(g, [2, 3])
BitSet with 4 elements:
  1
  2
  3
  4

A group multiplication table of arbitrary objects with an arbitrary operation can be produced using group_multiplication_table:

julia> group_multiplication_table([[1 0; 0 1], [1 0; 0 -1], [-1 0; 0 1], [-1 0; 0 -1]])
4×4 Array{Int64,2}:
 1  2  3  4
 2  1  4  3
 3  4  1  2
 4  3  2  1

Space symmetry

The term symmetry, on the other hand, is used to refer to realizations of the group structures on the lattice. Examples are TranslationSymmetry, PointSymmetry.

In the current implementation of LatticeTools.jl, a symmetry object contains the following fields:

  • group
  • generators
  • conjugacy classes
  • element names
  • character table
  • irreps

(The character table and the irreps may be moved to a separate object in the future implementations.)

Translation symmetry

TranslationSymmetry represents a translation symmetry of the lattice with periodic boundary condition. The group structure of the translation operations in d dimensions is given by $T_{\infty} / T_s$, where $T_{\infty} = \{ \sum_{i=1}^{d} a_i n_i | n_i \in \mathbb{Z} \}$ is the infinite lattice translations isomorphic to $\mathbb{Z}^{d}$, and $T_s = \{ \sum_{i=1}^{d} b_i n_i | n_i \in \mathbb{Z} \}$ is the supercell translations isomorphic to $\mathbb{Z}_{n_1} \times \mathbb{Z}_{n_2} \times \cdots \times \mathbb{Z}_{n_d}$.

While a d-dimensional finite lattice can be generated by less than d elements, finding the allowed momentum points requires exactly d generating translations; some of these generators may be identity operation, mapping sites in ``different super cells''.

Since all translation groups are Abelian, the irreps are one-dimensional; they are the Fourier modes in terms of the generator elements.

Point symmetry

PointSymmetry has a slightly more complex structure than TranslationSymmetry. It can be non-abelian, and thus may have irreps of dimension 2 or higher. Also, there are only a finite number of them in a given dimension.

Symmorphic space symmetry

A space group contains both translation symmetry and point symmetry. In some (not all) cases, a space symmetry can be decomposed into translation symmetry and point symmetry. In other words, if there is a point $O$ where every element of the space group can be written as a product of translation operation and point operation about the point O, then the space group can be called symmorphic space group. If no such point exists, then the space group is non-symmorphic.

A symmorphic space symmetry is thus a semidirect product of translation symmetry and point symmetry:

\[ S = T \rtimes P\]

where S, T, and P are space symmetry, translation symmetry, and point symmetry about a point O.

In the current implementation of LatticeTools.jl, the point O is always assumed to be the origin. For proper specification of the space group, the sites need to be located at the correct positions.

Symmetry embedding

The elements of the space symmetry (without considering combination with some local unitary transformation) can be thought of as a subset of the permutation group of the lattice sites.

An embedding of a symmetry onto a lattice, is a symmetry structure whose elements are permutations of sites represented by SitePermutation.

Symmetry embedding of symmorphic symmetry

The semi-direct product and the embedding commutes.

    (T, P)           ↦   T ⋊ P

      ↧                    ↧

    (E(L,T), E(L,P)) ↦ E(L, T ⋊ P)

E(L, S) is embedding of abstract space group S onto lattice L.

Compatibility between symmetries, symmetry-embeddings, and their irrep components

In case of (symmorphic) space symmetry, we need to make sure that the translation symmetry and the point symmetry are "compatible". In other words, the symmetry that we impose must be allowed by the underlying lattice. Let's consider compatibilities between lattices and symmetries.

1. Between lattice and translation symmetry

Lattice is built on (1) definition of unitcell, and (2) Bravais lattice. Since the second part, the Bravais lattice (with periodic boundary condition), encodes directly the information of the translation symmetry, a Lattice and a TranslationSymmetry is compatible if they share the same Bravais lattice. No further requirement is needed.

2. Between lattice and point symmetry

In order for a point symmetry to be a good symmetry of the lattice, we need the Bravais lattice to be invariant under the point symmetry at least: whether this is the case or not depends on the lattice vectors, included in the UnitCell.

The current implementation of LatticeTools.jl, however, represent the point group operations in integer coordinates in units of lattice vectors. This makes a point symmetry always be always compatible with an infinite lattice of the right dimension.

For finite size lattices, however, the situation is different. Since a finite size lattice with periodic boundary condition can be understood as an infinite lattice modulo supercell, the Bravais lattice of the supercell also needs to be invariant under all operations of the point symmetry. The requirement therefore is that the column vectors of the shape matrix after point operation remain integer multiples of themselves.