# Transfer Matrices¶

ctm.generic.transferops.get_EH_spec_Ttensor(n, L, coord, direction, state, env, verbosity=0)[source]
Parameters
• n (int) – number of leading eigenvalues of a transfer operator to compute

• L (int) – width of the cylinder

• coord (tuple(int,int)) – reference site (x,y)

• direction (tuple(int,int)) – direction of the transfer operator. Either

• state (IPEPS_C4V) – wavefunction

• env_c4v (ENV_C4V) – corresponding environment

Returns

leading n-eigenvalues, returned as n x 2 tensor with first and second column encoding real and imaginary part respectively.

Return type

torch.Tensor

Compute leading part of spectrum of $$exp(EH)$$, where EH is boundary Hamiltonian. Exact $$exp(EH)$$ is given by the leading eigenvector of transfer matrix

 ...                PBC                                /
|                  |                        |     --a*--
--A(x,y)----       --A(x,y)------           --A-- =  /|
--A(x,y+1)--       --A(x,y+1)----             |       |/
--A(x,y+2)--        ...                             --a--
|                --A(x,y+L-1)--                    /
...                 |
PBC

infinite exact TM; exact TM of L-leg cylinder


The $$exp(EH)$$ is then given by

$exp(-H_{ent}) = \sqrt{\sigma_R}\sigma_L\sqrt{\sigma_R}$

where $$\sigma_L,\sigma_R$$ are reshaped $$(D^2)^L$$ left and right leading eigenvectors of TM into $$D^L \times D^L$$ operator. Given that spectrum of $$AB$$ is equivalent to $$BA$$, it is enough to diagonalize product $$\sigma_R\sigma_L$$ or $$\sigma_R\sigma_L$$.

We approximate the $$\sigma_L,\sigma_R$$ of L-leg cylinder as MPO formed by T-tensors of the CTM environment. Then, the spectrum of this approximate $$exp(EH)$$ is obtained through iterative solver using matrix-vector product:

  0                    1
|                    |                    __
--T[(x,y),(-1,0)]------T[(x,y),(1,0)]------|  |
--T[(x,y+1),(-1,0)]----T[(x,y+1),(1,0)]----|v0|
...                  ...                  |  |
--T[(x,y+L-1),(-1,0)]--T[(x,y+L-1),(1,0)]--|__|
0(PBC)               1(PBC)

ctm.generic.transferops.get_Top_spec(n, coord, direction, state, env, verbosity=0)[source]
Parameters
• n (int) – number of leading eigenvalues of a transfer operator to compute

• coord (tuple(int,int)) – reference site (x,y)

• direction (tuple(int,int)) – direction of transfer operator. Choices are: (0,-1) for up, (-1,0) for left, (0,1) for down, and (1,0) for right

• state (IPEPS) – wavefunction

• env (ENV_C4V) – corresponding environment

Returns

leading n-eigenvalues, returned as n x 2 tensor with first and second column encoding real and imaginary part respectively.

Return type

torch.Tensor

Compute the leading n eigenvalues of width-0 transfer operator of IPEPS:

--T---------...--T--------            --\               /---
--A(x,y)----...--A(x+lX,y)-- = \sum_i ---v_i \lambda_i v_i--
--T---------...--T--------            --/               \---


where A is a double-layer tensor. The transfer matrix is given by width-1 channel of the same length lX as the unit cell of iPEPS, embedded in environment of T-tensors.

Other directions are obtained by analogous construction.

ctm.generic.transferops.get_Top_w0_spec(n, coord, direction, state, env, verbosity=0)[source]
Parameters
• n (int) – number of leading eigenvalues of a transfer operator to compute

• coord (tuple(int,int)) – reference site (x,y)

• direction (tuple(int,int)) – direction of transfer operator. Choices are: (0,-1) for up, (-1,0) for left, (0,1) for down, and (1,0) for right

• state (IPEPS) – wavefunction

• env (ENV_C4V) – corresponding environment

Returns

leading n-eigenvalues, returned as n x 2 tensor with first and second column encoding real and imaginary part respectively.

Return type

torch.Tensor

Compute the leading n eigenvalues of width-0 transfer operator of IPEPS:

--T(x,y)----...--T(x+lX,y)----            --\               /---
|              |             = \sum_i     v_i \lambda_i v_i
--T(x,y+1)--...--T(x+lX,y+1)--            --/               \---


where A is a double-layer tensor. The transfer matrix is given by width-0 channel of the same length lX as the unit cell of iPEPS, embedded in environment of T-tensors.

Other directions are obtained by analogous construction.

ctm.generic.transferops.get_full_EH_spec_Ttensor(L, coord, direction, state, env, verbosity=0)[source]
Parameters
• L (int) – width of the cylinder

• coord (tuple(int,int)) – reference site (x,y)

• direction (tuple(int,int)) – direction of the transfer operator. Either

• state (IPEPS_C4V) – wavefunction

• env_c4v (ENV_C4V) – corresponding environment

Returns

leading n-eigenvalues, returned as rank-1 tensor

Return type

torch.Tensor

Compute the leading part of spectrum of $$exp(EH)$$, where EH is boundary Hamiltonian. Exact $$exp(EH)$$ is given by the leading eigenvector of transfer matrix:

 ...                PBC                                /
|                  |                        |     --a*--
--A(x,y)----       --A(x,y)------           --A-- =  /|
--A(x,y+1)--       --A(x,y+1)----             |       |/
--A(x,y+2)--        ...                             --a--
|                --A(x,y+L-1)--                    /
...                 |
PBC

infinite exact TM; exact TM of L-leg cylinder


The $$exp(EH)$$ is then given by

$exp(-H_{ent}) = \sqrt{\sigma_R}\sigma_L\sqrt{\sigma_R}$

where $$\sigma_L,\sigma_R$$ are reshaped (D^2)^L left and right leading eigenvectors of TM into $$D^L \times D^L$$ operator. Given that spectrum of $$AB$$ is equivalent to $$BA$$, it is enough to diagonalize product $$\sigma_R\sigma_L$$ or $$\sigma_R\sigma_L$$.

We approximate the $$\sigma_L,\sigma_R$$ of L-leg cylinder as MPO formed by T-tensors of the CTM environment. Then, the spectrum of this approximate exp(EH) is obtained through full diagonalization:

  0                    1
|                    |
--T[(x,y),(-1,0)]------T[(x,y),(1,0)]------
--T[(x,y+1),(-1,0)]----T[(x,y+1),(1,0)]----
...                  ...
--T[(x,y+L-1),(-1,0)]--T[(x,y+L-1),(1,0)]--
0(PBC)               1(PBC)