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