Calculation of two-point correlator in the quantum number conservation framework

, ,

Hi all

I am trying to calculate the two-point correlator of the following form in the context of a chain of spin-half particles

C(x,t)=\langle[\sigma_x^+(t), \sigma_x^-(0)]\rangle

I am doing calculations for XXX chains for which total magnetization is conserved. I need data till large times and to speed up the calculation, I am thinking of exploiting the quantum number conservation. I was trying to implement the calculation in C++ version of the iTensor. The application of the raising and lowering operator here in the calculation changes the QN number block and I guess we can not apply the operator/MPO’s which changes the quantum number block to the states defined over site set with conserved quantum number in general.

My question is whether is there a way to calculate the above-mentioned correlator in the Quantum number conservation framework.

Thanks in advance.

I think I see what you’re asking. Actually, it is totally ok to apply operators which change the total quantum number (QN) of a state when using the QN-conserving mode of ITensor.

The thing which is not allowed is to create or use operators which do not change the QN in a “well defined” way (I can say more below). However, the operators \sigma^+ and \sigma^- do change the QN in a well-defined way so it is ok to use those. Please try it and it should work the same as for the non-QN-conserving case.

About the idea of “well defined”, what we mean is that an operator should always change the QN of a state it acts on by the same amount. So \sigma^+ \ket{\psi} = \ket{\psi'} always outputs a state \ket{\psi'} whose magnetization is one higher than \ket{\psi}. But on the other hand, if we applied \sigma^x\ket{\psi}, that would output a state which is a sum of one term with higher magnetization and another term with lower magnetization. So \sigma^x does not change the QN in a well defined way. The term we use is that \sigma^+ has a well-defined QN flux (is “equivariant” i.e. transforms as an irrep of U(1)) while \sigma^x does not (is a sum of operators transforming under different irreps of U(1)).


Thank you Miles for the detailed reply. I tried implementing the time evolution in the quantum number conservation framework and it worked.

1 Like

Glad to hear that!

1 Like