# Symmetries

Symmetries may be involved in WannierBerri on three different levels

- Point group symmetries
are used in the

`run()`

function to reduce the number of k-points and to make the resulting tensor symmetric. See`set_symmetry()`

- Symmetrization of the Hamiltonian and matrix elements
typically the Wannier modelcreated by Wannier90 slightly (or strongly) breaks the symmetries. To fix this a simmetrization procedure is implemented. See

`symmetrize()`

- NEW! Symmetry adapted Wannier functions.
following the paper by R. Sakuma Phys. Rev. B 87, 235109 (2013) the wannier functions can be kept symmetric on every step of wannierisation. See the sitesym parameter of

`wannierise()`

and`DMN`

class.

Note:

Any combination can be used in one workflow, and it is best to use all of them. (at the moment it should be done explicitly, later it will be unified)

Even if (3) was used, some matrix elements still may be not exactly symmetric, depending on the finite difference scheme used to evaluate those matrix elements. However, the Hamiltonian will be symmetric.

if (2) was used, (1) will not affect the results, but will improve performance (due to reduction of the number of k-points)