+1 vote
asked by (280 points)

Hello here,

I am interested in solving a multi band hubbard model using ITensor. Is there an existing code that can help me do that? Or do I need to construct my own sites and hamiltonian classes?


1 Answer

+1 vote
answered by (70.1k points)
selected by
Best answer

Hi Wangwei -

While one approach would be to create a new site set (similar to the Hubbard site set but with extra "labels" on the fermions) a simpler and likely better approach is to view your multi-band model as just an extended Hubbard model with a unit cell of more than one site (physically this is often the microscopic origin of multiple bands anyway!).

For example, you might be able to rewrite your model as a two-leg ladder with different hoppings on the rungs versus along the legs.

An easy way to set this up is to use AutoMPO. You can use the sample/exthubbard.cc code as an example to get started from. It's a useful example because it shows how to make a second-neighbor hopping. In general, you just need to choose a 1d ordering of your sites (even if they form a ladder or a 2d system) and then just add the terms you want to the AutoMPO as appropriate.

Let me know if you have additional questions about the specific model you want to simulate -

commented by (280 points)
Thank you  very much, miles, I will try to construct a multi-band model as you suggested.
commented by (70.1k points)
Sure thing. Another place to look is in the file unittest/autompo_test.cc. It shows where I put in long-range hopping into an extended Hubbard model AutoMPO to add periodic boundary conditions. Not that periodic boundaries are recommended with DMRG, but it shows how you can make the hopping terms in AutoMPO connect any two pair of sites. Also you can use similar code to what's there to test your MPO.
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.