Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
action_F_Rational.h
Go to the documentation of this file.
1 
14 #ifndef ACTION_F_RATIONAL_INCLUDED
15 #define ACTION_F_RATIONAL_INCLUDED
16 
17 #include "action.h"
18 #include "fopr_Rational.h"
19 #include "force_F_Rational.h"
20 
21 #include "bridgeIO.h"
22 using Bridge::vout;
23 
25 
39 //- parameters class
41 {
42  public:
44 };
45 //- end
46 
47 class Action_F_Rational : public Action {
48  private:
49  // rational approximation parameters:
50  int m_Np; // number of poles in rational approx.
51  int m_n_exp, m_d_exp; // numerator and denominator of the exponent
52  double m_x_min, m_x_max; // valid range of approximate sign function
53  int m_Niter; // max iteration of shiftsolver
54  double m_Stop_cond; // stopping condition of shift solver
55  std::string m_label; // label of action
56 
62 
65 
68 
69 
70  public:
72  Action_F_Rational(Fopr *fopr, Force *fopr_force) :
73  Action()
74  {
75  m_fopr = fopr;
76  m_fopr_force = fopr_force;
77  }
78 
81  {
82  tidyup();
83  }
84 
86  void set_parameters(const Parameters& params);
87  void set_parameters(int Np, int n_exp, int d_exp,
88  double x_min, double x_max,
89  int Niter, double Stop_cond);
90 
92  void set_label(std::string label)
93  {
94  m_label = label;
95  vout.detailed(m_vl, " label: %s\n", m_label.c_str());
96  }
97 
99  std::string get_label()
100  {
101  return m_label;
102  }
103 
105  void set_config(Field *U)
106  {
107  m_U = U;
108  m_fopr->set_config(U);
109  }
110 
113  {
114  m_status_linkv = 0;
115  }
116 
118  double langevin(RandomNumbers *);
119 
121  double calcH();
122 
124  const Field force();
125 
126  private:
127 
129  void setup();
130 
132  void tidyup();
133 };
134 #endif