Dear all,
I am performing a 1D TEBD calculation for a mixed-site model. My model is the lattice Schwinger model, which includes fermions on odd lattice sites and spin-1/2 particles on even lattice sites. The model involves a three-body interaction of type \sum_jc_j^\dagger s^+_{j+1}c_{j+2} + \text{h.c.} I have enforced fermion number conservation using the method mentioned in [about MixedSiteSet for electron and spin] and adopting the open boundary condition.
I have successfully obtained the ground state using DMRG, but I encounter errors when performing dynamics evolution using TEBD. My TEBD evolution is based on op() and apply(). Specifically, when I construct operator
hj = op("Cdag",sites[1]) * op("S+",sites[2]) * op("C",sites[3]) + op("Cdag",sites[3]) * op("S-",sites[2]) * op("C",sites[1]); #without error
U = exp(-im*dt/2*hj); #without error
apply(U,psi0;cutoff) #error occurs
, the error “ERROR: MethodError: no method matching isless(::Vector{Float64}, ::Float64)” occurs.
I have also tried
hj = op("Cdag",sites[1]) * op("S+",sites[2]) * op("C",sites[3]); #without error
apply(hj,psi0;cutoff) #error occurs
, but it yields the same error.
However, the program runs smoothly when I keep only one of the three op(), e.g.,
hj = op("Cdag",sites[1]);
apply(hj,psi0;cutoff)
hj = op("S+",sites[2]);
apply(hj,psi0;cutoff)
These work well. I would like to understand the cause of this issue and how I can resolve it.
Best,
Lee