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:
- 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)