00001 #ifndef _MY__CGSolver_ 00002 #define _MY_CGSolver_ 00003 #include "linearsolver.h" 00004 #include <lac/solver_control.h> 00005 #include <lac/solver_cg.h> 00006 00007 00011 class CGSolver : public LinearSolver 00012 { 00013 private: 00014 SolverControl m_solverControl; 00015 SolverCG<Vector<double> > m_solver; 00016 unsigned m_numIt; 00017 double m_tol; 00018 protected: 00019 00020 public: 00021 CGSolver(unsigned numIt,double tol,unsigned debuglevel); 00022 virtual ~CGSolver(){} 00023 virtual void solve(const SparseMatrix<double> &M,VecDouble &sol,const VecDouble &rhs); 00024 virtual void solveAgain(const SparseMatrix<double> &M,VecDouble &sol,const VecDouble &rhs); 00025 00026 }; 00027 00028 #endif