+1 vote
asked by (130 points)

Hello people! I have just started exploring Tensor Networks. I am referring to These Lecture notes by ITensor.

On slide 32, reduced density matrix is calculated for 1st qubit of an entangled state,
psi = (|01> - |10>) / 2^(1/2)

While calculating reduced density matrix of 1st qubit of psi , 2nd qubit of tensor psi should be contracted over 2nd qubit of tensor psi* (Hermitian conjugate).

But according to given matrix multiplication, I think the 2nd qubit of tensor psi is contracting over 1st qubit of tensor psi* which should not be the case.

I want to know if the indices order is flipped while taking the transpose or not.

commented by (14.1k points)
I'm not entirely sure what you mean, but the matrix multiplication that is shown is:

psi = 1/sqrt(2) [0 1; -1 0]
rho = psi psi^H = 1/2 [0 1; -1 0] [0 1; -1 0]^H = 1/2 [0 1; -1 0] [0 -1; 1 0] = 1/2 [1 0; 0 1]

(where I'm using `^H` to be the conjugate transpose). So the matrix multiplication that is shown does correspond to the second qubits being summed over.
commented by (130 points)
edited by
Hello! apology for late reply. Can you name the labels of the matrix psi^H ...as in their order?
Is it <S1S2| or <S2S1|. This is the root of my confusion.

Also is there a way I can add a .jpg file here so I could explain more clearly?
commented by (70.1k points)
Hi Siddhi,
If it helps, there is no concept of transpose in ITensor (similar to how there is no such concept in tensor diagrams). You can take the Hermitian conjugate of an ITensor, but this just does two things: (1) complex conjugate all of the elements and (2) reverse the arrows on the indices. (If you aren't conserving quantum numbers you don't have to pay attention to the arrows, so ignore that part if it doesn't apply to you.)

So then the only thing that controls which indices contract and don't contract is whether the indices "match" or compare equal. The order in which they appear on the ITensor does not matter. As you may know, indices compare equal if they have the same id number (you can see the id in the printout or by calling the function `id` on an Index) and if they have the same prime level and tags.

So then I would encourage you to draw a diagram of your contraction with these above rules in mind and maybe it could help?

If the contraction isn't doing what you want, in ITensor it is because the wrong indices are matching with each other, or indices you wanted to match are not matching etc.

Sending us a figure is a good idea, but the best way to do it would be to post it at another link and then give the link here.

Best regards,
commented by (130 points)
Hello Miles!
When I meant transpose I meant Hermitian conjugate! Also  from some other material I learned that while taking Hermitian conjugate indices are reversed (I don't understand what you meant by 'conserving quantum numbers' though). After a little work I understood where I was going wrong and my confusion is now cleared. Thank you so much for help!
commented by (70.1k points)
Hi Siddhi,
Glad you are making some progress and figured a lot more out!

If you aren't working with quantum numbers, then you can ignore that part of my reply.

However, just to briefly explain what that means ("conserving quantum numbers") so you can learn for the future, what it refers to is that certain quantum Hamiltonians do not change the particle number for the case of a system of particles, or the total spin z component for the case of a spin system, etc. and there are many other examples like this. ITensor has a feature where you can take advantage of these kind of 'conservation laws' to both speed up your calculation and enforce certain constraints on the results. It is not an ITensor-specific thing, though, and a common topic across numerical many-body physics and physics in general associated to symmetries of a Hamiltonian. There is a small amount of introductory material here, though we need to expand it:

commented by (130 points)
That is a very useful piece of information. Thank you!

1 Answer

0 votes
answered by (70.1k points)

(See discussion above)

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.