1 #ifndef HAMILTONIAN_HPP 2 #define HAMILTONIAN_HPP 43 elements.set_size(deg * N, deg * N);
46 if constexpr (std::is_same<T, arma::mat>::value)
61 int ishift =
static_cast<int>(gammai) % deg;
62 int jshift =
static_cast<int>(gammaj) % deg;
63 this->
elements(deg * i + ishift, deg * j + jshift) += value;
71 this->elements.print();
Hamiltonian class for counting MZM in non-interacting systems.
Definition: Hamiltonian.hpp:13
Hamiltonian(int _N, int _deg)
Construct a new Hamiltonian object.
Definition: Hamiltonian.hpp:41
int deg
number degree of freedom deg = 2 spinless systems deg = 4 spinfull systems (1/2 spin) ...
Definition: Hamiltonian.hpp:24
Gamma
enum class for gamma enumeration
Definition: EnumGamma.hpp:11
int N
number of sites
Definition: Hamiltonian.hpp:30
static solver
Definition: Solver.hpp:11
T elements
matrix element container
Definition: Hamiltonian.hpp:34
void Print()
display matrix elements
Definition: Hamiltonian.hpp:69
void InsertBlock(Gamma gammai, int i, Gamma gammaj, int j, double value)
insert block: value * gamma_i^alpha gamma_j^beta
Definition: Hamiltonian.hpp:59