+1 vote
asked by (140 points)

Hi,

I was wondering If it is possible to create a single site set that describes 2 ( or possibly three) particles ( spin one-half, electrons, bosons etc.) in the current version of ITensor (C++). An example to this would be trying to create a ladder system of particles, but instead of the Zigzag method, could I create a single site set that supports 2 particles?

Cheers

1 Answer

+1 vote
answered by (70.1k points)

Hi Eliem,
It’s a good question. You can do this, however the typical outcome will be that DMRG and related algorithms will run more slowly than if you used separate sites for your various degrees of freedom. This is because MPS algorithms scale linearly in the number of sites, whereas they scale polynomially in the site dimension, and the site dimension itself grows exponentially as you group more degrees of freedom together onto one site.

However it can in some cases be a good idea to group d.o.f. depending on the Hamiltonian.

The way to define such a site type is just enumerate all the possible states it can be in, and make that the dimension of the site Index and assign the corresponding quantum numbers (QN’s) if applicable and if you plan to use that feature.

If you do want to do this and need help, please let me know more details about your system. Thanks.

Miles

commented by (140 points)
Hi Miles,

Thanks for your fast reply! Many thanks also for your suggestion.

The method that you've suggested looks very sensible. However, it looks very specific as well if I'm not mistaken. I'll proceed using your method and try to sort my problem out.

I will definitely let you know more about the system of interest in case I needed any additional help.

Thanks again for your time!

Cheers
Elie
commented by (70.1k points)
Hi Elie,
Splitting different degrees of freedom is the standard approach when using DMRG. So unless there is a specific reason to group them into a single, larger index (or site) then it's what I would recommend. It's hard to give a more detailed answer unless you could share more details of the system you are trying to simulate and why you'd like to group them.

Or perhaps I misunderstood your question?

Were you asking about mixed systems, like alternating spin and particle sites?

Miles
commented by (140 points)
Hi Miles,

You definitely understood my initial question. I'm honestly aiming to simulate systems beyond 1D using ITensor. An example to this would a simple ladder, where I group the top and bottom sites ( of the same rung) of the ladder and describe them as a single MPS site ( taking into account that the local Hilbert space increases exponentially).

The other thing is that the code that I'm willing to write shouldn't depend on the specificity of the system - in other words, I'd like to create an enhanced generic site set object and use it in different systems ( and go beyond ladder systems).

I hope my explanation is a bit more sensible now, and thank you again for your reply.

Cheers
Elie
commented by (70.1k points)
Hi Elie,
I see, thanks for the clarification.

So for systems beyond 1D, the approach I outlined of keeping the various degrees of freedom (dof) separate within the site set (array of site Indices) is typically superior in many respects. Not only will MPS algorithms, such as DMRG or TEBD, run faster but it's also easier to code in a generic way. In ITensor, you can make 2D systems or systems with a mixture of different types of dof by just filling an array of Index objects with the sites you want to have.

So I guess I would ask a question back to you of what advantage you anticipate by making a larger Index that represents two or more dof? Is it code which is more generic or easier to write? Or better performance of a certain algorithm such as DMRG?

Miles
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.

Categories

...