Bridge++  Ver. 2.0.2
fprop_alt_Standard_eo_Richardson.h
Go to the documentation of this file.
1 
10 #ifndef FPROP_ALT_STANDARD_EO_RICHARDSON_INCLUDED
11 #define FPROP_ALT_STANDARD_EO_RICHARDSON_INCLUDED
12 
14 
15 #include "lib/Tools/timer.h"
16 
17 #include "lib/Fopr/afopr.h"
18 
19 #include "lib_alt/Solver/asolver.h"
21 //#include "Field/afield.h"
22 
24 
30 template<typename AFIELD_d, typename AFIELD_f>
32 {
33  public:
34  static const std::string class_name;
35  typedef typename AFIELD_d::real_t real_t;
38 
39  private:
47 
51 
53  double m_flop_count;
55 
57 
58  bool m_use_DdagD; // must be true for domainwall
59 
60  public:
62  const Parameters& params_solver,
63  Director_Smear *dr_smear)
64  : Fprop_alt<AFIELD_d>()
65  { init(params_fopr, params_solver, dr_smear); }
66 
68  const Parameters& params_solver)
69  : Fprop_alt<AFIELD_d>()
70  { init(params_fopr, params_solver); }
71 
73  { tidyup(); }
74 
75  void set_config(Field *);
76 
77  void invert(Field&, const Field&, int&, double&);
78 
79  void invert_D(Field&, const Field&, int&, double&);
80 
81  void invert_DdagD(Field&, const Field&, int&, double&);
82 
83  void invert(AFIELD_d&, const AFIELD_d&, int&, double&);
84 
85  void invert_D(AFIELD_d&, const AFIELD_d&, int&, double&);
86 
87  void invert_DdagD(AFIELD_d&, const AFIELD_d&, int&, double&);
88 
89  double flop_count();
90 
91  void reset_performance();
92 
93  void report_performance();
94 
95  void mult_performance(const std::string mode, const int Nrepeat);
96 
97  private:
98 
99  void init(const Parameters& params_fopr,
100  const Parameters& params_solver);
101 
102  void init(const Parameters& params_fopr,
103  const Parameters& params_solver,
104  Director_Smear *dr_smear);
105 
106  void tidyup();
107 
109  int&, double&);
110 };
111 #endif
Fprop_alt_Standard_eo_Richardson::m_dr_smear
Director_Smear * m_dr_smear
Definition: fprop_alt_Standard_eo_Richardson.h:56
Fprop_alt_Standard_eo_Richardson::m_kernel_d
AFopr< AFIELD_d > * m_kernel_d
Definition: fprop_alt_Standard_eo_Richardson.h:40
AFopr
Definition: afopr.h:48
ASolver
Definition: asolver.h:23
Fprop_alt_Standard_eo_Richardson::invert_De
void invert_De(AFIELD_d &, AFIELD_d &, AFIELD_d &, AFIELD_d &, int &, double &)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:385
Fprop_alt_Standard_eo_Richardson::class_name
static const std::string class_name
Definition: fprop_alt_Standard_eo_Richardson.h:34
Fprop_alt_Standard_eo_Richardson::m_y2f
AFIELD_f m_y2f
Definition: fprop_alt_Standard_eo_Richardson.h:50
Fprop_alt_Standard_eo_Richardson::set_config
void set_config(Field *)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:170
Parameters
Class for parameters.
Definition: parameters.h:46
Fprop_alt_Standard_eo_Richardson
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt_Standard_eo_Richardson.h:31
Fprop_alt_Standard_eo_Richardson::m_be
AFIELD_d m_be
Definition: fprop_alt_Standard_eo_Richardson.h:49
Fprop_alt_Standard_eo_Richardson::Fprop_alt_Standard_eo_Richardson
Fprop_alt_Standard_eo_Richardson(const Parameters &params_fopr, const Parameters &params_solver, Director_Smear *dr_smear)
Definition: fprop_alt_Standard_eo_Richardson.h:61
AField< double, QXS >
APrecond
Definition: aprecond.h:28
Fprop_alt_Standard_eo_Richardson::tidyup
void tidyup()
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:156
Fprop_alt_Standard_eo_Richardson::init
void init(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:15
Fprop_alt_Standard_eo_Richardson::m_timer
Timer m_timer
Definition: fprop_alt_Standard_eo_Richardson.h:52
Fprop_alt_Standard_eo_Richardson::m_kernel_f
AFopr< AFIELD_f > * m_kernel_f
Definition: fprop_alt_Standard_eo_Richardson.h:42
fprop_alt.h
real_t
double real_t
Definition: bridgeQXS_Clover_coarse_double.cpp:16
Fprop_alt_Standard_eo_Richardson::report_performance
void report_performance()
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:447
Timer
Definition: timer.h:31
Fprop_alt_Standard_eo_Richardson::m_y1
AFIELD_d m_y1
Definition: fprop_alt_Standard_eo_Richardson.h:49
Fprop_alt_Standard_eo_Richardson::m_axq
AFIELD_d m_axq
Definition: fprop_alt_Standard_eo_Richardson.h:48
Fprop_alt_Standard_eo_Richardson::Fprop_alt_Standard_eo_Richardson
Fprop_alt_Standard_eo_Richardson(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_eo_Richardson.h:67
Fprop_alt_Standard_eo_Richardson::m_xe
AFIELD_d m_xe
Definition: fprop_alt_Standard_eo_Richardson.h:49
Fprop_alt
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt.h:29
timer.h
Fprop_alt_Standard_eo_Richardson::m_flop_count
double m_flop_count
Definition: fprop_alt_Standard_eo_Richardson.h:53
Fprop_alt_Standard_eo_Richardson::invert_DdagD
void invert_DdagD(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:262
Fprop_alt_Standard_eo_Richardson::mult_performance
void mult_performance(const std::string mode, const int Nrepeat)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:462
Fprop_alt_Standard_eo_Richardson::m_fopr_d
AFopr< AFIELD_d > * m_fopr_d
Definition: fprop_alt_Standard_eo_Richardson.h:41
Fprop_alt_Standard_eo_Richardson::m_solver
ASolver< AFIELD_d > * m_solver
Definition: fprop_alt_Standard_eo_Richardson.h:46
Fprop_alt_Standard_eo_Richardson::m_xo
AFIELD_d m_xo
Definition: fprop_alt_Standard_eo_Richardson.h:49
Director_Smear
Manager of smeared configurations.
Definition: director_Smear.h:39
Fprop_alt_Standard_eo_Richardson::reset_performance
void reset_performance()
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:438
Fprop_alt_Standard_eo_Richardson::invert_D
void invert_D(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:219
Fprop_alt_Standard_eo_Richardson::m_fopr_f
AFopr< AFIELD_f > * m_fopr_f
Definition: fprop_alt_Standard_eo_Richardson.h:43
Fprop_alt_Standard_eo_Richardson::invert
void invert(Field &, const Field &, int &, double &)
invert accordingly to the mode. [22 Sep 2018 H.Matsufuru]
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:179
Fprop_alt_Standard_eo_Richardson::~Fprop_alt_Standard_eo_Richardson
~Fprop_alt_Standard_eo_Richardson()
Definition: fprop_alt_Standard_eo_Richardson.h:72
aprecond.h
Fprop_alt_Standard_eo_Richardson::m_y2
AFIELD_d m_y2
Definition: fprop_alt_Standard_eo_Richardson.h:49
Fprop_alt_Standard_eo_Richardson::real_t
AFIELD_d::real_t real_t
Definition: fprop_alt_Standard_eo_Richardson.h:35
Fprop_alt_Standard_eo_Richardson::m_abq
AFIELD_d m_abq
Definition: fprop_alt_Standard_eo_Richardson.h:48
Fprop_alt_Standard_eo_Richardson::m_use_DdagD
bool m_use_DdagD
Definition: fprop_alt_Standard_eo_Richardson.h:58
Fprop_alt_Standard_eo_Richardson::m_precond
APrecond< AFIELD_d > * m_precond
Definition: fprop_alt_Standard_eo_Richardson.h:45
Fprop_alt_Standard_eo_Richardson::flop_count
double flop_count()
Definition: fprop_alt_Standard_eo_Richardson-tmpl.h:430
Fprop_alt_Standard_eo_Richardson::m_y1f
AFIELD_f m_y1f
Definition: fprop_alt_Standard_eo_Richardson.h:50
Field
Container of Field-type object.
Definition: field.h:46
afopr.h
asolver.h
Fprop_alt_Standard_eo_Richardson::m_bo
AFIELD_d m_bo
Definition: fprop_alt_Standard_eo_Richardson.h:49
Fprop_alt_Standard_eo_Richardson::m_solver_prec
ASolver< AFIELD_f > * m_solver_prec
Definition: fprop_alt_Standard_eo_Richardson.h:44
Fprop_alt_Standard_eo_Richardson::m_elapsed_time
double m_elapsed_time
Definition: fprop_alt_Standard_eo_Richardson.h:54