0 votes
asked by (160 points)
edited by

Hi Everyone,
I want to calculate bipartite entanglement on a spin chain, governed by some interaction Hamiltonian. For this, I need the bipartite density matrix of any two sites on the spin chain. I know neighbouring two-site Wave functions are determined using the following:

ITensor bondket = psi.A(j)*psi.A(j+1);

But I want something like: ITensor bondket = psi.A(j)*psi.A(j+n); where, n=1,2,3,....

Can anyone tell how to do it?

Thanks in Advance.

commented by (28.2k points)
Hi baripsita, does this 'code formula' page answer your question? http://itensor.org/docs.cgi?page=formulas/entanglement_mps

Or are you asking about a different type of entanglement entropy?
commented by (160 points)
Hi Miles,
I want to calculate Logarithmic Negativity of the bipartite states. So, I actually need to know two things: how to take partial transposition of a density matrix in ITensor and how to calculate bipartite wavefunction of any two sites. In this code formula  http://itensor.org/docs.cgi?page=formulas/entanglement_mps the wavefunction is calculated only for the neighbouring sites b and b+1. i want the ket for any indices b & k.
commented by (28.2k points)
Hi Ipsita,
I see, so the negativity. But what is the definition of the "wavefunction of two sites"? Do you mean the reduced density matrix where one traces over all the other sites except for two? Or do you mean a different thing?
commented by (160 points)
Hi Miles,
Yes, it's the reduced density matrix of any two sites I'm asking. Sorry for the malapropism.
commented by (28.2k points)
Great - ok thanks for clarifying! I'll work on an answer for you -

1 Answer

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

Hi Ipsita,
I've posted a new code formula that should show you how to compute the two-site reduced density matrix you are asking about.


Please let me know if you still have a question about this part.

For the partial transpose of the resulting r.d.m., you should be able to do this by manipulating the prime levels of the sj and s'j indices. Like if you raise the s'j index to s''j; then raise sj to s'j; then lower s''j to just sj, you have switched these two indices.

Best regards,

commented by (160 points)
Hi Miles,
Thank you very much for the reduced density matrix code. I will try to do the partial transposition.
Thanks again. :-)
commented by (220 points)
Hi Miles,
I read your sample code and come up with a simple question: Is it necessary to have the last ``for(int k = j+1; k <= psi.N(); ++k)`` because all the tensors at the right hand of j is right-normalized.
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.