#include <cgsolver.h>
Public Member Functions | |
CGSolver (unsigned numIt, double tol, unsigned debuglevel) | |
virtual | ~CGSolver () |
virtual void | solve (const SparseMatrix< double > &M, VecDouble &sol, const VecDouble &rhs) |
virtual void | solveAgain (const SparseMatrix< double > &M, VecDouble &sol, const VecDouble &rhs) |
Private Attributes | |
SolverControl | m_solverControl |
SolverCG< Vector< double > > | m_solver |
unsigned | m_numIt |
double | m_tol |
Implementation of the CG solver with SSOR precondition
Definition at line 11 of file cgsolver.h.
CGSolver::CGSolver | ( | unsigned | numIt, | |
double | tol, | |||
unsigned | debuglevel | |||
) |
Definition at line 6 of file cgsolver.cpp.
00007 :m_solverControl(numIt,tol,debugLevel,debugLevel), 00008 m_solver(m_solverControl), 00009 m_numIt(numIt), 00010 m_tol(tol) 00011 { 00012 00013 }
virtual CGSolver::~CGSolver | ( | ) | [inline, virtual] |
Definition at line 22 of file cgsolver.h.
void CGSolver::solve | ( | const SparseMatrix< double > & | M, | |
VecDouble & | sol, | |||
const VecDouble & | rhs | |||
) | [virtual] |
Implements LinearSolver.
Definition at line 18 of file cgsolver.cpp.
00019 { 00020 PreconditionSSOR<SparseMatrix<double> > precondition; 00021 precondition.initialize(M); 00022 m_solver.solve(M,sol,rhs,precondition); 00023 { 00024 double min,media,max; 00025 NumericMethods::checkLinearSolution(M,sol,rhs,min,media,max); 00026 printf("Solver %g %g %g %g\n",min,media,max,m_tol); 00027 } 00028 }
void CGSolver::solveAgain | ( | const SparseMatrix< double > & | M, | |
VecDouble & | sol, | |||
const VecDouble & | rhs | |||
) | [virtual] |
Implements LinearSolver.
Definition at line 29 of file cgsolver.cpp.
00030 { 00031 this->solve(M,sol,rhs); 00032 }
unsigned CGSolver::m_numIt [private] |
Definition at line 16 of file cgsolver.h.
SolverCG<Vector<double> > CGSolver::m_solver [private] |
Definition at line 15 of file cgsolver.h.
SolverControl CGSolver::m_solverControl [private] |
Definition at line 14 of file cgsolver.h.
double CGSolver::m_tol [private] |
Definition at line 17 of file cgsolver.h.