Hi, everyone in ITensor community!
I am trying to construct a Hamiltonian involving two types of sites,
A similar question has been answered by Miles. Based on it, I have successfully performed some DMRG calculations.
To fix the filling factor of fermions, one may simply add a chemical potential term. My question is: Is it possible to use
"Fermion" sites only, so that to work directly with a fixed fermion number?
I find that using
conserve_qns=true for both types of sites simultaneously is allowed, but only applying to one of them returns error. As an example, the following codes seem to work (which is based on this formula)
sites = siteinds(n->isodd(n) ? "S=1/2" : "S=1", N; conserve_qns=true)
ampo = OpSum()
ampo += (0.5*J,"S+",j,"S-",j+2,"S+",j+1,"S-",j+3)
ampo += (0.5*J,"S-",j,"S+",j+1,"S-",j+1,"S+",j+3)
ampo += (J,"Sz",j,"Sz",j+2,"Sz",j+1,"Sz",j+3)
H = MPO(ampo,sites)
states = [isodd(n) ? "Up" : "Dn" for n in 1:N]
psi0 = MPS(sites,states);
sweeps = Sweeps(10)
energy,psi = dmrg(H,psi0,sweeps)
But if I apply
conserve_qns=true only to
S=1 sites, as follows,
sites1 = siteinds("S=1",div(N,2);conserve_qns=true)
sites2 = siteinds("S=1/2",div(N,2);conserve_qns=false)
sites = [
... # the rest are the same as before
It then returns error. Note if I choose
conserve_qns=false) for both sites in above codes, it again works!