Components

ctm.generic_abelian.ctm_components.c2x2_LD(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build enlarged lower-right corner

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

enlarged upper-left corner

Return type:

yastn.Tensor

Builds lower-right corner at site coord by performing following contraction and then reshaping the resulting tensor into matrix:

0  1
T--A(coord)--3
|  |                (0,1)->0(+)
|  |                 |
C--T---------2  =>   C2x2--(2,3)->1(-)
ctm.generic_abelian.ctm_components.c2x2_LU(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build enlarged upper-left corner

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

enlarged upper-left corner

Return type:

yastn.Tensor

Builds upper-left corner at site coord by performing following contraction and then reshaping the resulting tensor into matrix:

C----T--2         => C2x2--(2,3)->1(-1)
|    |               |
|    |               (0,1)->0(-1)
T----A(coord)--3
|    |
0    1
ctm.generic_abelian.ctm_components.c2x2_RD(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build enlarged lower-right corner

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

enlarged upper-left corner

Return type:

yastn.Tensor

Builds lower-right corner at site coord by performing following contraction and then reshaping the resulting tensor into matrix:

   1         0
3--A(coord)--T  =>      (+)0<-(0,1)
   |         |                   |
   |         |      (+)1<-(2,3)--C2x2
2--T---------C
ctm.generic_abelian.ctm_components.c2x2_RU(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build enlarged upper-right corner

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

enlarged upper-left corner

Return type:

yastn.Tensor

Builds upper-right corner at site coord by performing following contraction and then reshaping the resulting tensor into matrix:

0--T---------C  =>  (+)0<-(0,1)--C2x2
   |         |                   |
   |         |          (-)1<-(2,3)
1--A(coord)--T
   3         2
ctm.generic_abelian.ctm_components.double_layer_a(state, coord, open_sites=[], force_cpu=False, verbosity=0)[source]
Parameters:
  • state (IPEPS_ABELIAN) – underlying wavefunction

  • coord (tuple(int,int)) – vertex (x,y) for which the reduced density matrix is constructed

  • open_sites (list(int)) – a list DoFs to leave open (uncontracted).

  • force_cpu (bool) – perform on CPU

Returns:

result of contraction of double-layer tensor

Return type:

yastn.Tensor

Build double-layer tensor of iPEPS with open or fully contracted physical space:

      (+)
      /
(+)--A*--(-)         (-)
 (-)/|               /
  -> |        (-)--a*a--(+)
  s' 0             / \
     ?           (+)  s,s'
   s 0
     |
 (-)\|
(-)--A--(+)
 (+)/

Default results in contraction over DoF. Physical indices are aggregated into a single index with structure \(|ket \rangle\langle bra| = s;s'\).

The available choices for open_sites are: [], [0].

ctm.generic_abelian.ctm_components.halves_of_4x4_CTM_MOVE_DOWN(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

left and right half of the system as matrices

Return type:

yastn.Tensor, yastn.Tensor

Builds left and right half of 2x2 subsystem embedded into environment. The coord specifies the lower-left site of the 2x2 subsystem. Performs following contraction and then reshaping the resulting tensors into matrices:

C T T        C = C2x2_LU(coord+(0,-1)) C2x2(coord+(1,-1))
T A        B T   C2x2_LD(coord)        C2x2(coord+(1,0))
T C(coord) D T
C T        T C

C2x2---------1    1<-0--C2x2 =     _1 1_
|0                      |1        |     |
|0                      |0      half1    half2
C2x2(coord)--1->0 0<-1--C2x2      |_0 0_|
ctm.generic_abelian.ctm_components.halves_of_4x4_CTM_MOVE_LEFT(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

upper and lower half of the system as matrices

Return type:

yastn.Tensor, yastn.Tensor

Builds upper and lower half of 2x2 subsystem embedded into environment. The coord specifies the upper-left site of the 2x2 subsystem. Performs following contraction and then reshaping the resulting tensors into matrices:

C T        T C = C2x2_LU(coord)       C2x2(coord+(1,0))
T A(coord) B T   C2x2_LD(coord+(0,1)) C2x2(coord+(1,1))
T C        D T
C T        T C

C2x2(coord)--1 0--C2x2 = half1
|0               1|      |0  |1

|0            1<-0|      |0  |1
C2x2--1 1---------C2x2   half2
ctm.generic_abelian.ctm_components.halves_of_4x4_CTM_MOVE_RIGHT(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

upper and lower half of the system as matrices

Return type:

yastn.Tensor, yastn.Tensor

Builds uoper and lower half of 2x2 subsystem embedded into environment. The coord specifies the lower-right site of the 2x2 subsystem. Performs following contraction and then reshaping the resulting tensors into matrices:

C T T        C = C2x2_LU(coord+(-1,-1)) C2x2(coord+(0,-1))
T A B        T   C2x2_LD(coord+(-1,0))  C2x2(coord)
T C D(coord) T
C T T        C

C2x2--1 0--C2x2        = half2
|0->1      |1->0         |1  |0

|0->1      |0            |1  |0
C2x2--1 1--C2x2(coord)   half1
ctm.generic_abelian.ctm_components.halves_of_4x4_CTM_MOVE_UP(coord, state, env, verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS_ABELIAN) – wavefunction

  • env (ENV_ABELIAN) – environment

Returns:

right and left half of the system as matrices

Return type:

yastn.Tensor, yastn.Tensor

Builds right and left half of 2x2 subsystem embedded into environment. The coord specifies the upper-right site of the 2x2 subsystem. Performs following contraction and then reshaping the resulting tensors into matrices:

C T T        C = C2x2_LU(coord+(-1,0))  C2x2(coord)
T A B(coord) T   C2x2_LD(coord+(-1,1))  C2x2(coord+(0,1))
T C D        T
C T T        C

C2x2--1->0 0--C2x2(coord) =     _0 0_
|0           1|                |     |
|0           0|             half2    half1
C2x2--1    1--C2x2             |_1 1_|