PARALUTION  1.0.0
PARALUTION
paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType > Class Template Referenceabstract

Base class for all linear (iterative) solvers. More...

#include <solver.hpp>

Inheritance diagram for paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >:
paralution::Solver< OperatorType, VectorType, ValueType > paralution::ParalutionObj paralution::BaseMultiGrid< OperatorType, VectorType, ValueType > paralution::BiCGStab< OperatorType, VectorType, ValueType > paralution::CG< OperatorType, VectorType, ValueType > paralution::Chebyshev< OperatorType, VectorType, ValueType > paralution::CR< OperatorType, VectorType, ValueType > paralution::DPCG< OperatorType, VectorType, ValueType > paralution::FGMRES< OperatorType, VectorType, ValueType > paralution::FixedPoint< OperatorType, VectorType, ValueType > paralution::GMRES< OperatorType, VectorType, ValueType > paralution::IDR< OperatorType, VectorType, ValueType >

Public Member Functions

 IterativeLinearSolver ()
 
virtual ~IterativeLinearSolver ()
 
void Init (const double abs_tol, const double rel_tol, const double div_tol, const int max_iter)
 Initialize the solver with absolute/relative/divergence tolerance and maximum number of iterations. More...
 
void Init (const double abs_tol, const double rel_tol, const double div_tol, const int min_iter, const int max_iter)
 Initialize the solver with absolute/relative/divergence tolerance and minimum/maximum number of iterations. More...
 
void InitMinIter (const int min_iter)
 Set the minimum number of iterations. More...
 
void InitMaxIter (const int max_iter)
 Set the maximum number of iterations. More...
 
void InitTol (const double abs, const double rel, const double div)
 Set the absolute/relative/divergence tolerance. More...
 
void SetResidualNorm (const int resnorm)
 Set the residual norm to L1, L2 or Inf norm resnorm == 1 L1 Norm resnorm == 2 L2 Norm (default) resnorm == 3 Inf Norm. More...
 
void RecordResidualHistory (void)
 Record the residual history. More...
 
void RecordHistory (const std::string filename) const
 Write the history to file. More...
 
virtual void Verbose (const int verb=1)
 Provide verbose output of the solver: verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
 
virtual void Solve (const VectorType &rhs, VectorType *x)
 Solve Operator x = rhs. More...
 
virtual void SetPreconditioner (Solver< OperatorType, VectorType, ValueType > &precond)
 Set a preconditioner of the linear solver. More...
 
virtual int GetIterationCount (void)
 Return the iteration count. More...
 
virtual double GetCurrentResidual (void)
 Return the current residual. More...
 
virtual int GetSolverStatus (void)
 Return the current status. More...
 
virtual int GetAmaxResidualIndex (void)
 Return absolute maximum index of residual vector when using Linf norm. More...
 
void SetOperator (const OperatorType &op)
 Set the Operator of the solver. More...
 
virtual void ResetOperator (const OperatorType &op)
 Reset the operator; see ReBuildNumeric. More...
 
virtual void Print (void) const =0
 Print information about the solver. More...
 
virtual void SolveZeroSol (const VectorType &rhs, VectorType *x)
 Solve Operator x = rhs; but set first the init x = 0. More...
 
virtual void Clear (void)
 Clear (free all local data) the solver. More...
 
virtual void Build (void)
 Build the solver (data allocation, structure computation, numerical computation) More...
 
virtual void ReBuildNumeric (void)
 Rebuild only with numerical computation (no allocation or data structure computation) More...
 
virtual void MoveToHost (void)
 Move all the data (i.e. move the solver) to the host. More...
 
virtual void MoveToAccelerator (void)
 Move all the data (i.e. move the solver) to the accelerator. More...
 

Protected Member Functions

virtual void SolveNonPrecond_ (const VectorType &rhs, VectorType *x)=0
 Non-preconditioner solution procedure. More...
 
virtual void SolvePrecond_ (const VectorType &rhs, VectorType *x)=0
 Preconditioned solution procedure. More...
 
ValueType Norm (const VectorType &vec)
 Computes the vector norm. More...
 
virtual void PrintStart_ (void) const =0
 Print starting msg of the solver. More...
 
virtual void PrintEnd_ (void) const =0
 Print ending msg of the solver. More...
 
virtual void MoveToHostLocalData_ (void)=0
 Move all local data to the host. More...
 
virtual void MoveToAcceleratorLocalData_ (void)=0
 Move all local data to the accelerator. More...
 

Protected Attributes

IterationControl iter_ctrl_
 Iteration control (monitor) More...
 
int res_norm_
 Residual norm res_norm = 1 L1 Norm res_norm = 2 L2 Norm res_norm = 3 Linf Norm. More...
 
int index_
 Absolute maximum index of residual vector when using Linf norm. More...
 
const OperatorType * op_
 Pointer to the operator. More...
 
