Hi,
I have been using ITensor for a couple of weeks now and I am currently trying to extend some DMRG calculations to a Hubbard model with spin 3/2 fermions. I have defined a custom type for the latter but the representation of the operators by 16x16 matrices leads to really slow running times. I was hoping to get better execution times by following your example in the DMRG with Mixed Local Hilbert Space Types section, so I tried alternating Electron sites with custom Electron3 sites (same as Electron but with 3/2 and -3/2 projections).
Unfortunately, the hopping between two Electron sites (1 and 3) in the minimal code below (with alternating Electron and Fermion sites) does not behave as expected. The Fermion sites should be irrelevant, but the output is 0 for the energy; when renaming them e.g. to Electron it changes to a nonzero value.
using ITensors
let
N = 20
sites = siteinds(n->isodd(n) ? "Electron" : "Fermion",N; conserve_qns=true)
ampo = OpSum()
ampo += "Cdagup", 1, "Cup", 3
ampo += "Cdagup", 3, "Cup", 1
H = MPO(ampo, sites)
sweeps = Sweeps(6)
setmaxdim!(sweeps, 100)
setcutoff!(sweeps, 1E-12)
state = ["Emp" for n in 1:N]
state[1]="UpDn"
psi0 = randomMPS(sites, state, 10)
@show flux(psi0)
energy, psi = dmrg(H, psi0, sweeps)
println("\nGround State Energy = $energy")
end
Thank you,
Virgil