Bridge++  Ver. 1.2.x
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
solver_GMRES_m_Cmplx.h
Go to the documentation of this file.
1 
14 #ifndef SOLVER_GMRES_m_CMPLX_INCLUDED
15 #define SOLVER_GMRES_m_CMPLX_INCLUDED
16 
17 #include "solver.h"
18 
19 #include "bridgeIO.h"
20 using Bridge::vout;
21 
22 //- parameters class
24 {
25  public:
27 };
28 //- end
29 
31 
43 {
44  public:
45  static const std::string class_name;
46 
47  private:
48 
50  int m_Niter;
51  double m_Stop_cond;
52 
53  int m_N_M;
54 
55  std::valarray<Field> v;
56 
57  Field s, r, x, v_tmp;
58  double beta_prev;
59 
60  public:
61 
63  : Solver(), m_fopr(fopr) {}
64 
66 
67  void set_parameters(const Parameters& params);
68  void set_parameters(const int Niter, const double Stop_cond);
69  void set_parameters_GMRES_m(const int N_M);
70 
71  void solve(Field& solution, const Field& source,
72  int& Nconv, double& diff);
73 
74  Fopr *get_fopr() { return m_fopr; }
75 
76  private:
77 
78  void reset_field(const Field&);
79 
80  void solve_init(const Field&, double&);
81  void solve_step(const Field&, double&);
82 
83  void innerprod_c(double& prod_r, double& prod_i,
84  const Field& v, const Field& w);
85 
86  void min_J(std::valarray<dcomplex>& y,
87  std::valarray<dcomplex>& h);
88 
89  int index_ij(int i, int j)
90  {
91  return i + (m_N_M + 1) * j;
92  }
93 };
94 #endif
BridgeIO vout
Definition: bridgeIO.cpp:207
static const std::string class_name
Container of Field-type object.
Definition: field.h:37
void solve_init(const Field &, double &)
Class for parameters.
Definition: parameters.h:40
void innerprod_c(double &prod_r, double &prod_i, const Field &v, const Field &w)
std::valarray< Field > v
GMRES(m) algorithm with complex variables.
int index_ij(int i, int j)
Base class for linear solver class family.
Definition: solver.h:37
void reset_field(const Field &)
void solve(Field &solution, const Field &source, int &Nconv, double &diff)
void min_J(std::valarray< dcomplex > &y, std::valarray< dcomplex > &h)
void set_parameters_GMRES_m(const int N_M)
Base class of fermion operator family.
Definition: fopr.h:39
void solve_step(const Field &, double &)
void set_parameters(const Parameters &params)