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_|