# CPS collapse of finite-T in the tutorial (Minimally entangled typical thermal state algorithms)

+1 vote

Hello! I have some question about CPS collapse in the Minimally entangled typical thermal state algorithms.
Assume we have know the projection operator Pi(m), which project the ith site state to |m>. When we collapse from the first site of a METTS, the probability is p1(m) = (psi|P1(m)|psi).
after a collapse, the wave function should be updated as follow:(NJP, 12 (2010) 055026, Annals of Physics 326(2011) 96-192 sec. 8.3)

         A_{1N}^{s_1} = <s_1|m>
A_{2N}^{s_2}= <m|s1> A_{1O}^{s1} A_{2O}^{s2}/sqrt(p1(m))
Latex:
A_{1N}^{s_{1}}=\left\langle s_{1}|m\right\rangle
A_{2N}^{s_{2}}=p_{1m}^{-\frac{1}{2}}\left\langle m|s_{1}\right\rangle A_{1O}^{s_{1}}A_{2O}^{s_{1}}


lower index N and O represent new and old respectively, and summation is assumed.
In the finite-T tutorial of ITensor 3.1.3 , the related code is:

ITensor jstate = (st==1) ? upState : downState;
if(j < N)
{
auto newA = psi(j+1)*(dag(jstate)*psi(j));
newA /= norm(newA);
psi.set(j+1,newA);
}
//Set site j tensor
psi.set(j,jstate);


here newA is not divided by the square root of the probability, newA /= norm(newA) normalize the projected state. But I noticed that the square root of the probability occurs here. For newA = psi(j+1)(dag(jstate)psi(j)), should it be like this newA = psi(j+1)(dag(jstate))psi(j) ?

For the absence of the square root of the probability here, can I understand like this:
when we divide the newA by the square root of the probability, we just multiply the wave function by a real number. It will not affect the collapse probability for the next step(if we do a normalization). And for the measurements, because of the normalization there is also no affect?

Hi, thanks for the question. The answer is that the normalization is equal to the square root of the probability. So if you compute the norm from the formula (square root of probability) or just by computing the norm of the new “A” tensor of the MPS, you will get the same number. The real purpose of dividing by the square root of the probability is to normalize the state, so writing the code in a more general way that also normalizes the state is also ok to give the right answer.