Skip to content

Measurement in a large patch of PEPS and momentum space #396

Description

@Yue-Zhengyuan

This is motivated by the finite-T study of t-J model 2510.04756. There are two places that involves measuring in a large patch of an iPEPS:

  • Fig. 3, which measures h_num ⊗ S_exchange where h_num acts on (0, 0), and S_exchange acts on arbitrary NN or NNN bonds in a (2n+1) x (2n+1) window (n = 3 in this paper) around the origin. So the largest patch occurs during contraction is 4x4, where S_exchange acts on [(3, 2), (3, 3)]. When I naively try to use expectation_value, it seems to use a huge amount of memory for anything spanning beyond 2 rows and 2 columns (this paper use D = 18 and χ > 72, although with fZ2 x charge-U(1) x spin-U(1) symmetry). I doubt we can solve this by improving contraction order, since we already use @autoopt.

  • Fig. 13, which plots the Fourier transform of $T_{i-j} = \langle c^\dagger_{i\sigma} c_{j\sigma} \rangle$, i.e. the particle number distribution in momentum space $n_{k\sigma} = \langle c^\dagger_{k\sigma} c_{k\sigma} \rangle$. Assuming $T_{i-j}$ decays sufficiently fast, one can measure $T_{i-j}$ in a (2n+1) x (2n+1) window, with i at the origin. The largest patch we need to contract has size (n+1) x (n+1). (There may be more advanced approaches.)

So I suggest we implement an approximate way to contract a large patch of the iPEPS/iPEPO, which is relevant to #188 (comment) that @lkdvos and @leburgel may be most familiar with.

  • After we find the CTMRG environment, we use the CTM tensors to build boundary MPS for this finite patch (regarded as a finite PEPS/PEPO - maybe it's a chance for us to introduce FinitePEPS into the package?).
  • The boundary MPS is contracted with the patch with truncation, instead of done exactly (as we currently do).
  • The operator to be measured, if acting on multiple sites, is first converted to an MPO along a convenient path and acts on the ket state.
  • In the expectation_value function, we switch to this approximate contraction whenever the patch size is larger than 2 in both axis directions, and add a truncation algorithm as a keyword argument.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions