Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
solver_BiCGStab.h
Go to the documentation of this file.
1 
14 #ifndef SOLVER_BICGSTAB_INCLUDED
15 #define SOLVER_BICGSTAB_INCLUDED
16 
17 #include "solver.h"
18 
19 #include "bridgeIO.h"
20 using Bridge::vout;
21 
22 //- parameters class
23 class Parameters_Solver_BiCGStab : virtual public Parameters
24 {
25  public:
27 };
28 //- end
29 
31 
41 class Solver_BiCGStab : public Solver
42 {
43  public:
44  static const std::string class_name;
45 
46  private:
48  int m_Niter;
49  double m_Stop_cond;
50 
51  Field s, r, x, rh, p, v, t;
53 
54  public:
56  : Solver(), m_fopr(fopr) {}
57 
59 
60  void set_parameters(const Parameters& params);
61  void set_parameters(const int Niter, const double Stop_cond);
62 
63  void solve(Field& solution, const Field& source,
64  int& Nconv, double& diff);
65 
66  Fopr *get_fopr() { return m_fopr; }
67 
68  private:
69  void reset_field(const Field&);
70 
71  void solve_init(const Field&, double&);
72  void solve_step(double&);
73 };
74 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
void solve(Field &solution, const Field &source, int &Nconv, double &diff)
Container of Field-type object.
Definition: field.h:37
void set_parameters(const Parameters &params)
Class for parameters.
Definition: parameters.h:40
void solve_init(const Field &, double &)
Solver_BiCGStab(Fopr *fopr)
static const std::string class_name
Base class for linear solver class family.
Definition: solver.h:37
BiCGStab algorithm.
void solve_step(double &)
void reset_field(const Field &)
Base class of fermion operator family.
Definition: fopr.h:39