My only goal is to be able to accurately simulate the ground state in the Sz=0 sector of the XXZ chain in a translationally-invariant representation (no boundary, no even-odd effects). I'm quite confused by the behavior of the library and any help would be very appreciated, thanks.
If you need more details about the tests I did let me know. My two main attempts have been the following:
(1) Ideally I would like to use:
Code: Select all
XXZChain({..., "L": 1, "bc_MPS": "infinite"})
Code: Select all
X = np.zeros([2,2,2])
X[0,0,1],X[1,1,0] = 1,1
psi = MPS.from_Bflat(sites,[X],bc='infinite')
psi.canonical_form_infinite2()
(2) Another possibility would be to use L=2 in the iMPS and trying to prevent the two tensors from becoming too different from each-other. This is basically impossible to do with iDMRG, while iTEBD works fine, but ends up producing non-canonical states in the critical phase (psi.correlation_length() is absurdly high; using canonical_form() halves the link-dimension and breaks translational symmetry); iTEBD in the antiferromagnetic phase produces non-symmetric states.
Also it would be helpful if I were able to sum an infinite MPS with its translations, to easily produce translationally invariant states.