+1 vote
asked by (920 points)
edited by

Hi Miles,

I came across the following paper, from 1995, during a literature search:


in which a method of implementing PBC's in DMRG is implemented that amounts to coupling two parallel chains, but only at the ends. According to their figure 1, they double the number of degrees of freedom on each site, but keep them in separate sectors. The doubled degrees of freedom at the ends are able to interact.

I don't fully understand the resource scaling (memory) for this, let alone how exactly to implement it, or whether it has any advantage over "Long Bond" PBC method.

commented by (920 points)
After discussing this with Jin (hermit...) we concluded this is the same as creating a ladder with no rungs, which would have similar entanglement as a long bond.

1 Answer

0 votes
answered by (52.6k points)

Yes, I believe this has the same (not very good) scaling as the long-bond approach. In fact, I think this approach will be even more highly entangled than the long-bond for the purpose of simulating a 1D system, since the bulk of the system will have two "copies" of the 1D chain running through it!

As you may know, the reason PBC is tough with the usual DMRG approach is because the standard DMRG algorithm is based on a matrix product state form of the wavefunction that is suitable for open boundary conditions. That is, it optimizes an open-boundary MPS. So if you input a periodic Hamiltonian, it can work but it will be sort of a mismatch between the type of Hamiltonian and the type of wavefunction.

One could also optimize a periodic MPS, which could in principle give a better scaling algorithm, but fewer techniques are known for periodic MPS and it's not known how to optimally truncate them just using local operations or how to achieve similar algorithmic properties like "gauging" an open MPS to make the eigensolver step have nice properties.


Welcome to ITensor Support Q&A, where you can ask questions and receive answers from other members of the community.

Formatting Tips:
  • To format code, indent by four spaces
  • To format inline LaTeX, surround it by @@ on both sides
  • To format LaTeX on its own line, surround it by $$ above and below
  • For LaTeX, it may be necessary to backslash-escape underscore characters to obtain proper formatting. So for example writing \sum\_i to represent a sum over i.
If you cannot register due to firewall issues (e.g. you cannot see the capcha box) please email Miles Stoudenmire to ask for an account.

To report ITensor bugs, please use the issue tracker.