Transfer Matrices

ctm.one_site_c4v.transferops_c4v.get_EH_spec_Ttensor(n, L, state, env_c4v, verbosity=0)[source]
Parameters:
  • n (int) – number of leading eigenvalues of a transfer operator to compute

  • L (int) – width of the cylinder

  • 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 the leading part of spectrum of \(exp(EH)\), where EH is boundary Hamiltonian. Exact \(exp(EH)\) is given by the leading eigenvector of a transfer matrix

 ...         PBC                          /
  |           |                  |     --a*--
--A--       --A(0)--           --A-- =  /|
--A--       --A(1)--             |       |/
--A--        ...                       --a--
  |         --A(L-1)--                  /
 ...          |
             PBC

infinite exact TM; exact TM of L-leg cylinder

The \(exp(EH)\) is then given by reshaping the \((D^2)^L\) leading eigenvector of transfer matrix into \(D^L \times D^L\) operator.

We approximate the \(exp(EH)\) 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
  |            __
--T(0)----  --|  |
--T(1)----  --|v0|
 ...       ...|  |
--T(L-1)--  --|__|
  0(PBC)
ctm.one_site_c4v.transferops_c4v.get_Top2_spec_c4v(n, state, env_c4v, verbosity=0)[source]
Parameters:
  • n (int) – number of leading eigenvalues of a transfer operator to compute

  • 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 the leading n eigenvalues of width-2 transfer operator of 1-site C4v symmetric iPEPS:

--T--          --\               /---
--A--          --\               /---
--A-- = \sum_i ---v_i \lambda_i v_i--
--T--          --/               \---

where A is a double-layer tensor.

ctm.one_site_c4v.transferops_c4v.get_Top_spec_c4v(n, state, env_c4v, normalize=True, eigenvectors=False, verbosity=0)[source]
Parameters:
  • n (int) – number of leading eigenvalues of a transfer operator to compute

  • state (IPEPS_C4V) – wavefunction

  • env_c4v (ENV_C4V) – corresponding environment

  • normalize (bool) – normalize eigenvalues such that \(\lambda_0=1\)

  • eigenvectors (bool) – compute eigenvectors

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-1 transfer operator of 1-site C4v symmetric iPEPS:

--T--          --\               /---
--A-- = \sum_i ---v_i \lambda_i v_i--
--T--          --/               \---

where A is a double-layer tensor.