How to create a new operator as a combination of operators acting on different sites
Posted: 20 May 2023, 11:46
Hi everyone! I'm a Master student and I'm learning to do DMRG and extract quantities of interest with Tenpy.
The first steps were quite straightforward, but now I'm stuck.
I'm trying to reproduce some results from this paper arXiv:2209.08815 (Bose-Hubbard chain with next nearest neighbors interaction) but I don't understand how to implement some correlators in the code. For example, I'm interested in computing the following:
\[\kappa_z^\Delta = \sum_{j=1}^{M-1-\left | \Delta \right |} \langle \kappa_j^z \kappa_{j+\Delta}^z \rangle \] where M in the size of the chain, with \(\kappa_j^z = \frac{1}{2i} \left ( b_j^{\dag}b_{j+1} - b_{j+1}^{\dag}b_j \right )\).
The problem is that I'm not able to create a new operator as combination of creation/annihilation operators acting on different sites. I'm able to write it using TermList, but I don't know how (and if it is possible) to convert it to an actual operator with an associated string name that is then recognized if I plug it in functions like expectation_value_term().
Maybe this is not even the right path, but it is what I came up with so far.
I looked into the forum but I didn't find an answer to this, maybe there is something very easy that I'm missing.
So if somebody has any suggestion, I will gladly accept it.
Thanks in advance!
The first steps were quite straightforward, but now I'm stuck.
I'm trying to reproduce some results from this paper arXiv:2209.08815 (Bose-Hubbard chain with next nearest neighbors interaction) but I don't understand how to implement some correlators in the code. For example, I'm interested in computing the following:
\[\kappa_z^\Delta = \sum_{j=1}^{M-1-\left | \Delta \right |} \langle \kappa_j^z \kappa_{j+\Delta}^z \rangle \] where M in the size of the chain, with \(\kappa_j^z = \frac{1}{2i} \left ( b_j^{\dag}b_{j+1} - b_{j+1}^{\dag}b_j \right )\).
The problem is that I'm not able to create a new operator as combination of creation/annihilation operators acting on different sites. I'm able to write it using TermList, but I don't know how (and if it is possible) to convert it to an actual operator with an associated string name that is then recognized if I plug it in functions like expectation_value_term().
Maybe this is not even the right path, but it is what I came up with so far.
I looked into the forum but I didn't find an answer to this, maybe there is something very easy that I'm missing.
So if somebody has any suggestion, I will gladly accept it.
Thanks in advance!