Majoranapp
A C++ library for studying MZM in non-interacting systems
SpinfullUniformChain.hpp
Go to the documentation of this file.
1 #ifndef FACTORY_SPINFULLUNIFORMCHAIN_HPP
2 #define FACTORY_SPINFULLUNIFORMCHAIN_HPP
3 
4 #include "../Hamiltonian.hpp"
5 #include "../QuantumSystem.hpp"
6 #include "../Filler.hpp"
7 #include "../Info.hpp"
8 
9 #include "../VectorViewers/DefaultViewer.hpp"
10 
28 {
29 public:
30  template <class T>
31  static Hamiltonian<T> Generate(QuantumSystem &quantumSystem)
32  {
33  Dimensions &dimensions = quantumSystem.dimensions;
34  Parameters &parameters = quantumSystem.parameters;
35 
36  int deg = 4;
37  int L = dimensions.GetLength();
38 
39  // check width and height for warning
40  int W = dimensions.GetWidth();
41  int H = dimensions.GetHeight();
43 
44  Hamiltonian<T> ham(L, deg);
45  for (int i = 0; i < L - 1; i++)
46  {
47  Filler<Spinfull::KineticTerm>::Fill(ham, parameters, i, i + 1);
48  Filler<Spinfull::RashbaXTerm>::Fill(ham, parameters, i, i + 1);
49  Filler<Spinfull::RashbaYTerm>::Fill(ham, parameters, i, i + 1);
50  }
51  for (int i = 0; i < L; i++)
52  {
53  Filler<Spinfull::ProxTerm>::Fill(ham, parameters, i);
54  Filler<Spinfull::ZeemanZTerm>::Fill(ham, parameters, i);
55  Filler<Spinfull::ChemicalTerm>::Fill(ham, parameters, i);
56  }
57 
58  return ham;
59  }
60 
61  static constexpr char name[] = "SpinfullUniformChain";
62 
63 };
64 
65 #endif
Parameters parameters
Definition: QuantumSystem.hpp:15
displays vectors as unnumbered sites
Definition: DefaultViewer.hpp:12
Hamiltonian class for counting MZM in non-interacting systems.
Definition: Hamiltonian.hpp:13
static Hamiltonian< T > Generate(QuantumSystem &quantumSystem)
Definition: SpinfullUniformChain.hpp:31
Dimensions dimensions
Definition: QuantumSystem.hpp:16
static constexpr char name[]
Definition: SpinfullUniformChain.hpp:61
Spinfull uniform 1D chain with open boundary conditions.
Definition: SpinfullUniformChain.hpp:27
class containing all information about quantum system, which is needed for hamiltonian construction ...
Definition: QuantumSystem.hpp:12
static void DimensionsWarningOnly1D(int length, int width, int height)
checks if height and width are equal 0
Definition: DimensionsWarning.hpp:19
static void Fill(Hamiltonian< T > &ham, Targs... Fargs)
Definition: Filler.hpp:51