PARALUTION  1.0.0
PARALUTION
cr.hpp
Go to the documentation of this file.
1 #ifndef PARALUTION_KRYLOV_CR_HPP_
2 #define PARALUTION_KRYLOV_CR_HPP_
3 
4 #include "../solver.hpp"
5 
6 #include <vector>
7 
8 namespace paralution {
9 
10 template <class OperatorType, class VectorType, typename ValueType>
11 class CR : public IterativeLinearSolver<OperatorType, VectorType, ValueType> {
12 
13 public:
14 
15  CR();
16  virtual ~CR();
17 
18  virtual void Print(void) const;
19 
20  virtual void Build(void);
21  virtual void Clear(void);
22 
23 protected:
24 
25  virtual void SolveNonPrecond_(const VectorType &rhs,
26  VectorType *x);
27  virtual void SolvePrecond_(const VectorType &rhs,
28  VectorType *x);
29 
30  virtual void PrintStart_(void) const;
31  virtual void PrintEnd_(void) const;
32 
33  virtual void MoveToHostLocalData_(void);
34  virtual void MoveToAcceleratorLocalData_(void);
35 
36 private:
37 
38  VectorType r_, z_, t_;
39  VectorType p_, q_, v_;
40 
41 };
42 
43 
44 }
45 
46 #endif // PARALUTION_KRYLOV_CR_HPP_
virtual void Clear(void)
Clear (free all local data) the solver.
Definition: cr.cpp:132
virtual void PrintStart_(void) const
Print starting msg of the solver.
Definition: cr.cpp:52
virtual void SolveNonPrecond_(const VectorType &rhs, VectorType *x)
Non-preconditioner solution procedure.
Definition: cr.cpp:206
VectorType v_
Definition: cr.hpp:39
VectorType z_
Definition: cr.hpp:38
Definition: cr.hpp:11
Base class for all linear (iterative) solvers.
Definition: solver.hpp:94
CR()
Definition: cr.cpp:18
virtual void PrintEnd_(void) const
Print ending msg of the solver.
Definition: cr.cpp:68
VectorType p_
Definition: cr.hpp:39
virtual void MoveToAcceleratorLocalData_(void)
Move all local data to the accelerator.
Definition: cr.cpp:183
VectorType q_
Definition: cr.hpp:39
VectorType t_
Definition: cr.hpp:38
virtual ~CR()
Definition: cr.cpp:26
virtual void MoveToHostLocalData_(void)
Move all local data to the host.
Definition: cr.cpp:160
virtual void SolvePrecond_(const VectorType &rhs, VectorType *x)
Preconditioned solution procedure.
Definition: cr.cpp:306
Definition: backend_manager.cpp:43
virtual void Print(void) const
Print information about the solver.
Definition: cr.cpp:36
virtual void Build(void)
Build the solver (data allocation, structure computation, numerical computation)
Definition: cr.cpp:83
const IndexType const IndexType const IndexType const ValueType const ValueType const ValueType * x
Definition: cuda_kernels_coo.hpp:91
VectorType r_
Definition: cr.hpp:38