MPS representation used in ITensor and use of orthogonalize!

Hi,

I am using ITensor in Julia and came across this function called orthogonalize! which shifts the orthogonality center of the MPS to a particular site. I am trying to understand what this means and how using this one can compute the entanglement entropy of a bond. I have the following doubts -

  1. In what form does ITensor create an MPS? As in, is it in the right or left canonical form or any arbitrary form?

  2. When I call the orthogonalize!(psi,j) function, the documentation says that it modifies the MPS such that sites 1,2,...,j-1 have tensors which are in left orthogonal form and the site j,j+1,..,N have right orthogonal tensor. This indicates the MPS is in a mixed canonical form -
    \ket{\psi} = \sum_{\{\sigma_i\}}A^{\sigma_1}\dots A^{\sigma_{j-1}}\Lambda^{j-1}B^{\sigma_{j}}\dots B^{\sigma_N}\ket{\{\sigma_i\}}.
    What happens to the \Lambda^{j-1}? Does it get absorbed with B^{\sigma_j}?

  3. If the statement in the previous point is true, then how does the SVD of the tensor at site j- psi[j] give me the singular values of the bond j? Please correct me if I am wrong, but I thought that if we do an SVD of the full tensor \Lambda^{j-1}B^{\sigma_{j}}\dots B^{\sigma_N} by clubbing the indices \sigma_{j+1}\sigma_{j+2}\dots \sigma_N together as column and the rest as rows, we will get the singular values at bond j.
    In question about calculating entanglement entropy of a MPS - #2 by miles, @miles did mention that “It’s not an obvious thing and I’m not explaining it fully here, but just pointing out that the MPS orthogonality is the reason you can just SVD a single tensor to get the Schmidt values (singular values) and compute the entanglement.”
    Can someone please elaborate on this point?

  4. Finally, as pointed out by @mtfishman in the use of orthogonalize - #2 by mtfishman, we can actually construct the local density matrix at site j, using - orthogonalize!(psi, j); rho_j = prime(dag(psi[j]), siteinds(psi, j)) * psi[j]. If this is the case, then doesn’t the SVD of psi[j] actually give me the entanglement entropy of the bipartition of this particular site from the rest of the system? Perhaps the clubbing of indices here will be different from the case mentioned in question 3.

Thanks in advance!

Hi,

A small update. I no longer have any doubts regarding points 3 and 4 if I assume that \Lambda^{j-1} is absorbed with B^{\sigma_j}.

For point 3, I see that if we do an SVD of \Lambda^{j-1}B^{\sigma_j} which is A^{\sigma_j}\Lambda^j, then using \sum_{\sigma_j}A^{\sigma_j\dagger}A^{\sigma_j} = I, we get \Lambda^j to be the singular values.

Glad you’re making some progress. Here’s my answer for points 1 and 2:

We can understand the conventions about MPS in ITensor may not always be totally clear from the documentation and previous forum questions (thanks for searching first).

The gauge that the MPS type in ITensor current ‘models’ is the mixed-canonical gauge, where there is an orthogonality center site (or “center” site) c and all tensors to the left (psi[j] for j < c) are left-orthogonal while all tensors to the right (psi[j] for j > c) are right-orthogonal.

  1. It’s a little hard to answer this question, since there are multiple constructors for MPS. But typically methods in ITensor such as randomMPS make an MPS which is mixed-canonical gauge with the center at site c=1.

  2. When you call orthogonalize!(psi,j), it brings the MPS into the mixed-canonical gauge with the center at site c=j. So in your question, yes the \Lambda^{j-1} would get absorbed into B^{\sigma_j}. (You could call this new tensor \Psi^{\sigma_j}_{\alpha_{j-1} \beta_j} to indicate that it represents the entire wavefunction, in the basis of the left and right.)

Hi,

Thanks for the clarification. So if randomMPS makes an MPS in the mixed canonical gauge with center at site 1, then doesn’t it mean that it’s in the right canonical form?

Yes, that’s correct. Mixed-canonical at site 1 and right-canonical are two names for the same gauge.

1 Like