Hi Miles, sorry to bother you again. I tried to add in interactions based on the previous code by using (as a minimal example):
ampo += g, "C2dC1", 1, "C1", 2
ampo += g, "C1d", 2, "C1dC2", 1
where the "C2dC1" and "C1dC2" are defined the usual way:
function ITensors.op!(Op::ITensor, ::OpName"C2dC1", ::SiteType"CFermion", s::Index)
return Op[s' => 3, s => 2] = 1.0
end
function ITensors.op!(Op::ITensor, ::OpName"C1dC2", ::SiteType"CFermion", s::Index)
return Op[s' => 2, s => 3] = 1.0
end
However, making MPO by using MPO(sites, states) gives me the error: " No block found with QN equal to QN(("NfParity",1,-2),("Q1",0))" when I set conserve_qn to be true.
The strange part is the QN(("NfParity",1,-2),("Q1",0)), because it has 0 charge, but fermion parity is 1, which isn't supposed to appear based on my definition of the local Hilbert space and the operators. I'm not sure what I'm missing here.
Thanks again,
-Mason