VMPS++
Loading...
Searching...
No Matches
Symmetry

Detailed Description

The symmetry module provides classes which encapsulate all relevant operations for building symmetry invariant Mps and Mpo and algorithms for them (e.g. DmrgSolver). The classes enter as template arguments of the most of the other classes, e.g. for the Mps class:

template<typename Symmetry, typename Scalar>
class Mps{}
Definition: Mps.h:39

The classes have to satisfie different requirements:

Currently, there exists implementations for the groups U(1) (Sym::U1), $Z_n$ (Sym::ZN) and SU(2) (Sym::SU2) and for a dummy class, which represents no symmetry (Sym::U0). These classes can be combined with the Sym::S1xS2 class, which takes two arbitrary symmetries as template arguments. By chaining this, it is in principle possible, to get a class for three or more symmetries, but until now there is no physical model for this szenario (see Models).

Cosmetic Todo:
  1. The compare function, can be defined outside of the classes, since it is the same for all symmetries.
  2. The reduceSilent() functions for vectors of irreps or three or more irreps can be defined outside the classes. Only the basic function, taking to irreps, is dependent on the symmetry.

Classes

class  Sym::S1xS2< S1_, S2_ >
 
class  Sym::SU2< Kind, Scalar >
 
class  Sym::SUN< N, Scalar >
 
class  Sym::U0
 
class  Sym::U1< Kind, Scalar >
 
class  Sym::ZN< Kind, N, Scalar >