Bridge++  Ver. 1.2.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  public:
51  static const std::string class_name;
52 
53  protected:
55 
56  private:
57  double m_Estep;
58  int m_Nprec;
60  std::string m_str_integrator_type;
61  std::valarray<Action *> m_action;
62  std::valarray<Director *> m_director;
63  int m_Nlevel;
64  std::valarray<int> m_Naction;
65  std::valarray<int> m_Nstep;
66  std::valarray<Integrator *> m_integs;
67 
68  public:
70  Builder_Integrator(std::valarray<Action *> action,
71  std::valarray<Director *> director)
72  : m_vl(CommonParameters::Vlevel())
73  {
74  m_action.resize(action.size());
75  for (int i = 0; i < action.size(); ++i) {
76  m_action[i] = action[i];
77  }
78  m_director.resize(director.size());
79  for (int i = 0; i < director.size(); ++i) {
80  m_director[i] = director[i];
81  }
82  m_Estep = 0.0;
83  m_Nprec = 0;
84  m_lambda_Omelyan = 0.0;
85  }
86 
88  Builder_Integrator(std::valarray<Action *> action)
89  : m_vl(CommonParameters::Vlevel())
90  {
91  m_action.resize(action.size());
92  for (int i = 0; i < action.size(); ++i) {
93  m_action[i] = action[i];
94  }
95  m_Estep = 0.0;
96  m_Nprec = 0;
97  m_lambda_Omelyan = 0.0;
98  }
99 
102  {
103  tidyup();
104  }
105 
106  void set_parameters(const Parameters& params);
107  void set_parameters(std::string str_integrator_type,
108  double Estep, int Nlevel,
109  const std::valarray<int>& Naction,
110  const std::valarray<int>& Nstep,
111  const int Nprec,
112  const double lambda_Omelyan);
113 
115 
116  Integrator *build();
117 
120 
121  void tidyup();
122 };
123 #endif
~Builder_Integrator()
destructor
BridgeIO vout
Definition: bridgeIO.cpp:207
Integrator * build_leapfrog()
Builder_Integrator(std::valarray< Action * > action)
constructor when no director is necessary.
double m_Estep
step size of each molecular dynamical evolution
std::valarray< Action * > m_action
Bridge::VerboseLevel m_vl
Class for parameters.
Definition: parameters.h:40
int m_Nprec
precision parameter of exponentiation
std::valarray< int > m_Nstep
Number of steps at each level.
Base class of Integrator class family.
Definition: integrator.h:31
std::valarray< Integrator * > m_integs
Integrator to be constructed.
int m_Nlevel
Number of levels.
std::valarray< int > m_Naction
Number of actions at each level.
void set_parameters(const Parameters &params)
std::string m_str_integrator_type
static const std::string class_name
Integrator * build_omelyan()
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
Common parameter class: provides parameters as singleton.
Bridge::VerboseLevel vl
Definition: checker.cpp:18
VerboseLevel
Definition: bridgeIO.h:25
Builder_Integrator(std::valarray< Action * > action, std::valarray< Director * > director)
constructor with action and director.
Builder of MD integrator for HMC.
std::valarray< Director * > m_director