Symmetry Embedding

SitePermutation

LatticeTools.embedMethod
embed(lattice, translation_operation)

Embed the simplest version of integer translation (no mapping between sites etc.)

source
LatticeTools.embedMethod
embed(lattice, point_operation)

Embed the simplest version of point operation. (no local unitary operation)

source

SymmetryEmbedding

LatticeTools.generator_elementsMethod
generator_elements(symbed::SymmetryEmbedding)

Get the generators of the symmetry embedding, based on the generators of the underlying symmetry. The embedding is allowed to be one-to-one, in which case the return value may contain duplicates.

source
LatticeTools.fractional_momentumMethod
fractional_momentum(symbed::SymmetryEmbedding{TranslationSymmetry}, args...)

Return fractional momentum(s) of the translation symmetry embedding.

source
fractional_momentum(sym, g)

Return the gth fractional momentum of the normal (translation) symmetry.

Arguments

  • sym::SymmorphicSymmetry{<:TranslationSymmetry, S2, E}
source
LatticeTools.iscompatibleMethod
iscompatible(tsymbed, psymbed)

Check whether the point symmetry embedding psymbed is compatible with the translation symmetry embedding tsymbed, i.e. whether they have the same "lattice".

source
LatticeTools.iscompatibleMethod
iscompatible(tsymbed, tsym_irrep_index, psymbed)

Check whether the point symmetry embedding psymbed is compatible with the translation symmetry irrep defined by tsym_irrep_index and symmetry(tsymbed). In other words, the little group elements

source

Embedding a Symmetry onto a Lattice

LatticeTools.embedMethod
embed(lattice::Lattice, tsym::TranslationSymmetry)

Embed translation symmetry tsym to lattice.

source

findsitemap

LatticeTools.findsitemapFunction
findsitemap(unitcell, translation_operation)

Find which site gets mapped to which site with what lattice displacement. Return a vector of tuples (j, Rj) at index i, representing that the site i gets mapped to site j with lattice displacement Rj.

Since periodic boundary condition is always assumed, the return value always exists.

This function is used to find the mapping between sites under translation symmetry in a given lattice. The overall transformation will be a combiation of (1) the result here, and (2) Bravais lattice transformation. Since all the integer translations will be taken care of by the Bravais lattice transformation, Rj here is all zero vectors.

source
findsitemap(unitcell, translation_symmetry)

Find the sitemap for every element of the translation symmetry. Return [findsitemap(unitcell, m) for m in elements(translation_symmetry)].

source
findsitemap(unitcell, point_operation)

Find which site gets mapped to which site with what lattice displacement. Return a vector of tuples (j, Rj) at index i, representing that the site i gets mapped to site j with lattice displacement Rj. If the unit cell is not compatible with the point operation, return nothing.

source
findsitemap(unitcell, point_symmetry)

Find the sitemap for every element of the point symmetry. Return nothing if the unit cell is incompatible with any element of the point symmetry.

source