# kwant.physics.DiscreteSymmetry¶

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.

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

Notes

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.

Methods

validate(matrix)[source]

Check if a matrix satisfies the discrete symmetries.

Parameters: matrix : sparse or dense matrix If rectangular, it is padded by zeros to be square. broken_symmetries : list List of strings, the names of symmetries broken by the matrix: any combination of “Conservation law”, “Time reversal”, “Particle-hole”, “Chiral”. If no symmetries are broken, returns an empty list.

#### Previous topic

kwant.physics.StabilizedModes

#### Next topic

kwant.physics.magnetic_gauge