SOLIDstate
A C++ library for solid state physics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
DynamicsSchedule.hpp
Go to the documentation of this file.
1 
11 #ifndef QUANTUMDYNAMICS_DYNAMICSSCHEDULE_HPP
12 #define QUANTUMDYNAMICS_DYNAMICSSCHEDULE_HPP
13 
14 #include <functional>
15 #include <map>
16 #include <string>
17 
18 namespace solid
19 {
20 
26 template <class T>
27 using Schedule = std::function<void(T &, double)>;
28 
34 template <class T>
35 using ScheduleMap = std::map<std::string, Schedule<T>>;
36 
41 typedef std::function<bool(double)> TimeToMeasure;
42 
48 template <class T>
50 {
51 public:
52  double time_init = 0;
53  double time_final = 1;
54  double time_step = 0.01;
58  // TODO
59  // * const times
60  // * add constructor?
61  // * private times/dict?
62 };
63 
71 template <template <typename> class T1, typename T2, typename T3 = T2>
73 {
74 public:
78  std::function<void(QuantumSystem<T1, T2> &, QuantumState<T3> &)> Measure;
79 
84 };
85 
86 } // namespace solid
87 
88 #endif
double time_final
Definition: DynamicsSchedule.hpp:53
std::function< void(T &, double)> Schedule
typedef for function of parameters (T) and time (double)
Definition: DynamicsSchedule.hpp:27
double time_init
Definition: DynamicsSchedule.hpp:52
Schedule for the dynamics (uniform time step)
Definition: DynamicsSchedule.hpp:49
std::map< std::string, Schedule< T >> ScheduleMap
typedef for map of label and Schedule<T>
Definition: DynamicsSchedule.hpp:35
Schedule for the measurment.
Definition: DynamicsSchedule.hpp:72
ScheduleMap< T > dict
Definition: DynamicsSchedule.hpp:56
std::function< bool(double)> TimeToMeasure
typedef for function that returns bool (time to measure?) from argument double (time) ...
Definition: DynamicsSchedule.hpp:41
double time_step
Definition: DynamicsSchedule.hpp:54
std::function< void(QuantumSystem< T1, T2 > &, QuantumState< T3 > &)> Measure
what to measure? (list of operators to measure)
Definition: DynamicsSchedule.hpp:78
TimeToMeasure timeToMeasure
when to measure? (function/functor)
Definition: DynamicsSchedule.hpp:83