Bridge++  Ver. 2.0.2
fprop_alt_Standard_SAP.h
Go to the documentation of this file.
1 
10 #ifndef FPROP_ALT_STANDARD_LEX_SAP_INCLUDED
11 #define FPROP_ALT_STANDARD_LEX_SAP_INCLUDED
12 
14 
15 #include "lib_alt/Fopr/afopr_dd.h"
16 #include "lib/Fopr/afopr_Smeared.h"
17 #include "lib/Tools/timer.h"
19 
20 #include "lib_alt/Solver/asolver.h"
22 
24 
31 template<typename AFIELD>
32 class Fprop_alt_Standard_SAP : public Fprop_alt<AFIELD>
33 {
34  public:
35  static const std::string class_name;
36  typedef typename AFIELD::real_t real_t;
39 
40  private:
45 
47 
48  std::vector<int> m_coarse_lattice;
49  std::vector<int> m_fine_lattice;
51 
53  double m_flop_count;
55 
56  public:
57  Fprop_alt_Standard_SAP(const Parameters& params_fopr,
58  const Parameters& params_solver)
59  : Fprop_alt<AFIELD>()
60  { init(params_fopr, params_solver); }
61 
62  Fprop_alt_Standard_SAP(const Parameters& params_fopr,
63  const Parameters& params_solver,
64  Director_Smear *dr_smear)
65  : Fprop_alt<AFIELD>()
66  { init(params_fopr, params_solver, dr_smear); }
67 
69  { tidyup(); }
70 
71  void set_config(Field *);
72 
73  void invert(Field&, const Field&, int&, double&);
74 
75  void invert_D(Field&, const Field&, int&, double&);
76 
77  void invert_DdagD(Field&, const Field&, int&, double&);
78 
79  void invert(AFIELD&, const AFIELD&, int&, double&);
80 
81  void invert_D(AFIELD&, const AFIELD&, int&, double&);
82 
83  void invert_DdagD(AFIELD&, const AFIELD&, int&, double&);
84 
85  double flop_count();
86 
87  void reset_performance();
88 
89  void report_performance();
90 
91  void mult_performance(const std::string mode, const int Nrepeat);
92 
93  private:
94 
95  void init(const Parameters& params_fopr,
96  const Parameters& params_solver);
97 
98  void init(const Parameters& params_fopr,
99  const Parameters& params_solver,
100  Director_Smear *dr_smrar);
101 
102  void init_common(const Parameters& params_fopr,
103  const Parameters& params_solver);
104 
105  void tidyup();
106 };
107 #endif
director_Smear.h
Fprop_alt_Standard_SAP::invert_D
void invert_D(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_SAP-tmpl.h:189
Fprop_alt_Standard_SAP
Get quark propagator for domain-decomposed AFopr.
Definition: fprop_alt_Standard_SAP.h:32
Fprop_alt_Standard_SAP::m_afopr_dd
AFopr_dd< AFIELD > * m_afopr_dd
Definition: fprop_alt_Standard_SAP.h:43
Fprop_alt_Standard_SAP::reset_performance
void reset_performance()
Definition: fprop_alt_Standard_SAP-tmpl.h:336
Fprop_alt_Standard_SAP::tidyup
void tidyup()
Definition: fprop_alt_Standard_SAP-tmpl.h:142
Fprop_alt_Standard_SAP::init_common
void init_common(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_SAP-tmpl.h:83
ASolver_SAP
Definition: asolver_SAP.h:29
Parameters
Class for parameters.
Definition: parameters.h:46
Fprop_alt_Standard_SAP::m_flop_count
double m_flop_count
Definition: fprop_alt_Standard_SAP.h:53
Fprop_alt_Standard_SAP::report_performance
void report_performance()
Definition: fprop_alt_Standard_SAP-tmpl.h:345
Fprop_alt_Standard_SAP::real_t
AFIELD::real_t real_t
Definition: fprop_alt_Standard_SAP.h:36
fprop_alt.h
Fprop_alt_Standard_SAP::m_timer
Timer m_timer
Definition: fprop_alt_Standard_SAP.h:52
AIndex_block_lex< real_t, AFIELD::IMPL >
AFopr_dd
Base class of fermion operator family.
Definition: afopr_dd.h:24
Fprop_alt_Standard_SAP::m_afopr
AFopr_dd< AFIELD > * m_afopr
Definition: fprop_alt_Standard_SAP.h:42
Timer
Definition: timer.h:31
Fprop_alt_Standard_SAP::m_kernel
AFopr_dd< AFIELD > * m_kernel
Definition: fprop_alt_Standard_SAP.h:41
Field::real_t
double real_t
Definition: field.h:51
Fprop_alt_Standard_SAP::set_config
void set_config(Field *)
Definition: fprop_alt_Standard_SAP-tmpl.h:153
Fprop_alt_Standard_SAP::m_dr_smear
Director_Smear * m_dr_smear
Definition: fprop_alt_Standard_SAP.h:46
afopr_Smeared.h
Fprop_alt_Standard_SAP::Fprop_alt_Standard_SAP
Fprop_alt_Standard_SAP(const Parameters &params_fopr, const Parameters &params_solver, Director_Smear *dr_smear)
Definition: fprop_alt_Standard_SAP.h:62
Fprop_alt_Standard_SAP::m_elapsed_time
double m_elapsed_time
Definition: fprop_alt_Standard_SAP.h:54
afopr_dd.h
Fprop_alt
Get quark propagator for Fopr with lexical site index: alternative version.
Definition: fprop_alt.h:29
Fprop_alt_Standard_SAP::flop_count
double flop_count()
Definition: fprop_alt_Standard_SAP-tmpl.h:328
Fprop_alt_Standard_SAP::m_asolver
ASolver_SAP< AFIELD > * m_asolver
Definition: fprop_alt_Standard_SAP.h:44
timer.h
Fprop_alt_Standard_SAP::invert
void invert(Field &, const Field &, int &, double &)
invert accordingly to the mode. [22 Sep 2018 H.Matsufuru]
Definition: fprop_alt_Standard_SAP-tmpl.h:161
Fprop_alt_Standard_SAP::Fprop_alt_Standard_SAP
Fprop_alt_Standard_SAP(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_SAP.h:57
Fprop_alt_Standard_SAP::class_name
static const std::string class_name
Definition: fprop_alt_Standard_SAP.h:35
Fprop_alt_Standard_SAP::m_coarse_lattice
std::vector< int > m_coarse_lattice
Definition: fprop_alt_Standard_SAP.h:48
Director_Smear
Manager of smeared configurations.
Definition: director_Smear.h:39
Fprop_alt_Standard_SAP::m_fine_lattice
std::vector< int > m_fine_lattice
Definition: fprop_alt_Standard_SAP.h:49
Fprop_alt_Standard_SAP::mult_performance
void mult_performance(const std::string mode, const int Nrepeat)
Definition: fprop_alt_Standard_SAP-tmpl.h:364
Fprop_alt_Standard_SAP::m_block_index
AIndex_block_lex< real_t, AFIELD::IMPL > * m_block_index
Definition: fprop_alt_Standard_SAP.h:50
Fprop_alt_Standard_SAP::~Fprop_alt_Standard_SAP
~Fprop_alt_Standard_SAP()
Definition: fprop_alt_Standard_SAP.h:68
Fprop_alt_Standard_SAP::init
void init(const Parameters &params_fopr, const Parameters &params_solver)
Definition: fprop_alt_Standard_SAP-tmpl.h:21
Field
Container of Field-type object.
Definition: field.h:46
asolver_SAP.h
SAP solver (Alt-version)
asolver.h
Fprop_alt_Standard_SAP::invert_DdagD
void invert_DdagD(Field &, const Field &, int &, double &)
Definition: fprop_alt_Standard_SAP-tmpl.h:240