Correlation functions

ctm.one_site_c4v_abelian.corrf_c4v.apply_TM_1sO(state, env, edge, op=None, verbosity=0)[source]
Parameters:
  • state (IPEPS_C4V_ABELIAN) – underlying 1-site C4v symmetric wavefunction

  • env (ENV_C4V_ABELIAN) – C4v symmetric environment corresponding to state

  • edge (yastn.Tensor) – tensor corresponding to the edge of width-1 channel

  • op (yastn.Tensor) – operator to be inserted into transfer matrix

  • verbosity (int) – logging verbosity

Returns:

edge with a single instance of the transfer matrix applied. The resulting tensor has an identical index structure as the original edge

Return type:

tensor

Applies a single instance of the “transfer matrix” to the edge tensor by contracting the following network:

  -----T----------
 |     |
edge--(a^+ op a)--
 |     |
  -----T----------

where the physical indices s and s’ of the on-site tensor \(a\) and it’s hermitian conjugate \(a^\dagger\) are contracted with identity \(\delta_{s,s'}\) or op (if supplied).

ctm.one_site_c4v_abelian.corrf_c4v.apply_edge(state, env, vec, verbosity=0)[source]
Parameters:
  • state (IPEPS_ABELIAN_C4V) – underlying 1-site C4v symmetric wavefunction

  • env (ENV_ABELIAN_C4V) – C4v symmetric environment corresponding to state

  • vec (torch.Tensor) – tensor of dimensions \(\chi \times D^2 \times \chi\)

  • verbosity (int) – logging verbosity

Returns:

scalar resulting from the contraction of vec with an edge built from environment

Return type:

torch.tensor

Contracts vec tensor with the corresponding edge by contracting the following network:

           ---C
          |   |
scalar = vec--T
          |   |
           ---C
ctm.one_site_c4v_abelian.corrf_c4v.corrf_1sO1sO(state, env, op1, get_op2, dist, verbosity=0)[source]
Parameters:
  • state (IPEPS_ABELIAN_C4V) – underlying 1-site C4v symmetric wavefunction

  • env (ENV_ABELIAN_C4V) – C4v symmetric environment corresponding to state

  • op1 (yastn.Tensor) – first one-site operator \(O_1\)

  • get_op2 (function(int)->yastn.Tensor) – function returning (position-dependent) second one-site opreator \(\text{get_op2}(r)=O_2\)

  • dist (int) – maximal distance of correlation function

  • verbosity (int) – logging verbosity

Returns:

vector corrf of length dist holding the values of correlation function \(\langle O_1(0) O_2(r) \rangle\) for \(r \in [1,dist]\)

Return type:

torch.tensor

Computes the two-point correlation function \(\langle O_1(0) O_2(r) \rangle\) by contracting the following network:

C-----T---------- ... -----T---- ... --------T-------------C
|     |                    |                 |             |
T--(a^+ op_1 a)-- ... --(a^+a)-- ... --(a^+ gen_op2(r) a)--T
|     |                    |                 |             |
C-----T---------- ... -----T---- ... --------T-------------C

for increasingly large distance r up to dist.

ctm.one_site_c4v_abelian.corrf_c4v.get_edge(state, env, verbosity=0)[source]
Parameters:
  • state (IPEPS_C4V_ABELIAN) – underlying 1-site C4v symmetric wavefunction

  • env (ENV_C4V_ABELIAN) – C4v symmetric environment corresponding to state

  • verbosity (int) – logging verbosity

Returns:

edge of the width-1 channel

Return type:

Tensor

Build initial edge by contracting the following network:

    C--0(-)
    |
E = T--1(-) 1,2
    |
    C--2(-) 3