Bridge++  Version 1.4.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
solver_BiCGStab_IDS_L_Cmplx.h
Go to the documentation of this file.
1 
14 #ifndef SOLVER_BICGSTAB_IDS_L_CMPLX_INCLUDED
15 #define SOLVER_BICGSTAB_IDS_L_CMPLX_INCLUDED
16 
17 #include "solver.h"
18 
19 #include "IO/bridgeIO.h"
20 using Bridge::vout;
21 
22 
24 
40 {
41  public:
42  static const std::string class_name;
43 
44  private:
46 
48  double m_Stop_cond;
49 
50  int m_N_L;
51  double m_Tol_L;
52 
53  //- working area
55  double m_rr_prev;
57 
58  std::vector<Field> m_u, m_r;
60 
65 
66  public:
68  : Solver(), m_fopr(fopr)
69  {
70  m_Nrestart_count = 0;
71  m_Niter_count = 0;
72  m_Nconv_count = 0;
73  m_N_L_part_count = 0;
74  }
75 
77  : Solver(), m_fopr(fopr.get())
78  {
79  m_Nrestart_count = 0;
80  m_Niter_count = 0;
81  m_Nconv_count = 0;
82  m_N_L_part_count = 0;
83  }
84 
86 
87  void set_parameters(const Parameters& params);
88  void set_parameters(const int Niter, const int Nrestart, const double Stop_cond);
89  void set_parameters_DS_L(const int N_L, const double Tol_L);
90 
91  void solve(Field& solution, const Field& source,
92  int& Nconv, double& diff);
93 
94  Fopr *get_fopr() { return m_fopr; }
95 
96  double flop_count();
97 
98  private:
99  void reset_field(const Field&);
100 
101  void solve_init(const Field&, double&);
102  void solve_step(double&);
103 
104  int index_ij(int i, int j)
105  {
106  return i + m_N_L * j;
107  }
108 };
109 #endif
BridgeIO vout
Definition: bridgeIO.cpp:495
void set_parameters_DS_L(const int N_L, const double Tol_L)
Container of Field-type object.
Definition: field.h:39
Solver_BiCGStab_IDS_L_Cmplx(unique_ptr< Fopr > &fopr)
Class for parameters.
Definition: parameters.h:46
void solve_init(const Field &, double &)
Base class for linear solver class family.
Definition: solver.h:37
void set_parameters(const Parameters &params)
Base class of fermion operator family.
Definition: fopr.h:47
void solve(Field &solution, const Field &source, int &Nconv, double &diff)