Hi all,
I’m trying to understand how best to apply a Free Fermion rotation on a QN conserved state. For an example, assume I have previously defined an electronic Hamiltonian I would like to perform DMRG on, and that Hamiltonian has good quantum numbers that I fixed.
sites = siteinds("Electron",N,conserve_qns=true)
states = ["0" for n=1:N]
states[1] = "Up"
states[2] = "Dn"
psi = productMPS(sites,states)
sweeps = Sweeps(10); setmaxdim!(10); setcutoff!(sweeps, 1e-7)
energy, psi = dmrg(H, psi, sweeps, outputlevel=0);
This is all fine. However, what if afterwards I wanted to perform a free fermion rotation on psi, for example to represent a state with respect to a momenta basis rather than occpuation/fock basis? Is there a way to apply a givens rotation, for example, which could perform a free fermion rotation between two fermionic sites only within the spin up sector? Is there a way to do so in which I contract a local gate into local sites, or am I forced to take psi to dense and perform the rotations out of the iTensor supported object?
I appreciate any wisdom!