SOLIDstate
A C++ library for solid state physics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
QuantumSystem.hpp
Go to the documentation of this file.
1 
11 #ifndef QUANTUMSYSTEM_QUANTUMSYSTEM_HPP
12 #define QUANTUMSYSTEM_QUANTUMSYSTEM_HPP
13 
14 #include "../HilbertSpace/HilbertSpace.hpp"
15 #include "../Hamiltonian/Hamiltonian.hpp"
16 #include "../Parameters/Parameters.hpp"
17 #include "../Geometry/Geometry.hpp"
18 #include "../Observable/Observable.hpp"
19 #include "../Factory/Factory.hpp"
20 #include "../QuantumState/QuantumState.hpp"
21 
22 namespace solid
23 {
24 
38 template <template <typename> class T1, typename T2>
40 {
41 public:
46 
51 
55  Parameters<T2> parameters; // TODO make it private?
56 
61  void Fill();
62 
70  template <class Ens, typename... Targs>
71  void SelectEnsemble(Targs... Fargs);
72 
78  template <template <template <typename> class, typename> class Ham>
79  void SelectHamiltonian();
80 
88  template <template <template <typename> class, typename> class Obs, typename... Targs>
89  void SelectObservable(Targs... Fargs);
90 
97 
103  void SelectParameters(Geometry<T2> &geometry);
104 
105 };
106 
107 } // namespace solid
108 
109 #endif
Geometry parrent class.
Definition: Geometry.hpp:55
HilbertSpace hilbertSpace
selected HilbertSpace for the QuantumSystem
Definition: QuantumSystem.hpp:45
void SelectEnsemble(Targs...Fargs)
selects Ensemble for QuantumSystem
Definition: QuantumSystem.cpp:27
Operator< T1, T2 > hamiltonian
container for matrixElements
Definition: QuantumSystem.hpp:50
void Fill()
fills matrixElements for selected Hamiltonian, with respect to HilbertSpace (Ensemble) and system Par...
Definition: QuantumSystem.cpp:20
Parameters< T2 > parameters
Parameters for hamiltonian.
Definition: QuantumSystem.hpp:55
parent class for Quantum Mechanical Operators
Definition: Hamiltonian.hpp:60
void SelectParameters(Parameters< T2 > &parameters)
Select Parameters of the QuantumSystem.
Definition: QuantumSystem.cpp:53
general purpouse class for solving quantum systems
Definition: QuantumSystem.hpp:39
void SelectHamiltonian()
selects IHamiltonian for QuantumSystem
Definition: QuantumSystem.cpp:36
void SelectObservable(Targs...Fargs)
selects Observable for QuantumSystem
Definition: QuantumSystem.cpp:43
Hilbert Space class for state enumeration within the Sectors (Sector)
Definition: HilbertSpace.hpp:31