Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
force_F_Rational.h
Go to the documentation of this file.
1 
14 #ifndef FORCE_F_RATIONAL_INCLUDED
15 #define FORCE_F_RATIONAL_INCLUDED
16 
17 #include "force.h"
18 #include "fopr_Rational.h"
19 #include "math_Rational.h"
20 #include "field_F.h"
21 
22 #include "bridgeIO.h"
23 using Bridge::vout;
24 
26 
35 //- parameters class
37 {
38  public:
40 };
41 //- end
42 
43 class Force_F_Rational : public Force
44 {
45  public:
46  static const std::string class_name;
47 
48  private:
49  int m_Np; // number of poles in rational approx.
50  int m_n_exp, m_d_exp; // numerator and denominator of the exponent
51  double m_x_min, m_x_max; // valid range of approximate sign function
52  int m_Niter; // max iteration of shiftsolver
53  double m_Stop_cond; // stopping condition of shift solver
54 
55 // Field_G *m_U;
56 
59 
60  // rational approx. coefficients
61  double m_a0;
62  std::valarray<double> m_bl;
63  std::valarray<double> m_cl;
64 
65  public:
66 
67  Force_F_Rational(Fopr *fopr, Force *force)
68  : Force(), m_fopr(fopr), m_force(force) {}
69 
71 
72  void set_parameters(const Parameters& params);
73 
74  // void set_parameters (const Parameters_Fopr_Rational& params);
75  void set_parameters(int Np, int n_exp, int d_exp, double x_min, double x_max,
76  int Niter, double Stop_cond);
77 
78  void set_config(Field *U)
79  {
80  m_U = (Field_G *)U;
81  m_fopr->set_config(U);
82  m_force->set_config(U);
83  }
84 
85 // void force_core(Field&, const Field&);
86  void force_udiv(Field&, const Field&);
87 
88  void force_core1(Field&, const Field&, const Field&); // dummy entry
89  void force_udiv1(Field&, const Field&, const Field&); // dummy entry
90 
91  private:
92  void init_parameters();
93 
94  void force_udiv_impl(Field_G&, const Field_F&);
95 };
96 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
Container of Field-type object.
Definition: field.h:37
std::valarray< double > m_bl
virtual void set_config(Field *)=0
Field_G * m_U
Definition: force.h:74
std::valarray< double > m_cl
Base class of fermion force calculation.
Definition: force.h:34
Class for parameters.
Definition: parameters.h:40
Force calculation for smeared fermion operators.
Force_F_Rational(Fopr *fopr, Force *force)
Wilson-type fermion field.
Definition: field_F.h:37
SU(N) gauge field.
Definition: field_G.h:36
void set_config(Field *U)
void force_core1(Field &, const Field &, const Field &)
static const std::string class_name
void force_udiv_impl(Field_G &, const Field_F &)
void force_udiv1(Field &, const Field &, const Field &)
void force_udiv(Field &, const Field &)
Base class of fermion operator family.
Definition: fopr.h:39
void set_parameters(const Parameters &params)