Bridge++  Ver. 1.1.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
fprop_Overlap_5d.h
Go to the documentation of this file.
1 
14 #ifndef FPROP_OVERLAP_5D_INCLUDED
15 #define FPROP_OVERLAP_5D_INCLUDED
16 
17 #include "fopr_Overlap.h"
18 #include "fopr_Overlap_5d.h"
19 
20 #include "index_lex.h"
21 #include "index_eo.h"
22 
23 #include "solver.h"
24 
25 #include "bridgeIO.h"
26 using Bridge::vout;
27 
29 
38 //- parameters class
40 {
41  public:
43 };
44 //- end
45 
47 {
48  protected:
50 
51  private:
52  //- parameters common to overlap fermion
53  double m_mq; // quark mass
54  double m_M0; // domain-wall height
55  int m_Np; // number of poles in rational approx.
56  double m_x_min, m_x_max; // valid range of approximate sign function
57  int m_Niter_ms; // max iteration of shiftsolver (dummy)
58  double m_Stop_cond_ms; // stopping condition of shift solver (dummy)
59  std::valarray<int> m_boundary;
60 
61  //- solver parameter
63 
66 
70 
73 
74  //- low-mode subtraction
75  int m_Nsbt;
76  std::valarray<double> *m_ev;
77  std::valarray<Field> *m_vk;
78 
79  public:
81  : m_vl(CommonParameters::Vlevel()),
82  m_fopr_ov(foprov),
83  m_conf(conf) {}
84 
85  void set_parameters(const Parameters& params_fprop_overlap_5d);
86  void set_parameters(const Parameters& params_overlap,
87  const Parameters& params_solver);
88  void set_parameters(const double mq, const double M0, const int Np,
89  const double x_min, const double x_max,
90  const int Niter_ms, const double Stop_cond_ms,
91  const std::valarray<int> bc);
92 
93  void calc_fprop(Field&, const Field&);
94  void calc_H2inv(Field&, const Field&);
95 
96  void solve_overlap_5D_1(Field&, const Field&, int&, double&, double&);
97 
98  void set_lowmodes(int Nsbt, std::valarray<double> *ev,
99  std::valarray<Field> *vk)
100  {
101  m_Nsbt = Nsbt;
102  m_ev = ev;
103  m_vk = vk;
104  }
105 
106  private:
107  void set_env();
108 };
109 #endif