Open Marcel-Rodekamp opened 2 years ago
Maybe the best way is to add a species enum that is passed to the constructor of NSL::FermionMatrix::Hubbard*
and defines a integer sign
that is plus (particle) or minus (hole) one.
Then this sign could be multiplied to
exp_hopping_matrix(sign*delta_) // also for chemical potential, similarly other discretizations
and
exp(NSL::complex<Type>(0,sign*1) phi )
in the appropriate places.
The
NSL::FermionMatrix::HubbardExp
class (PR #65) does provide an implementation for particles. The hole implementation needs to be added. We have 2 ways to do it, I think: