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