Hi Kristin, The short answer is yes. Here is a code sample:
using ITensors
let
N=6
s=siteinds("S=1/2",N;conserve_qns=true)
os = OpSum()
for j in 1:(N - 1)
os += "Sz", j, "Sz", j + 1
os += 0.5, "S+", j, "S-", j + 1
os += 0.5, "S-", j, "S+", j + 1
end
cb=combiner(dag(s)...)
cbp=combiner(s'...)
H = prod(MPO(os, s))*cb*cbp
E,V=eigen(H,combinedind(cb),combinedind(cbp))
@show sort(array(real(diag(E))))
end
Efficiency can be improved with ishermitian=true in the eigen call.
I hope this helps.
JR