Majoranapp
A C++ library for studying MZM in non-interacting systems
ProxTerm.hpp
Go to the documentation of this file.
1 #ifndef SPINLESSFILLER_PROXTERM_HPP
2 #define SPINLESSFILLER_PROXTERM_HPP
3 
4 #include "../Hamiltonian.hpp"
5 #include "../EnumGamma.hpp"
6 #include "../SpinfullFiller/ProxTerm.hpp"
7 
8 namespace Spinless
9 {
10 
28 class ProxTerm
29 {
30 public:
41  template <class T>
42  static void Fill(Hamiltonian<T> &ham, double delta, int i, int j, double phase = 0.0)
43  {
44  ham.InsertBlock(Gamma::UpPlus, i, Gamma::UpPlus, j, 0.5 * delta * std::sin(phase));
45  ham.InsertBlock(Gamma::UpPlus, i, Gamma::UpMinus, j, 0.5 * delta * std::cos(phase));
46  ham.InsertBlock(Gamma::UpPlus, j, Gamma::UpMinus, i, -0.5 * delta * std::cos(phase));
47  ham.InsertBlock(Gamma::UpMinus, i, Gamma::UpMinus, j, -0.5 * delta * std::sin(phase));
48  }
49 
50  static const std::string name;
51  static constexpr size_t locality{2};
52 };
53 
54 const std::string ProxTerm::name{Spinfull::ProxTerm::name};
55 
56 }
57 
58 #endif
Definition: ChemicalTerm.hpp:8
Hamiltonian class for counting MZM in non-interacting systems.
Definition: Hamiltonian.hpp:13
static const std::string name
Definition: ProxTerm.hpp:50
static constexpr size_t locality
Definition: ProxTerm.hpp:51
static void Fill(Hamiltonian< T > &ham, double delta, int i, int j, double phase=0.0)
Filler.
Definition: ProxTerm.hpp:42
static const std::string name
Definition: ProxTerm.hpp:43
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
superconducting term
Definition: ProxTerm.hpp:28