Marcel-Rodekamp / NSL

Nanosystem Simulation Library (NSL) implements statistical simulations for systems on the nanoscale
Other
2 stars 0 forks source link

Missing particle/hole Hubbard Fermion Matrix #74

Open Marcel-Rodekamp opened 2 years ago

Marcel-Rodekamp commented 2 years ago

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:

  1. Additional template parameter
  2. Additional constructor parameter
  3. ?
Marcel-Rodekamp commented 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.