Solver< OperatorType, VectorType, ValueType > * precond_
 Pointer to the defined preconditioner. More...
 
bool build_
 Flag == true after building the solver (e.g. Build()) More...
 
LocalVector< intpermutation_
 Permutation vector (used if the solver performs permutation/re-ordering techniques) More...
 
int verb_
 Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;. More...
 
size_t global_obj_id
 

Detailed Description

template<class OperatorType, class VectorType, typename ValueType>
class paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >

Base class for all linear (iterative) solvers.

Constructor & Destructor Documentation

template<class OperatorType , class VectorType , typename ValueType >
paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::IterativeLinearSolver ( )
template<class OperatorType , class VectorType , typename ValueType >
paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::~IterativeLinearSolver ( )
virtual

Member Function Documentation

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::Build ( void  )
virtualinherited

Build the solver (data allocation, structure computation, numerical computation)

Reimplemented in paralution::IC< OperatorType, VectorType, ValueType >, paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::ILUT< OperatorType, VectorType, ValueType >, paralution::ILU< OperatorType, VectorType, ValueType >, paralution::TNS< OperatorType, VectorType, ValueType >, paralution::SGS< OperatorType, VectorType, ValueType >, paralution::SPAI< OperatorType, VectorType, ValueType >, paralution::GS< OperatorType, VectorType, ValueType >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::FSAI< OperatorType, VectorType, ValueType >, paralution::FSAI< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, paralution::FSAI< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::MultiElimination< OperatorType, VectorType, ValueType >, paralution::Jacobi< OperatorType, VectorType, ValueType >, paralution::BlockPreconditioner< OperatorType, VectorType, ValueType >, paralution::DiagJacobiSaddlePointPrecond< OperatorType, VectorType, ValueType >, paralution::AIChebyshev< OperatorType, VectorType, ValueType >, paralution::AS< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MultiColored< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::BaseAMG< OperatorType, VectorType, ValueType >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, and paralution::QR< OperatorType, VectorType, ValueType >.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::Clear ( void  )
virtualinherited

Clear (free all local data) the solver.

Implements paralution::ParalutionObj.

Reimplemented in paralution::IC< OperatorType, VectorType, ValueType >, paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::ILUT< OperatorType, VectorType, ValueType >, paralution::ILU< OperatorType, VectorType, ValueType >, paralution::TNS< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::SGS< OperatorType, VectorType, ValueType >, paralution::SPAI< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::GS< OperatorType, VectorType, ValueType >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::FSAI< OperatorType, VectorType, ValueType >, paralution::FSAI< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, paralution::FSAI< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::Jacobi< OperatorType, VectorType, ValueType >, paralution::MultiElimination< OperatorType, VectorType, ValueType >, paralution::AIChebyshev< OperatorType, VectorType, ValueType >, paralution::AS< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::BlockPreconditioner< OperatorType, VectorType, ValueType >, paralution::DiagJacobiSaddlePointPrecond< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::BaseAMG< OperatorType, VectorType, ValueType >, paralution::MultiColored< OperatorType, VectorType, ValueType >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, and paralution::QR< OperatorType, VectorType, ValueType >.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetAmaxResidualIndex ( void  )
virtual

Return absolute maximum index of residual vector when using Linf norm.

template<class OperatorType , class VectorType , typename ValueType >
double paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetCurrentResidual ( void  )
virtual

Return the current residual.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetIterationCount ( void  )
virtual

Return the iteration count.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::GetSolverStatus ( void  )
virtual

Return the current status.

Referenced by paralution_fortran_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Init ( const double  abs_tol,
const double  rel_tol,
const double  div_tol,
const int  max_iter 
)

Initialize the solver with absolute/relative/divergence tolerance and maximum number of iterations.

Referenced by paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build(), main(), mexFunction(), paralution_fortran_solve(), and paralution_solve().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Init ( const double  abs_tol,
const double  rel_tol,
const double  div_tol,
const int  min_iter,
const int  max_iter 
)

Initialize the solver with absolute/relative/divergence tolerance and minimum/maximum number of iterations.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitMaxIter ( const int  max_iter)

Set the maximum number of iterations.

Referenced by main().

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitMinIter ( const int  min_iter)

Set the minimum number of iterations.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::InitTol ( const double  abs,
const double  rel,
const double  div 
)

Set the absolute/relative/divergence tolerance.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToAccelerator ( void  )
virtualinherited

Move all the data (i.e. move the solver) to the accelerator.

Referenced by main(), mexFunction(), and paralution_fortran_solve().

template<class OperatorType, class VectorType, typename ValueType>
virtual void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToAcceleratorLocalData_ ( void  )
protectedpure virtualinherited

Move all local data to the accelerator.

