Abelian-symmetric Kagome iPEPS

Specialized class for abelian-symmetric iPEPS on Kagome lattice, where sites s0,s1,s2 on down-triangles are fused together:

       |/      |/
      s1      s1
     / |     / |                  |               |
    /  |    /  |                  |/(s0,s1,s2)    |/(s0,s1,s2)
    --s0--s2--s0--s2--   =>     --a---------------a--
       | /     | /                |               |
       |/      |/                 |               |
      s1      s1                  |               |
     / |     / |                  |               |
    /  |    /  |                  |/(s0,s1,s2)    |/(s0,s1,s2)
--s2--s0--s2--s0--s2--          --a---------------a--
       | /     | /                |               |
       |/      |/
      s1      s1
      /|      /|

The resulting tensor network is defined on a square lattice in terms of rank-5 on-site tensors. Physical index runs over the product of Hilbert spaces of s0,s1,s2 in this order. These Hilbert spaces are assumed to be identical.

class ipeps.ipeps_kagome_abelian.IPEPS_KAGOME_ABELIAN(settings, sites=None, vertexToSite=None, lX=None, lY=None, build_open_dl=True, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]

Bases: IPEPS_ABELIAN

Parameters:
  • settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration

  • sites (dict[tuple(int,int) : yast.Tensor]) – map from elementary unit cell to on-site tensors

  • vertexToSite (function(tuple(int,int))->tuple(int,int)) – function mapping arbitrary vertex of a square lattice into a vertex within elementary unit cell

  • lX (int) – length of the elementary unit cell in X direction

  • lY (int) – length of the elementary unit cell in Y direction

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

This class serves as an iPEPS interface for CTMRG algorithm over different tensor networks defined over Kagome lattice. Various TNs on Kagome lattice are transformed into standard iPEPS on square lattice by contraction over some of the bonds in the network. The physical space of on-site tensors of resulting iPEPS is typically tensor product of 3 DoFs of the original system:

 /|   /|   /|          |  |  |
/_|__/_|__/_|__  =>  --A--A--A--
  | /  | /  | /        |  |  |
  |/   |/   |/       --A--A--A--
 /|   /|   /|          |  |  |
/_|__/_|__/_|__
  | /  | /  | /
  |/   |/   |/ <- down triangle

where all 3 DoFs on the vertices of down triangles are fused into single physical DoF of on-site tensor A. The state on the up-triangles is thus spanned by considering 3 sites A of resulting square-lattice iPEPS.

ipeps.ipeps_kagome_abelian.read_ipeps_kagome(jsonfile, settings, vertexToSite=None, peps_args=<config.PEPSARGS object>, global_args=<config.GLOBALARGS object>)[source]
Parameters:
  • jsonfile (str or Path object) – input file describing IPEPS_KAGOME_ABELIAN in json format

  • settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration

  • vertexToSite (function(tuple(int,int))->tuple(int,int)) – function mapping arbitrary vertex of a square lattice into a vertex within elementary unit cell

  • peps_args (PEPSARGS) – ipeps configuration

  • global_args (GLOBALARGS) – global configuration

Returns:

wavefunction

Return type:

IPEPS_KAGOME_ABELIAN

Read IPEPS_KAGOME_ABELIAN from file.