class kwant.lattice.TranslationalSymmetry(*periods)[source]

Bases: kwant.builder.Symmetry

A translational symmetry defined in real space.

An alias exists for this common name: kwant.TranslationalSymmetry.

Group elements of this symmetry are integer tuples of appropriate length.


p0, p1, p2, ... : sequences of real numbers

The symmetry periods in real space.


This symmetry automatically chooses the fundamental domain for each new SiteFamily it encounters. If this site family does not correspond to a Bravais lattice, or if it does not have a commensurate period, an error is produced. A certain flexibility in choice of the fundamental domain can be achieved by calling manually the add_site_family method and providing it the other_vectors parameter.

The fundamental domain for hoppings are all hoppings (a, b) with site a in fundamental domain of sites.


act(element, a, b=None)[source]
add_site_family(fam, other_vectors=None)[source]

Select a fundamental domain for site family and cache associated data.


fam : SiteFamily

the site family which has to be processed. Be sure to delete the previously processed site families from site_family_data if you want to modify the cache.

other_vectors : 2d array-like of integers

Bravais lattice vectors used to complement the periods in forming a basis. The fundamental domain consists of all the lattice sites for which the zero coefficients corresponding to the symmetry periods in the basis formed by the symmetry periods and other_vectors. If an insufficient number of other_vectors is provided to form a basis, the missing ones are selected automatically.



If fam is already stored in site_family_data.


If lattice fam is incompatible with given periods.


Tell whether site lies within the fundamental domain.


Return a reversed copy of the symmetry.

The resulting symmetry has all the period vectors opposite to the original and an identical fundamental domain.


Return the subgroup generated by a sequence of group elements.


*generators: sequence of int

Each generator must have length self.num_directions.

to_fd(a, b=None)[source]

Map a site or hopping to the fundamental domain.

If b is None, return a site equivalent to a within the fundamental domain. Otherwise, return a hopping equivalent to (a, b) but where the first element belongs to the fundamental domain.

Equivalent to self.act(-self.which(a), a, b).




Previous topic

3.3. kwant.lattice – Bravais lattices

Next topic


This Page