Bridge++  Ver. 2.0.2
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_F.h"
18 
19 #include "Field/field_F.h"
20 #include "Fopr/fopr_Rational.h"
21 #include "Tools/math_Rational.h"
22 
23 #include "IO/bridgeIO.h"
24 using Bridge::vout;
25 
27 
39 class Force_F_Rational : public Force
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
46 
47  int m_Np; // number of poles in rational approx.
48  int m_n_exp, m_d_exp; // numerator and denominator of the exponent
49  double m_x_min, m_x_max; // valid range of approximate sign function
50  int m_Niter; // max iteration of shiftsolver
51  double m_Stop_cond; // stopping condition of shift solver
52 
56 
57  // rational approx. coefficients
58  double m_a0;
59  std::vector<double> m_bl;
60  std::vector<double> m_cl;
61 
62  public:
63  Force_F_Rational(Fopr *fopr, Force *force)
64  : m_vl(CommonParameters::Vlevel()), m_fopr(fopr), m_force(force) {}
65 
66  Force_F_Rational(Fopr *fopr, Force *force, const Parameters& params)
67  : m_vl(CommonParameters::Vlevel()), m_fopr(fopr), m_force(force)
68  {
69  set_parameters(params);
70  }
71 
73 
74  void set_parameters(const Parameters& params);
75  void set_parameters(const int Np, const int n_exp, const int d_exp, const double x_min, const double x_max,
76  const int Niter, const double Stop_cond);
77 
78  void get_parameters(Parameters& params) const;
79 
80  void set_config(Field *U)
81  {
82  m_U = (Field_G *)U;
83  m_fopr->set_config(U);
84  m_force->set_config(U);
85  }
86 
87  void force_udiv(Field&, const Field&);
88 
89  void force_core1(Field&, const Field&, const Field&); // dummy entry
90  void force_udiv1(Field&, const Field&, const Field&); // dummy entry
91 
92  private:
93  void force_udiv_impl(Field_G&, const Field_F&);
94 };
95 #endif
Force_F_Rational::Force_F_Rational
Force_F_Rational(Fopr *fopr, Force *force)
Definition: force_F_Rational.h:63
Force_F_Rational::m_Niter
int m_Niter
Definition: force_F_Rational.h:50
bridgeIO.h
field_F.h
CommonParameters
Common parameter class: provides parameters as singleton.
Definition: commonParameters.h:42
AFopr< Field >
Force_F_Rational::set_config
void set_config(Field *U)
Definition: force_F_Rational.h:80
Force_F_Rational::m_U
Field_G * m_U
Definition: force_F_Rational.h:53
Force_F_Rational::m_Stop_cond
double m_Stop_cond
Definition: force_F_Rational.h:51
Parameters
Class for parameters.
Definition: parameters.h:46
Force_F_Rational::Force_F_Rational
Force_F_Rational(Fopr *fopr, Force *force, const Parameters &params)
Definition: force_F_Rational.h:66
Force_F_Rational::m_d_exp
int m_d_exp
Definition: force_F_Rational.h:48
Force_F_Rational::force_udiv_impl
void force_udiv_impl(Field_G &, const Field_F &)
Definition: force_F_Rational.cpp:141
Force_F_Rational::force_udiv
void force_udiv(Field &, const Field &)
Definition: force_F_Rational.cpp:126
Force::set_config
virtual void set_config(Field *)=0
Force_F_Rational::~Force_F_Rational
~Force_F_Rational()
Definition: force_F_Rational.h:72
Force_F_Rational::force_udiv1
void force_udiv1(Field &, const Field &, const Field &)
Definition: force_F_Rational.cpp:189
Force_F_Rational::m_n_exp
int m_n_exp
Definition: force_F_Rational.h:48
Force_F_Rational::m_a0
double m_a0
Definition: force_F_Rational.h:58
Force_F_Rational::class_name
static const std::string class_name
Definition: force_F_Rational.h:42
math_Rational.h
Force_F_Rational::m_bl
std::vector< double > m_bl
Definition: force_F_Rational.h:59
AFopr::set_config
virtual void set_config(Field *)=0
sets the gauge configuration.
Force_F_Rational::m_x_max
double m_x_max
Definition: force_F_Rational.h:49
Force_F_Rational::m_Np
int m_Np
Definition: force_F_Rational.h:47
Force_F_Rational::set_parameters
void set_parameters(const Parameters &params)
Definition: force_F_Rational.cpp:20
Force_F_Rational::force_core1
void force_core1(Field &, const Field &, const Field &)
Definition: force_F_Rational.cpp:181
Force_F_Rational::m_x_min
double m_x_min
Definition: force_F_Rational.h:49
force_F.h
Force_F_Rational::m_cl
std::vector< double > m_cl
Definition: force_F_Rational.h:60
Force_F_Rational::m_force
Force * m_force
Definition: force_F_Rational.h:55
fopr_Rational.h
Field_F
Wilson-type fermion field.
Definition: field_F.h:37
Force_F_Rational::m_vl
Bridge::VerboseLevel m_vl
Definition: force_F_Rational.h:45
Field
Container of Field-type object.
Definition: field.h:46
Bridge::VerboseLevel
VerboseLevel
Definition: bridgeIO.h:42
Field_G
SU(N) gauge field.
Definition: field_G.h:38
Force_F_Rational::m_fopr
Fopr * m_fopr
Definition: force_F_Rational.h:54
Force_F_Rational
Force calculation for smeared fermion operators.
Definition: force_F_Rational.h:39
Force_F_Rational::get_parameters
void get_parameters(Parameters &params) const
Definition: force_F_Rational.cpp:53
Force
Base class of fermion force calculation.
Definition: force_F.h:31
Bridge::vout
BridgeIO vout
Definition: bridgeIO.cpp:512