Skip to content

Solving two-dimensional spin models with tensor networks (powered by PyTorch)

License

Notifications You must be signed in to change notification settings

vegaandagev/peps-torch

 
 

Repository files navigation

peps-torch Build Status Documentation Status

A tensor network library for two-dimensional lattice models

by Juraj Hasik, Glen Bigan Mbeng


peps-torch performs optimization of infinite Projected entangled-pair states (iPEPS) by direct energy minimization. The energy is evaluated using environments obtained by the corner-transfer matrix (CTM) algorithm. Afterwards, the gradients are computed by reverse-mode automatic differentiation (AD).

For the full documentation, continue to peps-torch.readthedocs.io

Example with J1-J2 model on square lattice

Optimize one-site (C4v) symmetric iPEPS with bond dimension D=2 and environment dimension X=32 for J1-J2 model at J2/J1=0.3 run

python examples/optim_j1j2_c4v.py --bond_dim 2 --chi 32 --seed 123 --j2 0.3 --out_prefix ex-c4v

Using the resulting state ex_state.json, compute the observables such as spin-spin and dimer-dimer correlations for distance up to 20 sites

python examples/ctmrg_j1j2_c4v.py --instate ex-c4v_state.json --chi 48 --j2 0.3 --corrf_r 20

To instead optimize iPEPS with 2x2 unit cell containing four distinct on-site tensors run

python examples/optim_j1j2.py --tiling 4SITE --bond_dim 2 --chi 32 --seed 123 --j2 0.3 --CTMARGS_fwd_checkpoint_move --OPTARGS_tolerance_grad 1.0e-8 --out_prefix ex-4site

The memory requirements of AD would increase sharply if all the intermediate variables are stored. Instead, by passing -CTMARGS_fwd_checkpoint_move flag we opt for recomputing them on the fly while saving only the intermediate tensors of CTM environment.

Compute observables and spin-spin correlation functions in horizontal and vertical direction of the resulting state

python examples/ctmrg_j1j2.py --tiling 4SITE --chi 48 --j2 0.3 --instate ex-4site_state.json --corrf_r 20

Supports:

  • spin systems
  • arbitrary rectangular unit cells
  • only real-valued tensors

Dependencies

Building documentation

  • PyTorch 1.+
  • sphinx
  • sphinx_rtd_theme

All the dependencies can be installed through conda (see https://docs.conda.io).

Afterwards, build documentation as follows:

cd docs && make html

The generated documentation is found at docs/build/html/index.html



Inspired by the pioneering work of Hai-Jun Liao, Jin-Guo Liu, Lei Wang, and Tao Xiang, Phys. Rev. X 9, 031041 or arXiv version arXiv:1903.09650

References:

  1. Corner Transfer Matrix Renormalization Group Method, T. Nishino and K. Okunishi, Journal of the Physical Society of Japan 65, 891 (1996) or arXiv version arXiv:cond-mat/9507087
  2. Faster Methods for Contracting Infinite 2D Tensor Networks,
    M.T. Fishman, L. Vanderstraeten, V. Zauner-Stauber, J. Haegeman, and F. Verstraete, Phys. Rev. B 98, 235148 (2018) or arXiv version arXiv:1711.05881
  3. Competing States in the t-J Model: Uniform d-Wave State versus Stripe State (Supplemental Material), P. Corboz, T. M. Rice, and M. Troyer, Phys. Rev. Lett. 113, 046402 (2014) or arXiv version arXiv:1402.2859

About

Solving two-dimensional spin models with tensor networks (powered by PyTorch)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%