+1 vote
asked by (760 points)

Hi. I wonder if it is possible to convert an ITensor with 2 quantum numbers, say total Sz and particle number, to which with only 1 quantum number, say total Sz. It would be equally good if I can contract two tensors with different number of quantum numbers. Thank you.

BTW I am using ITensor3 C++ interface.

commented by (480 points)
Not a full answer, but assuming that the code doesn't take too long to run, what about building your more symmetric state in the larger, less symmetric space? More specifically, I'm imagining using the `state.set` to control the initial trial MPS to specify that the state is in a given symmetry sector (i.e. fixed number). The page http://www.itensor.org/support/2101/how-to-construct-singlet-state-under-qn-conservation?show=2106#c2106 Discusses this with the conservation of Sz=0 for a state. Hopefully that will give you some ideas if this direction will work for you. I'm pretty new to this (obviously from the question I asked a week ago =D )

- Jared
commented by (760 points)
Thank you Jared. Apparently I just learned how to reply a comment, so forgive me for the late thank you.  I agree that a solution is to use a less symmetric tensor in the first place as Miles also suggested, and in ITensor it is pretty convenient to do it (which is what I am doing). My question was whether ITensor supports automatically converting a symmetric tensor to a less symmetric tensor (by putting zeros) but I think the answer is No and one needs to write such a function by itself.

1 Answer

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

Hi Chia-Min,
The short answer is, no, we don't have this capability right now. It is something that could be theoretically added, but it would be hard for us to prioritize this right now.

If the purpose of this is to contract two tensors with different QNs, though, then one way you could do this is to just convert them both to dense, non-QN tensors and then contract them that way. (You may likely have to do some index replacement on one of them to get the id's to match before hand.)

Another way to go is just to use fewer QNs in the first place, so like the minimum amount shared by the two tensors. If you wanted to give a little more context, I might be able to help you more.


commented by (760 points)
Thank you Jared and Miles. Both of your suggestions make sense to me and are actually what I am doing or I will do. My question was mainly about the current ability of ITensor and
wonder if there is anything I missed from the documentation, and Miles has perfectly answer it.
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.