Projectors¶
-
ctm.generic.ctm_projectors.
ctm_get_projectors_4x2
(direction, coord, state, env, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶ - Parameters
direction (tuple(int,int)) – direction of the CTM move for which the projectors are to be computed
coord (tuple(int,int)) – vertex (x,y) specifying (together with
direction
) 4x2 (vertical) or 2x4 (horizontal) tensor network used to build projectorsstate (IPEPS) – wavefunction
env (ENV) – environment corresponding to
state
ctm_args (CTMARGS) – CTM algorithm configuration
global_args (GLOBALARGS) – global configuration
- Returns
pair of projectors, tensors of dimension \(\chi \times \chi \times D^2\). The D might vary depending on the auxiliary bond dimension of related on-site tensor.
- Return type
torch.tensor, torch.tensor
Compute a pair of projectors from two enlarged corners making up 4x2 (2x4) tensor network given by
direction
andcoord
:Case of LEFT move <=> direction=(-1,0) ____ C--T---------------\ = |_R__|=\\ T--A(coord)--------\\ |__| || | | || |_Rt_|=// T--A(coord+(0,1))--// C--T---------------/ Case of UP move <=> direction=(0,-1) ____ ___ C--T---------T----------------C = |_Rt_|==|_R_| T--A(coord+(-1,0))--A(coord)--T | | | | | | | | \_\===/_/ \__\========/________________/
This function constructs two enlarged corners of a 4x2 (2x4) network and then calls
ctm_get_projectors_from_matrices()
for projector construction
-
ctm.generic.ctm_projectors.
ctm_get_projectors_4x4
(direction, coord, state, env, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶ - Parameters
direction (tuple(int,int)) – direction of the CTM move for which the projectors are to be computed
coord (tuple(int,int)) – vertex (x,y) specifying (together with
direction
) 4x4 tensor network used to build projectorsstate (IPEPS) – wavefunction
env (ENV) – environment corresponding to
state
ctm_args (CTMARGS) – CTM algorithm configuration
global_args (GLOBALARGS) – global configuration
- Returns
pair of projectors, tensors of dimension \(\chi \times \chi \times D^2\). The D might vary depending on the auxiliary bond dimension of related on-site tensor.
- Return type
torch.tensor, torch.tensor
Compute a pair of projectors from two halfs of 4x4 tensor network given by
direction
andcoord
:Case of LEFT move <=> direction=(-1,0) _____________ C--T---------------T---------------C = |_____R_______| T--A(coord)--------A(coord+(1,0))--T |__|_____|__| | | | | |_____Rt______| T--A(coord+(0,1))--A(coord+(1,1))--T C--T---------------T---------------C
This function constructs two halfs of a 4x4 network and then calls
ctm_get_projectors_from_matrices()
for projector construction
-
ctm.generic.ctm_projectors.
ctm_get_projectors_from_matrices
(R, Rt, chi, ctm_args=<config.CTMARGS object>, global_args=<config.GLOBALARGS object>)[source]¶ - Parameters
R (torch.tensor) – tensor of shape (dim0, dim1)
Rt (torch.tensor) – tensor of shape (dim0, dim1)
chi (int) – environment bond dimension
ctm_args (CTMARGS) – CTM algorithm configuration
global_args (GLOBALARGS) – global configuration
- Returns
pair of projectors, tensors of dimension \(\chi \times \chi \times D^2\). The D might vary depending on the auxiliary bond dimension of related on-site tensor.
- Return type
torch.tensor, torch.tensor
Given the two tensors R and Rt (R tilde) compute the projectors P, Pt (P tilde) (PRB 94, 075143 (2016) https://arxiv.org/pdf/1402.2859.pdf)
Perform SVD over \(R\widetilde{R}\) contracted through index which is going to be truncated:
_______ ______ dim1--|___R___|--dim0--|__Rt__|--dim1 ==SVD==> dim1(R)--U--S--V^+--dim1(Rt)
Hence, for the inverse \((R\widetilde{R})^{-1}\):
________ ________ dim1--|__Rt^-1_|--dim0--|__R^-1__|--dim1 = dim1(Rt)--V--S^-1--U^+--dim1(R)
Approximate an identity \(RR^{-1}\widetilde{R}^{-1}\widetilde{R}\) by truncating the result of \(SVD(R\widetilde{R}^{-1})\):
____ ______ _______ ____ I = dim0--|_R__|--dim1--|_R^-1_|--dim0--|_Rt^-1_|--dim1--|_Rt_|--dim0 ____ _____ ____ ____ I ~ dim0--|_R__|--dim1--|_U^+_|--St^-1/2--\chi--St^-1/2--|_V__|--dim1--|_Rt_|--dim0
where \(\widetilde{S}\) has been truncated to the leading \(\chi\) singular values
Finally construct the projectors \(P, \widetilde{P}\):
____ _____ P = dim0--|_R__|--dim1--|_U^+_|--St^-1/2--\chi ____ ____ Pt = \chi--St^-1/2--|_V__|--dim1--|_Rt_|--dim0
The projectors \(P, \widetilde{P}\) approximate contraction of the original matrices \(R, \widetilde{R}\):
_______ _________ |___R___| ~ |___R_____| _|___|_ | | |___Rt__| dim0 dim1 __|___ | \_P__/ | | | chi | _|__ | /_Pt_\ | | | dim0 dim1 _|_____|_ |____Rt___|