Performing TEBD for NNN interactions

How do I use this algorithm? What does that parameter do?
Post Reply
on0001st
Posts: 12
Joined: 27 Aug 2018, 09:30

Performing TEBD for NNN interactions

Post by on0001st »

Hi,

I would like to perform TEBD for a spin system that contains NNN interactions. I see that there is already a function "swap_sites" defined in mps.py which I think it is closely related to the swap gates method. However, I am no entire sure how to implement it properly.

My naive hunch to implement this would be to first call tebd.engine() for only NN interactions, then perform the site swapping, and then perform tebd.engine() again with a different set of model params (now the system is an alternating chain of J = NNN and J = 0 interactions) and lastly performing the site swapping again and that would give one dt step in TEBD. Would this be correct?

Thanks!
User avatar
Johannes
Site Admin
Posts: 428
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: Performing TEBD for NNN interactions

Post by Johannes »

Currently, the swapping for TEBD is not supported, although it should not be too difficult to implement, following the way you have outlined.
There are a few things to be careful about, though:
  • You need to adjust the existing model code to get the exponentials of the NNN terms.
  • avoid onsite terms appearing multiple times in the bond U's
  • formulas for higher orders in the time step get more complicated. Second order can be acchieved fairly easy if your method is invariant under "time inversion" (i.e. you do the same thing if you read your algorithm backwards).
  • Fermions with Jordan Wigner String: is the Jordan Wigner string needed during the swap?
The way which is implemented right now is the naive thing to group neighboring sites together to make the model a "NearestNeighbor" model, see the first example in tenpy.models.spins_nnn
Post Reply