# iPEPS¶

The following iPEPS classes define various wavefunctions on a square lattice.

First category covers simple iPEPS, which are defined by a set of one or more rank-5 on-site tensors (the variational parameters of the iPEPS). These on-site tensors are arranged in a unit-cell,
specified as dictionary `sites= {(x,y): tensor, ...}`

, where tuple `(x,y)`

denotes a site within a unit cell. The unit cell then tiles the entire square lattice. To encode the precise way in which the lattice is tiled by these tensors, one defines a `vertexToSite`

function, which takes a tuple of integers `(x,y)`

, indicating a vertex of the square lattice, and returns an on-site tensor
from the unit cell.

Second category is formed by specialized classes of iPEPS. For example, constrained by spatial symmetries or with on-site tensors possesing additional structure.

# Abelian-symmetric iPEPS¶

These iPEPS posses explicit abelian-symmetric structure. In effect, the tensors which make up this family of ansatze are block-sparse. The implementation of abelian-symmetric tensors and their algebra is provided by YAST.

Specialized abelian-symmetric iPEPS