Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
integrator_Omelyan.h
Go to the documentation of this file.
1 
14 #ifndef INTEGRATOR_OMELYAN_INCLUDED
15 #define INTEGRATOR_OMELYAN_INCLUDED
16 
17 #include "action.h"
18 #include "director.h"
19 #include "randomNumbers.h"
20 #include "integrator.h"
21 
22 #include "bridgeIO.h"
23 using Bridge::vout;
24 
26 
33 //- parameters class
35 {
36  public:
38 };
39 //- end
40 
42 {
43  private:
44  double m_Estep; // step size of each molecular dynamical evolution
45  int m_Nstep; // number of steps
46  int m_level; // level number
47  double m_lambda; // Omelyan's optimized parameter
49  std::valarray<Action *> m_action; // actions
50 
51  public:
53  Integrator_Omelyan(std::valarray<Action *> action,
54  Integrator *integ_next)
55  {
56  m_action.resize(action.size());
57  for (int i = 0; i < action.size(); ++i) {
58  m_action[i] = action[i];
59  }
60  m_integ_next = integ_next;
61  m_Estep = 0.0;
62  m_Nstep = 0;
63  m_lambda = 0.0;
64  }
65 
68 
69  void set_parameters(const Parameters& params);
70  void set_parameters(int level, double Estep, int Nstep,
71  double lambda_Omelyan);
72 
73  void evolve(Field_G& iP, Field_G& U);
74 };
75 #endif