ConicBundle
|
Abstract interface to iterative methods for solving Ax=b given by an IterativeSystemObject. More...
#include <IterativeSystemObject.hxx>
Public Member Functions | |
virtual int | compute (IterativeSystemObject &system, Matrix &x, Real termprec, Matrix *storex=0, Integer storestep=0)=0 |
compute the solution for system into x with (absolute) residual precision termprec More... | |
Set and Get Parameters | |
There should be no need to set any parameters, default values should be available and reasonable. | |
virtual void | set_maxit (Integer in_maxit)=0 |
set maximum number of iterations | |
virtual Integer | get_maxit () const =0 |
get maximum number of iterations | |
virtual int | get_err () const =0 |
returns the error code of the last call | |
virtual Integer | get_nmult () const =0 |
returns the number of matrix-vector multiplications of the last call | |
virtual Real | get_residual_norm () const =0 |
returns the residual norm of last call | |
virtual Real | get_avg_reduction () const =0 |
returns the average of the achieved reduction factor per iteration | |
virtual Real | get_termprec () const =0 |
returns the (absolute) precision requirement for termination used in the last call | |
Input/Output | |
virtual void | set_out (std::ostream *out=0, int print_level=1)=0 |
set output stream and level of detail of log output (for debugging) | |
Abstract interface to iterative methods for solving Ax=b given by an IterativeSystemObject.
|
pure virtual |
compute the solution for system into x with (absolute) residual precision termprec
system | the system information with precond |
x | on input: starting point (x.dim()==0 uses 0-vector), on output: approx. sol., |
termprec | !absolute! termination precision, stop if residual norm<= termprec, |
storex | if not null, store initial x and the x of i*recordstep |
storestep | if 0 and xrecord!=0 store only the initial x |
Implemented in CH_Matrix_Classes::MinRes, CH_Matrix_Classes::PCG, and CH_Matrix_Classes::Psqmr.