Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
builder_Integrator.h
Go to the documentation of this file.
1 
14 #ifndef BUILDER_INTEGRATOR_INCLUDED
15 #define BUILDER_INTEGRATOR_INCLUDED
16 
17 #include <cassert>
18 
19 #include "integrator_UpdateU.h"
20 
21 #include "integrator_Leapfrog.h"
22 #include "integrator_Omelyan.h"
23 
24 #include "bridgeIO.h"
25 using Bridge::vout;
26 
28 
40 //- parameters class
42 {
43  public:
45 };
46 //- end
47 
49 {
50  protected:
52 
53  private:
54  double m_Estep;
55  int m_Nprec;
57  std::string m_str_integrator_type;
58  std::valarray<Action *> m_action;
59  std::valarray<Director *> m_director;
60  int m_Nlevel;
61  std::valarray<int> m_Naction;
62  std::valarray<int> m_Nstep;
63  std::valarray<Integrator *> m_integs;
64 
65  public:
67  Builder_Integrator(std::valarray<Action *> action,
68  std::valarray<Director *> director)
69  : m_vl(CommonParameters::Vlevel())
70  {
71  m_action.resize(action.size());
72  for (int i = 0; i < action.size(); ++i) {
73  m_action[i] = action[i];
74  }
75  m_director.resize(director.size());
76  for (int i = 0; i < director.size(); ++i) {
77  m_director[i] = director[i];
78  }
79  m_Estep = 0.0;
80  m_Nprec = 0;
81  m_lambda_Omelyan = 0.0;
82  }
83 
85  Builder_Integrator(std::valarray<Action *> action)
86  : m_vl(CommonParameters::Vlevel())
87  {
88  m_action.resize(action.size());
89  for (int i = 0; i < action.size(); ++i) {
90  m_action[i] = action[i];
91  }
92  m_Estep = 0.0;
93  m_Nprec = 0;
94  m_lambda_Omelyan = 0.0;
95  }
96 
99  {
100  tidyup();
101  }
102 
103  void set_parameters(const Parameters& params);
104  void set_parameters(std::string str_integrator_type,
105  double Estep, int Nlevel,
106  const std::valarray<int>& Naction,
107  const std::valarray<int>& Nstep,
108  const int Nprec,
109  const double lambda_Omelyan);
110 
112 
113  Integrator *build();
114 
117 
118  void tidyup();
119 };
120 #endif