Components

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

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

  • mode (str) – single 'sl' or double-layer 'dl' contraction

Returns:

enlarged upper-left corner

Return type:

torch.Tensor

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

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

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

  • mode (str) – single 'sl' or double-layer 'dl' contraction

Returns:

enlarged upper-left corner

Return type:

torch.Tensor

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

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

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

  • mode (str) – single 'sl' or double-layer 'dl' contraction

Returns:

enlarged upper-left corner

Return type:

torch.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)--T2 =>      0<-(0,1)
   |         |                |
   |         |      1<-(2,3)--C2x2
2--T1--------C
ctm.generic.ctm_components.c2x2_RU(coord, state, env, mode='dl', verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build enlarged upper-right corner

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

  • mode (str) – single 'sl' or double-layer 'dl' contraction

Returns:

enlarged upper-left corner

Return type:

torch.Tensor

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

0--T2--------C  =>  0<-(0,1)--C2x2
   |         |                |
   |         |          1<-(2,3)
1--A(coord)--T1
   3         2
ctm.generic.ctm_components.halves_of_4x4_CTM_MOVE_DOWN(coord, state, env, mode='sl', verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

Returns:

left and right half of the system as matrices

Return type:

torch.Tensor, torch.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.ctm_components.halves_of_4x4_CTM_MOVE_LEFT(coord, state, env, mode='sl', verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

Returns:

upper and lower half of the system as matrices

Return type:

torch.Tensor, torch.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.ctm_components.halves_of_4x4_CTM_MOVE_RIGHT(coord, state, env, mode='sl', verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

Returns:

upper and lower half of the system as matrices

Return type:

torch.Tensor, torch.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.ctm_components.halves_of_4x4_CTM_MOVE_UP(coord, state, env, mode='sl', verbosity=0)[source]
Parameters:
  • coord (tuple(int,int)) – site for which to build two halfs of 2x2 subsystem embedded in environment

  • state (IPEPS) – wavefunction

  • env (ENV) – environment

Returns:

right and left half of the system as matrices

Return type:

torch.Tensor, torch.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_|