class kwant.physics.DiscreteSymmetry(projectors=None, time_reversal=None, particle_hole=None, chiral=None)[source]

Bases: object

A collection of discrete symmetries and conservation laws.


projectors : iterable of rectangular or square sparse matrices

Projectors that block-diagonalize the Hamiltonian.

time_reversal : square sparse matrix

The unitary part of the time-reversal symmetry operator.

particle_hole : square sparse matrix

The unitary part of the particle-hole symmetry operator.

chiral : square sparse matrix

The chiral symmetry operator.


Whenever one or more discrete symmetry is declared in conjunction with a conservation law, the symmetry operators and projectors must be declared in canonical form. This means that each block of the Hamiltonian is transformed either to itself by a discrete symmetry or to a single other block.

More formally, consider a discrete symmetry S. The symmetry projection that maps from block i to block j of the Hamiltonian with projectors \(P_i\) and \(P_j\) is \(S_{ji} = P_j^+ S P_i\). If \(S_{ji}\) is nonzero, a symmetry relation exists between blocks i and j. Canonical form means that for each j, the block \(S_{ji}\) is nonzero at most for one i, while all other blocks vanish.

If the operators are not in canonical form, they can be made so by further splitting the Hamiltonian into smaller blocks, i.e. by adding more projectors.



Check if a matrix satisfies the discrete symmetries.


matrix : sparse or dense matrix

If rectangular, it is padded by zeros to be square.


broken_symmetry : string or None

One of “Conservation law”, “Time reversal”, “Particle-hole”, “Chiral”: the symmetry broken by the matrix. If the matrix breaks more than one symmetry, returns only the first failed check.

Previous topic


Next topic

4.1. kwant.digest – Random-access random numbers

This Page