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.

1 Like

Hi Matt,

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

Best,
Zhen

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.