Bridge++  Ver. 2.0.2
fprop_alt_QWS.h
Go to the documentation of this file.
1 
10 #ifndef FPROP_QWS_INCLUDED
11 #define FPROP_QWS_INCLUDED
12 
14 
15 #include "lib/Tools/timer.h"
16 
17 #include "lib/Fopr/afopr.h"
18 //#include "lib/Smear/director_Smear.h"
19 //#include "lib_alt/Solver/asolver.h"
20 
21 
22 //#ifdef USE_QWSLIB
23 //#include "lib_alt_QXS/extra/qws_lib.h"
24 //#endif
25 
26 
27 
28 //====================================================================
29 template<typename AFIELD>
30 class Fprop_alt_QWS : public Fprop_alt<AFIELD>
31 {
32  public:
33 
34  typedef typename AFIELD::real_t real_t;
35  static const std::string class_name;
38 
39  private:
42 
44  double m_flop_count;
46  int m_Niter_d;
47  int m_Niter_s;
48  int m_nm;
49  int m_Nsap;
50  int m_Nconv;
51  double m_Stop_cond;
52  double m_tol_d;
53  double m_tol_s;
54 
56 
57  public:
58  Fprop_alt_QWS(const Parameters& params_fopr,
59  const Parameters& params_solver)
60  : Fprop_alt<AFIELD>()
61  { init(params_fopr, params_solver); }
62 
64  { tidyup(); }
65 
66  void set_config(Field *);
67 
68  void invert(Field&, const Field&, int&, double&);
69 
70  void invert_D(Field&, const Field&, int&, double&);
71 
72  void invert_DdagD(Field&, const Field&, int&, double&);
73 
74  double flop_count();
75 
76  void reset_performance();
77 
78  void get_performance(double& flop_count, double& elapsed_time);
79 
80  void report_performance();
81 
82  void mult_performance(const std::string mode, const int Nrepeat);
83 
84  private:
85  void init(const Parameters& params_fopr,
86  const Parameters& params_solver);
87 
88  void init(const Parameters& params_fopr,
89  const Parameters& params_solver,
90  Director_Smear *dr_smear);
91 
92  void set_parameters(const Parameters& params_solver);
93 
94  void tidyup();
95 };
96 
97 #endif
98 
99 
100 //============================================================END=====
Fprop_alt_QWS::mult_performance
void mult_performance(const std::string mode, const int Nrepeat)
Definition: fprop_alt_QWS.cpp:322
Fprop_alt_QWS
Definition: fprop_alt_QWS.h:30
AFopr
Definition: afopr.h:48
Parameters
Class for parameters.
Definition: parameters.h:46
Fprop_alt_QWS::real_t
AFIELD::real_t real_t
Definition: fprop_alt_QWS.h:34
Fprop_alt_QWS::m_elapsed_time
double m_elapsed_time
Definition: fprop_alt_QWS.h:45
Fprop_alt_QWS::~Fprop_alt_QWS
~Fprop_alt_QWS()
Definition: fprop_alt_QWS.h:63
Fprop_alt_QWS::reset_performance
void reset_performance()
Definition: fprop_alt_QWS.cpp:287
Fprop_alt_QWS::init
void init(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_QWS.cpp:29
Fprop_alt_QWS::report_performance
void report_performance()
Definition: fprop_alt_QWS.cpp:306
fprop_alt.h
Fprop_alt_QWS::m_Nconv
int m_Nconv
Definition: fprop_alt_QWS.h:50
Fprop_alt_QWS::invert_DdagD
void invert_DdagD(Field &, const Field &, int &, double &)
Definition: fprop_alt_QWS.cpp:243
Timer
Definition: timer.h:31
Fprop_alt_QWS::m_Stop_cond
double m_Stop_cond
Definition: fprop_alt_QWS.h:51
Fprop_alt_QWS::invert_D
void invert_D(Field &, const Field &, int &, double &)
Definition: fprop_alt_QWS.cpp:181
Field::real_t
double real_t
Definition: field.h:51
Fprop_alt_QWS::m_flop_count
double m_flop_count
Definition: fprop_alt_QWS.h:44
Fprop_alt_QWS::m_tol_d
double m_tol_d
Definition: fprop_alt_QWS.h:52
Fprop_alt_QWS::m_dr_smear
Director_Smear * m_dr_smear
Definition: fprop_alt_QWS.h:55
Fprop_alt_QWS::tidyup
void tidyup()
Definition: fprop_alt_QWS.cpp:140
Fprop_alt_QWS::m_kernel
AFopr< AFIELD > * m_kernel
Definition: fprop_alt_QWS.h:40
Fprop_alt_QWS::m_Nsap
int m_Nsap
Definition: fprop_alt_QWS.h:49
Fprop_alt
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt.h:29
Fprop_alt_QWS::Fprop_alt_QWS
Fprop_alt_QWS(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_QWS.h:58
timer.h
Fprop_alt_QWS::set_parameters
void set_parameters(const Parameters &params_solver)
Definition: fprop_alt_QWS.cpp:57
Fprop_alt_QWS::m_tol_s
double m_tol_s
Definition: fprop_alt_QWS.h:53
Fprop_alt_QWS::m_fopr
AFopr< AFIELD > * m_fopr
Definition: fprop_alt_QWS.h:41
Fprop_alt_QWS::flop_count
double flop_count()
Definition: fprop_alt_QWS.cpp:279
Director_Smear
Manager of smeared configurations.
Definition: director_Smear.h:39
Fprop_alt_QWS::invert
void invert(Field &, const Field &, int &, double &)
invert accordingly to the mode. [22 Sep 2018 H.Matsufuru]
Definition: fprop_alt_QWS.cpp:157
Fprop_alt_QWS::m_Niter_d
int m_Niter_d
Definition: fprop_alt_QWS.h:46
Fprop_alt_QWS::m_timer
Timer m_timer
Definition: fprop_alt_QWS.h:43
Fprop_alt_QWS::class_name
static const std::string class_name
Definition: fprop_alt_QWS.h:35
Fprop_alt_QWS::get_performance
void get_performance(double &flop_count, double &elapsed_time)
Definition: fprop_alt_QWS.cpp:296
Fprop_alt_QWS::set_config
void set_config(Field *)
Definition: fprop_alt_QWS.cpp:149
Field
Container of Field-type object.
Definition: field.h:46
Fprop_alt_QWS::m_Niter_s
int m_Niter_s
Definition: fprop_alt_QWS.h:47
afopr.h
Fprop_alt_QWS::m_nm
int m_nm
Definition: fprop_alt_QWS.h:48