change quantum number in TDVP calculation

,

Hi there,

I’m trying to use TDVP to calculate one-particle Green’s function like

iG(t)=\langle \Psi|c_{i\uparrow}(t)c_{j\uparrow}^\dagger|\Psi\rangle

for a time-independent Hubbard chain.

Following one post on the forum, I managed to get results which agree with ED benchmark, if I set no conserved quantum numbers for the ground state MPS |\Psi\rangle and the time-evolved MPS e^{-iHt}c_{j\uparrow}^\dagger|\Psi\rangle.

However, if I obtain the ground state |\Psi\rangle with conserved quantum numbers (say half-filling, so conserve_nf=true,conserve_sz=true), then using TDVP to evolve an initial state c_{j\uparrow}^\dagger|\Psi\rangle will not give the same result. I guess the reason is that c_{j\uparrow}^\dagger actually changes fermion number and total z-spin. I found some discussions about mpo that changes quantum number, but I am a bit lost there.

So my question is, if I use dmrg to get a ground state |\Psi\rangle in a subspace with fixed fermion number and total z-spin (say 2\uparrow2\downarrow), how should I create an initial state c_{j\uparrow}^\dagger|\Psi\rangle (in 3\uparrow2\downarrow subspace)?

I really appreciate all your efforts. Any hint can be helpful.

Best,
Zhen

You could just create the operator c^{\dagger}_{j\uparrow} as an ITensor (say with op(...)) and then apply it to the state using the apply(...) function.

Hi Matt,

Thanks for the very quick reply. That perfectly solves my problem.

Best,
Zhen