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)