Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
solver_CG.h
Go to the documentation of this file.
1 
14 #ifndef SOLVER_CG_INCLUDED
15 #define SOLVER_CG_INCLUDED
16 
17 #include "solver.h"
18 
19 #include "IO/bridgeIO.h"
20 using Bridge::vout;
21 
22 
24 
38 class Solver_CG : public Solver
39 {
40  public:
41  static const std::string class_name;
42 
43  private:
45 
46  int m_Niter;
48  double m_Stop_cond;
49 
50  //- working area
52 
55 
56  public:
57  Solver_CG(Fopr *fopr)
58  : Solver(), m_fopr(fopr)
59  {
60  m_Nrestart_count = 0;
61  m_Nconv_count = 0;
62  }
63 
65  : Solver(), m_fopr(fopr.get())
66  {
67  m_Nrestart_count = 0;
68  m_Nconv_count = 0;
69  }
70 
72 
73  void set_parameters(const Parameters& params);
74  void set_parameters(const int Niter, const int Nrestart, const double Stop_cond);
75 
76  void solve(Field& solution, const Field& source,
77  int& Nconv, double& diff);
78 
79  Fopr *get_fopr() { return m_fopr; }
80 
81  double flop_count();
82 
83  private:
84  void reset_field(const Field&);
85 
86  void solve_init(const Field&, double&);
87  void solve_step(double&);
88 };
89 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
Fopr * get_fopr()
Definition: solver_CG.h:79
void solve_init(const Field &, double &)
Definition: solver_CG.cpp:184
int m_Nrestart_count
Definition: solver_CG.h:53
~Solver_CG()
Definition: solver_CG.h:71
double m_Stop_cond
Definition: solver_CG.h:48
void reset_field(const Field &)
Definition: solver_CG.cpp:161
Solver_CG(Fopr *fopr)
Definition: solver_CG.h:57
void solve(Field &solution, const Field &source, int &Nconv, double &diff)
Definition: solver_CG.cpp:87
Container of Field-type object.
Definition: field.h:39
static const std::string class_name
Definition: solver_CG.h:41
void solve_step(double &)
Definition: solver_CG.cpp:199
Class for parameters.
Definition: parameters.h:46
Solver_CG(unique_ptr< Fopr > &fopr)
Definition: solver_CG.h:64
Standard Conjugate Gradient solver algorithm.
Definition: solver_CG.h:38
int m_Nrestart
Definition: solver_CG.h:47
void set_parameters(const Parameters &params)
Definition: solver_CG.cpp:33
Field m_s
Definition: solver_CG.h:51
Field m_x
Definition: solver_CG.h:51
Fopr * m_fopr
Definition: solver_CG.h:44
Base class for linear solver class family.
Definition: solver.h:37
Field m_p
Definition: solver_CG.h:51
Field m_r
Definition: solver_CG.h:51
Base class of fermion operator family.
Definition: fopr.h:47
double flop_count()
Definition: solver_CG.cpp:219
int m_Niter
Definition: solver_CG.h:46
int m_Nconv_count
Definition: solver_CG.h:54