+1 vote
asked by (260 points)

This is more asking for recommendations than suggestions, but I have just recently learned about DMRG and Tensor Networks, and was hoping to get some hands on practice in Julia, using ITensor. I wanted to try to use ITensor for something simple, like the Ising Model.

I've gone through much of the Julia tutorials on the page, but am still struggling to apply the knowledge to real physics problems. Does anyone have recommendations on where I can look for a guide/walkthrough on how to approach a specific problem? (There doesn't necessarily need to be code samples, I'm more looking to learn how to think about and approach problems.) I know this isn't a standard question to be asked, but I wasn't really sure where else to look!

commented by (70.1k points)
Hi - thanks for the question. I’ll post an answer to this at some point, but I’m also hoping some of our community will chime in too. (Matt Fishman and I answer the most here since we are the main developers as you probably know, but users do also post helpful answers.)  So for now I’ll post this comment to ask some more questions.

Before I answer though, could you say a bit more of what your goals are? Do you have a specific system you are working up toward studying (Ising model or another one)? Or are you just wanting to do some test calculations to get a feel for what kind of results are possible with MPS, DMRG, and tensor networks? If you do have a specific system in mind, are you after ground state physics only? Or real-time, excited state, or perhaps finite T properties? And are these properties more conventional ones like local expectation values and correlators or things like entanglement entropy or even other properties? (It’s ok if you don’t have answers to all of these questions, but if you do to some it would give a better idea of what you are hoping to eventually do with tensor networks.)

commented by (260 points)
edited by
Hi Miles!

Sorry for the late reply on this. I wanted to start with the Ising model because I understand it reasonably well, and it seems like the simplest problem that DMRG, MPS, and tensor networks can be used in a non-trivial fashion. Eventually I would eventually like to be able to use these methods for other condensed matter models (Hubbard Model) as well as simulating atoms in optical lattices. I would like to be able to both simulate dynamics, but also calculate correlation functions.

Thanks a bunch!


1 Answer

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

Hi, thanks for the reply above. I’m still not totally sure what you are looking for, because applying DMRG to the Ising model does seem like a good way to start. But if you are looking for some other activities to practice using DMRG and MPS here is another thing you can do.

  1. take the example DMRG code from here:

  2. modify it to measure on every site at the end, after the MPS is optimized, using code similar to that in this “code formula” page:

The resulting magnetization should be rather flat!

  1. now change the logic of how the “siteinds” function is called at the top by changing the condition isodd(n) to (n==1) which will set the spin to be “S=1/2” only on the first site. The bulk sites and site N will be S=1 spins. Rerun the calculation. What’s changed about the magnetization? Can you explain why it’s still very flat on the right-hand side? (It has to do with the physics of SPT’s and the “AKLT” picture of the physics of the S=1 Heisenberg chain.)

For something resembling a walk through, have you looked at the paper “DMRG in the Age of Matrix Product States” by Schollwoeck? It is essential reading for anyone wanting to become an expert in MPS techniques.

Best regards,

commented by (260 points)
Thank you for the info! (I'm actually making my way through Schollwoeck right now!) The links above on first glance seem very helpful!!
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.