kwant.lattice.TranslationalSymmetry

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

Bases: kwant.system.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.

Parameters
  • p0 (sequences of real numbers) – The symmetry periods in real space.

  • p1 (sequences of real numbers) – The symmetry periods in real space.

  • p2 (sequences of real numbers) – The symmetry periods in real space.

  • .. (sequences of real numbers) – The symmetry periods in real space.

Notes

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.

Methods

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

Act with symmetry group element(s) on site(s) or hopping(s).

Parameters
  • element (tuple or sequence of tuples) – Group element(s) with which to act on the provided site(s) or hopping(s)

  • a (Site or SiteArray) – If Site then element is a single tuple, if SiteArray then element is a single tuple or a sequence of tuples. If only a is provided then element acts on the site(s) of a. If b is also provided then element acts on the hopping(s) (a, b).

  • b (Site or SiteArray) – If Site then element is a single tuple, if SiteArray then element is a single tuple or a sequence of tuples. If only a is provided then element acts on the site(s) of a. If b is also provided then element acts on the hopping(s) (a, b).

add_site_family(fam, other_vectors=None)[source]

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

Parameters
  • 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.

Raises
  • KeyError – If fam is already stored in site_family_data.

  • ValueError – If lattice fam is incompatible with given periods.

has_subgroup(other)[source]

Test whether self has the subgroup other

or, in other words, whether other is a subgroup of self. The reason why this is the abstract method (and not is_subgroup) is that in general it’s not possible for a subgroup to know its supergroups.

in_fd(site)[source]

Tell whether site lies within the fundamental domain.

Parameters

site (Site or SiteArray) –

Returns

in_fd – single bool if site is a Site, or a sequence of bool if site is a SiteArray. In the latter case we return whether each site in the SiteArray is in the fundamental domain.

Return type

bool or sequence of bool

reversed()[source]

Return a reversed copy of the symmetry.

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

subgroup(*generators)[source]

Return the subgroup generated by a sequence of group elements.

Parameters

*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.

Parameters
  • a (Site or SiteArray) –

  • b (Site or SiteArray) –

  • b is None (If) –

  • a site equivalent to a within the (return) –

  • domain. Otherwise (fundamental) –

  • a hopping equivalent to ``(a (return) –

:param : :param b)`` but where the first element belongs to the fundamental domain.: :param Equivalent to self.act(-self.which(a): :param a: :param b).:

which(site)[source]

Calculate the domain of the site.

Parameters

site (Site or SiteArray) –

Returns

group_element – A single tuple if site is a Site, or a sequence of tuples if site is a SiteArray. The group element(s) whose action on a certain site(s) from the fundamental domain will result in the given site.

Return type

tuple or sequence of tuples

Attributes

num_directions[source]

Previous topic

3.3. kwant.lattice – Bravais lattices

Next topic

kwant.lattice.general

This Page