Majoranapp
A C++ library for studying MZM in non-interacting systems
SpinlessUserDefined.hpp
Go to the documentation of this file.
1 #ifndef FACTORY_SPINLESSUSERDEFINED_HPP
2 #define FACTORY_SPINLESSUSERDEFINED_HPP
3 
4 #include "../Hamiltonian.hpp"
5 #include "../QuantumSystem.hpp"
6 #include "../Filler.hpp"
7 #include "../Info.hpp"
8 #include "../ConnectionsFiller.hpp"
9 
10 #include "../VectorViewers/DefaultViewer.hpp"
11 
17 {
18  public:
19  template <class T>
20  static Hamiltonian<T> Generate(QuantumSystem &quantumSystem)
21  {
22  Dimensions &dimensions = quantumSystem.dimensions;
23 
24  int deg = 2;
25  int length = dimensions.GetLength();
26 
27  // check height for warning
28  int width = dimensions.GetWidth();
29  int height = dimensions.GetHeight();
30  Info::DimensionsWarningOnly1D(length, width, height);
31 
32  int N = length;
33 
34  Hamiltonian<T> ham(N, deg);
35 
37 
38  return ham;
39  }
40 
41  static constexpr char name[] = "SpinlessUserDefined";
42 
43 };
44 
45 #endif
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: SpinlessUserDefined.hpp:20
ParametersConnections parametersConnections
Definition: QuantumSystem.hpp:17
Dimensions dimensions
Definition: QuantumSystem.hpp:16
Spinless User Defined Hamiltonian.
Definition: SpinlessUserDefined.hpp:16
class containing all information about quantum system, which is needed for hamiltonian construction ...
Definition: QuantumSystem.hpp:12
static constexpr char name[]
Definition: SpinlessUserDefined.hpp:41
static void DimensionsWarningOnly1D(int length, int width, int height)
checks if height and width are equal 0
Definition: DimensionsWarning.hpp:19
static void Spinless(Hamiltonian< T > &hamiltonian, ParametersConnections &parameterConnections)
constructing Spinless terms from ParametersConnections
Definition: ConnectionsFiller.hpp:151