Rheolef  7.1
an efficient C++ finite element environment
solver_gmres_cg.h
Go to the documentation of this file.
1 #ifndef _RHEOLEF_SOLVER_GMRES_CG_H
2 #define _RHEOLEF_SOLVER_GMRES_CG_H
3 #include "rheolef/solver.h"
24 namespace rheolef {
25 
26 template<class T, class M>
28 public:
29 // typedef:
30 
32  typedef typename base::size_type size_type;
34 
35 // allocator:
36 
37  explicit solver_gmres_cg_rep (const csr<T,M>& a, const solver_option& opt = solver_option());
39  bool initialized() const { return true; }
40  void update_values (const csr<T,M>& a) { _a = a; }
42 
43 // accessors:
44 
45  vec<T,M> trans_solve (const vec<T,M>& rhs) const;
46  vec<T,M> solve (const vec<T,M>& rhs) const;
47  determinant_type det() const;
48 
49 protected:
50 // data:
53 };
54 
55 template<class T, class M>
56 inline
58  : solver_abstract_rep<T,M>(opt),
59  _a(a),
60  _precond()
61 {
62  update_values (_a);
63 }
64 template <class T, class M>
65 inline
68 {
69  typedef solver_gmres_cg_rep<T,M> rep;
70  return new_macro (rep(*this));
71 }
72 
73 } // namespace rheolef
74 #endif // _RHEOLEF_SOLVER_GMRES_CG_H
rheolef::solver_gmres_cg_rep::initialized
bool initialized() const
Definition: solver_gmres_cg.h:39
rheolef::solver_gmres_cg_rep::_a
csr< T, M > _a
Definition: solver_gmres_cg.h:51
rheolef::solver_gmres_cg_rep::trans_solve
vec< T, M > trans_solve(const vec< T, M > &rhs) const
Definition: solver_gmres_cg.cc:65
rheolef::solver_gmres_cg_rep::size_type
base::size_type size_type
Definition: solver_gmres_cg.h:32
rheolef::solver_basic
Definition: solver.h:188
rheolef::solver_gmres_cg_rep::determinant_type
base::determinant_type determinant_type
Definition: solver_gmres_cg.h:33
rheolef::solver_gmres_cg_rep::solve
vec< T, M > solve(const vec< T, M > &rhs) const
Definition: solver_gmres_cg.cc:40
rheolef::vec
see the vec page for the full documentation
Definition: vec.h:79
rheolef::solver_gmres_cg_rep::solver_gmres_cg_rep
solver_gmres_cg_rep(const csr< T, M > &a, const solver_option &opt=solver_option())
Definition: solver_gmres_cg.h:57
rheolef::solver_abstract_rep::determinant_type
Definition: solver.h:215
p
Definition: sphere.icc:25
rheolef::solver_abstract_rep
Definition: solver.h:191
a
Definition: diffusion_isotropic.h:25
rheolef::solver_gmres_cg_rep::_precond
solver_basic< T, M > _precond
Definition: solver_gmres_cg.h:52
rheolef::csr
see the csr page for the full documentation
Definition: asr.h:31
rheolef::solver_gmres_cg_rep::det
determinant_type det() const
Definition: solver_gmres_cg.cc:74
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::solver_abstract_rep::size_type
csr< T, M >::size_type size_type
Definition: solver.h:193
rheolef::solver_gmres_cg_rep::update_values
void update_values(const csr< T, M > &a)
Definition: solver_gmres_cg.h:40
rheolef::solver_gmres_cg_rep::set_preconditioner
void set_preconditioner(const solver_basic< T, M > &p)
Definition: solver_gmres_cg.h:41
mkgeo_ball.a
a
Definition: mkgeo_ball.sh:151
rheolef::solver_gmres_cg_rep
Definition: solver_gmres_cg.h:27
rheolef::solver_gmres_cg_rep::base
solver_abstract_rep< T, M > base
Definition: solver_gmres_cg.h:31
M
Expr1::memory_type M
Definition: vec_expr_v2.h:385
T
Expr1::float_type T
Definition: field_expr.h:218
rheolef::solver_gmres_cg_rep::clone
solver_abstract_rep< T, M > * clone() const
Definition: solver_gmres_cg.h:67
rheolef::solver_option
see the solver_option page for the full documentation
Definition: solver_option.h:155