How are periodic boundary conditions implemented?
How are periodic boundary conditions implemented?
Hi! I was wondering, how the periodic boundary conditions are implemented in TeNPy? In some other post I've read, that the MPS never create loops, so how is this issue bypassed? By means of long range MPOs, or rather differently?
Re: How are periodic boundary conditions implemented?
Indeed, the MPS is always an open line where a cut of a single virtual leg always divides it into left and right parts  otherwise, the canonical form isometry conditions wouldn't go through e.g. for local expectation values or optimal truncation.
When you use infinite MPS, the Model formally has "periodic" boundary conditions in x direction in TeNPy, which indicates that you do have couplings between the different unit cells. "periodic" is not really the right word, but for determining from where to where you can have terms (when calling Model.add_coupling), it works technically the same way as if you have periodic boundary conditions.
And yes, if you use a finite MPS with periodic boundary conditions in x direction, you indeed get an open MPS with long range couplings. For the naive ordering of the MPS (going 1, 2, ... L for an Lsite chain), the NN coupling accross the MPS boundary becomes range L. The Chain allows for a "folded" order, see ordering, where NN couplings map to nextNN couplings for the MPS  this can help to require less DMRG sweeps for convergence.
When you use infinite MPS, the Model formally has "periodic" boundary conditions in x direction in TeNPy, which indicates that you do have couplings between the different unit cells. "periodic" is not really the right word, but for determining from where to where you can have terms (when calling Model.add_coupling), it works technically the same way as if you have periodic boundary conditions.
And yes, if you use a finite MPS with periodic boundary conditions in x direction, you indeed get an open MPS with long range couplings. For the naive ordering of the MPS (going 1, 2, ... L for an Lsite chain), the NN coupling accross the MPS boundary becomes range L. The Chain allows for a "folded" order, see ordering, where NN couplings map to nextNN couplings for the MPS  this can help to require less DMRG sweeps for convergence.
Re: How are periodic boundary conditions implemented?
Hey, is there a reference that I should cite if I use the 'folded' ordering? Seems like a wellknown trick, but I wonder who 'did it first'.
Thanks!
Thanks!
Re: How are periodic boundary conditions implemented?
I learned the trick in private communications from Ian McCulloch several years back, but I'm also not sure who was the first to suggest/use it, sor I can't provide a reference...

 Posts: 1
 Joined: 12 Feb 2024, 15:42
Re: How are periodic boundary conditions implemented?
Hey there! If I decide to use the 'folded' ordering, is there a specific reference I should cite? It seems like a commonly known technique, but I'm curious about its origin or who first documented it. Any insights would be greatly appreciated. Thanks!