SOLIDstate
A C++ library for solid state physics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Factory.hpp
Go to the documentation of this file.
1 
11 #ifndef FACTORY_FACTORY_HPP
12 #define FACTORY_FACTORY_HPP
13 
14 #include "../Ensemble/Ensemble.hpp"
15 #include "../Ensemble/Canonical.hpp"
16 #include "../Ensemble/GrandCanonical.hpp"
17 #include "../Ensemble/ParityGrandCanonical.hpp"
18 #include "../Hamiltonian/KitaevHamiltonian.hpp"
19 #include "../Observable/Observable.hpp"
20 #include "../Observable/ParticleNumberOperator.hpp"
21 #include "../Observable/ParityOperator.hpp"
22 
23 namespace solid
24 {
25 
26 // produces Ensembles, Hamiltonians, ...
27 
36 class Factory
37 {
38 public:
46  template <class T, typename... Targs>
47  static T CreateEnsemble(Targs...);
48 
55  template <class T>
56  static T CreateHamiltonian();
57 
65  template <class T, typename... Targs>
66  static T CreateObservable(Targs...);
67 };
68 
69 } // namespace solid
70 
71 #endif
static T CreateObservable(Targs...)
Create an Observable object.
Definition: Factory.cpp:42
static T CreateEnsemble(Targs...)
Create a Ensemble object.
Definition: Factory.cpp:21
produces stuff
Definition: Factory.hpp:36
static T CreateHamiltonian()
Create a Hamiltonian object.
Definition: Factory.cpp:32