Bridge++  Ver. 1.1.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 
42 class Solver_BiCGStab : public Solver
43 {
44  private:
46  int m_Niter;
47  double m_Stop_cond;
48 
49  Field s, r, x, rh, p, v;
50  double rho_p, alpha_p, omega_p;
51 
52  public:
54  : Solver(), m_fopr(fopr) {}
55 
57 
58  void set_parameters(const Parameters& params);
59  void set_parameters(const int Niter, const double Stop_cond);
60 
61  void solve(Field& solution, const Field& source,
62  int& Nconv, double& diff);
63 
64  Fopr *get_fopr() { return m_fopr; }
65 
66  private:
67  void reset_field(const Field&);
68 
69  void solve_init(const Field&, double&);
70  void solve_step(double&);
71 };
72 #endif