Source code for adpeps.ipeps.models.heisenberg

""" 2D Heisenberg model """

import jax.numpy as np

from .common import sigmaz, sigmap, sigmam
from adpeps.utils.tlist import set_pattern
import adpeps.ipeps.config as sim_config

name = "Heisenberg spin-1/2 model"

[docs]def setup(): """ Returns the Hamiltonian """ H = make_hamiltonian(**sim_config.model_params) obs = None return H, obs
[docs]def make_hamiltonian(J=1): """ Heisenberg model """ H = tprod(sigmaz, sigmaz) / 4 + \ tprod(sigmap, sigmam) / 2 + \ tprod(sigmam, sigmap) / 2 H = J * H return H
def tprod(a,b): return np.outer(a,b).reshape([2,2,2,2], order='F').transpose([0,2,1,3])