Implemented in paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::IC< OperatorType, VectorType, ValueType >, paralution::ILUT< OperatorType, VectorType, ValueType >, paralution::ILU< OperatorType, VectorType, ValueType >, paralution::TNS< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::SGS< OperatorType, VectorType, ValueType >, paralution::SPAI< OperatorType, VectorType, ValueType >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::MultiColored< OperatorType, VectorType, ValueType >, paralution::MultiElimination< OperatorType, VectorType, ValueType >, paralution::GS< OperatorType, VectorType, ValueType >, paralution::FSAI< OperatorType, VectorType, ValueType >, paralution::FSAI< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, paralution::FSAI< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >, paralution::DiagJacobiSaddlePointPrecond< OperatorType, VectorType, ValueType >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::BlockPreconditioner< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::Jacobi< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::AIChebyshev< OperatorType, VectorType, ValueType >, paralution::AS< OperatorType, VectorType, ValueType >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, and paralution::QR< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToHost ( void  )
virtualinherited

Move all the data (i.e. move the solver) to the host.

template<class OperatorType, class VectorType, typename ValueType>
virtual void paralution::Solver< OperatorType, VectorType, ValueType >::MoveToHostLocalData_ ( void  )
protectedpure virtualinherited

Move all local data to the host.

Implemented in paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::IC< OperatorType, VectorType, ValueType >, paralution::ILUT< OperatorType, VectorType, ValueType >, paralution::ILU< OperatorType, VectorType, ValueType >, paralution::TNS< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::SGS< OperatorType, VectorType, ValueType >, paralution::SPAI< OperatorType, VectorType, ValueType >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::MultiColored< OperatorType, VectorType, ValueType >, paralution::MultiElimination< OperatorType, VectorType, ValueType >, paralution::GS< OperatorType, VectorType, ValueType >, paralution::FSAI< OperatorType, VectorType, ValueType >, paralution::FSAI< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, paralution::FSAI< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >, paralution::DiagJacobiSaddlePointPrecond< OperatorType, VectorType, ValueType >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::BlockPreconditioner< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::Jacobi< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::AIChebyshev< OperatorType, VectorType, ValueType >, paralution::AS< OperatorType, VectorType, ValueType >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, and paralution::QR< OperatorType, VectorType, ValueType >.

template<class OperatorType , class VectorType, typename ValueType >
ValueType paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Norm ( const VectorType &  vec)
protected

Computes the vector norm.

template<class OperatorType, class VectorType, typename ValueType>
virtual void paralution::Solver< OperatorType, VectorType, ValueType >::Print ( void  ) const
pure virtualinherited

Print information about the solver.

Implemented in paralution::IC< OperatorType, VectorType, ValueType >, paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::ILUT< OperatorType, VectorType, ValueType >, paralution::TNS< OperatorType, VectorType, ValueType >, paralution::ILU< OperatorType, VectorType, ValueType >, paralution::SGS< OperatorType, VectorType, ValueType >, paralution::SPAI< OperatorType, VectorType, ValueType >, paralution::GS< OperatorType, VectorType, ValueType >, paralution::RAS< OperatorType, VectorType, ValueType >, paralution::FSAI< OperatorType, VectorType, ValueType >, paralution::FSAI< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, paralution::FSAI< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >, paralution::MultiColoredGS< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::Jacobi< OperatorType, VectorType, ValueType >, paralution::MultiElimination< OperatorType, VectorType, ValueType >, paralution::AMG< OperatorType, VectorType, ValueType >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::MultiColoredILU< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::AIChebyshev< OperatorType, VectorType, ValueType >, paralution::MultiColoredSGS< OperatorType, VectorType, ValueType >, paralution::BlockPreconditioner< OperatorType, VectorType, ValueType >, paralution::DiagJacobiSaddlePointPrecond< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::AS< OperatorType, VectorType, ValueType >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, and paralution::QR< OperatorType, VectorType, ValueType >.

template<class OperatorType, class VectorType, typename ValueType>
virtual void paralution::Solver< OperatorType, VectorType, ValueType >::PrintEnd_ ( void  ) const
protectedpure virtualinherited

Print ending msg of the solver.

Implemented in paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::AMG< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, paralution::QR< OperatorType, VectorType, ValueType >, paralution::Preconditioner< OperatorType, VectorType, ValueType >, paralution::Preconditioner< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, and paralution::Preconditioner< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >.

template<class OperatorType, class VectorType, typename ValueType>
virtual void paralution::Solver< OperatorType, VectorType, ValueType >::PrintStart_ ( void  ) const
protectedpure virtualinherited

Print starting msg of the solver.

