some problem of purification program

Hello everyone, I have encountered some problems in learning the purification method,and I hope to get your help.

The purification algorithm articles (https://journals.aps.org/prb/abstract/10.1103/PhysRevB.72.220401) mention: Quantum states at finite temperature are mixed states, so they need to be purified into a pure state by introducing an auxiliary system. In code implementation, this is typically done by purifying the mixed-state(MPO)into a pure-state(MPS), then applying imaginary time evolution (only to the real system), getting the state at a specific temperature. Finally, the expectation values of physical quantities are calculated.

However, in the ITensor demonstration code(ITensorMPS.jl/examples/finite_temperature/purification.jl at main · ITensor/ITensorMPS.jl · GitHub), it seems that the process does not follow the steps described in the articles. The code directly applies operations to the MPO without a “purification” step, appearing unrelated to purification algorithm. For instance, in the articles, the purification involves imaginary time evolution up to β/2, but the code evolves to β. The two approaches do not appear to be the same algorithm.

Does the code correspond to a different algorithm? Or does the purification described in the articles correspond to a different kind of code? I don’t understand why they are related?

Thank you very much in advance
Shuaifeng