Implemented in paralution::FixedPoint< OperatorType, VectorType, ValueType >, paralution::SIRA< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BaseMultiGrid< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorType, VectorType, ValueType >, paralution::CG_HN< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG_HN< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::DPCG< OperatorType, VectorType, ValueType >, paralution::AMG< OperatorType, VectorType, ValueType >, paralution::IDR< OperatorType, VectorType, ValueType >, paralution::FGMRES< OperatorType, VectorType, ValueType >, paralution::GMRES< OperatorType, VectorType, ValueType >, paralution::Chebyshev< OperatorType, VectorType, ValueType >, paralution::MixedPrecisionDC< OperatorTypeH, VectorTypeH, ValueTypeH, OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::BiCGStab< OperatorType, VectorType, ValueType >, paralution::CG< OperatorType, VectorType, ValueType >, paralution::CR< OperatorType, VectorType, ValueType >, paralution::CG< OperatorTypeL, VectorTypeL, ValueTypeL >, paralution::CG< OperatorTypeH, VectorTypeH, ValueTypeH >, paralution::Inversion< OperatorType, VectorType, ValueType >, paralution::LU< OperatorType, VectorType, ValueType >, paralution::QR< OperatorType, VectorType, ValueType >, paralution::Preconditioner< OperatorType, VectorType, ValueType >, paralution::Preconditioner< paralution::LocalMatrix< ValueTypeL >, paralution::LocalVector< ValueTypeL >, ValueTypeL >, and paralution::Preconditioner< paralution::LocalMatrix< ValueTypeH >, paralution::LocalVector< ValueTypeH >, ValueTypeH >.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::ReBuildNumeric ( void  )
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::RecordHistory ( const std::string  filename) const

Write the history to file.

template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::RecordResidualHistory ( void  )

Record the residual history.

template<class OperatorType, class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::ResetOperator ( const OperatorType &  op)
virtualinherited
template<class OperatorType, class VectorType , typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::SetOperator ( const OperatorType &  op)
inherited
template<class OperatorType, class VectorType, typename ValueType>
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::SetPreconditioner ( Solver< OperatorType, VectorType, ValueType > &  precond)
virtual
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::SetResidualNorm ( const int  resnorm)

Set the residual norm to L1, L2 or Inf norm resnorm == 1 L1 Norm resnorm == 2 L2 Norm (default) resnorm == 3 Inf Norm.

template<class OperatorType , class VectorType, typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Solve ( const VectorType &  rhs,
VectorType *  x 
)
virtual
template<class OperatorType , class VectorType, typename ValueType >
void paralution::Solver< OperatorType, VectorType, ValueType >::SolveZeroSol ( const VectorType &  rhs,
VectorType *  x 
)
virtualinherited
template<class OperatorType , class VectorType , typename ValueType >
void paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::Verbose ( const int  verb = 1)
virtual

Provide verbose output of the solver: verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;.

Reimplemented from paralution::Solver< OperatorType, VectorType, ValueType >.

Referenced by paralution::BaseAMG< OperatorType, VectorType, ValueType >::Build(), paralution::AMG< OperatorType, VectorType, ValueType >::BuildSmoothers(), paralution::BaseAMG< OperatorType, VectorType, ValueType >::BuildSmoothers(), main(), mexFunction(), and paralution_solve().

Field Documentation

template<class OperatorType, class VectorType, typename ValueType>
bool paralution::Solver< OperatorType, VectorType, ValueType >::build_
protectedinherited

Flag == true after building the solver (e.g. Build())

size_t paralution::ParalutionObj::global_obj_id
protectedinherited
template<class OperatorType, class VectorType, typename ValueType>
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::index_
protected

Absolute maximum index of residual vector when using Linf norm.

template<class OperatorType, class VectorType, typename ValueType>
IterationControl paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::iter_ctrl_
protected

Iteration control (monitor)

template<class OperatorType, class VectorType, typename ValueType>
const OperatorType* paralution::Solver< OperatorType, VectorType, ValueType >::op_
protectedinherited

Pointer to the operator.

template<class OperatorType, class VectorType, typename ValueType>
LocalVector<int> paralution::Solver< OperatorType, VectorType, ValueType >::permutation_
protectedinherited

Permutation vector (used if the solver performs permutation/re-ordering techniques)

template<class OperatorType, class VectorType, typename ValueType>
Solver<OperatorType, VectorType, ValueType>* paralution::Solver< OperatorType, VectorType, ValueType >::precond_
protectedinherited

Pointer to the defined preconditioner.

template<class OperatorType, class VectorType, typename ValueType>
int paralution::IterativeLinearSolver< OperatorType, VectorType, ValueType >::res_norm_
protected

Residual norm res_norm = 1 L1 Norm res_norm = 2 L2 Norm res_norm = 3 Linf Norm.

template<class OperatorType, class VectorType, typename ValueType>
int paralution::Solver< OperatorType, VectorType, ValueType >::verb_
protectedinherited

Verbose flag verb == 0 no output verb == 1 print info about the solver (start,end); verb == 2 print (iter, residual) via iteration control;.


The documentation for this class was generated from the following files: