#include <block_monitor.h>
Public Types | |
|
typedef norm_type< ValueType > ::type | Real |
Public Member Functions | |
| template<typename MV > | |
| default_block_monitor (const MV &b, size_t iteration_limit=500, Real absolute_tolerance=1e-6, Real relative_tolerance=1e-6, bool verbose=true) | |
| void | operator++ (void) |
| template<typename MV > | |
| bool | finished (const MV &r) |
| template<typename MV > | |
| bool | converged (MV &r) const |
| size_t | iteration_count () const |
| size_t | iteration_limit () const |
| Real | relative_tolerance () const |
| Real | absolute_tolerance () const |
| Real | tolerance (int i) const |
Protected Attributes | |
| Real | relative_tolerance_ |
| Real | absolute_tolerance_ |
| bool | verbose_ |
| size_t | numRHS |
| size_t | iteration_limit_ |
| size_t | iteration_count_ |
|
cusp::array1d< ValueType, cusp::host_memory > | b_norm |
default_monitor : Implements standard convergence criteria and reporting for iterative solvers.
| ValueType | scalar type used in the solver (e.g. float or cusp::complex<double>). |
verbose_monitor | cusp::default_block_monitor< ValueType >::default_block_monitor | ( | const MV & | b, |
| size_t | iteration_limit = 500, |
||
| Real | absolute_tolerance = 1e-6, |
||
| Real | relative_tolerance = 1e-6, |
||
| bool | verbose = true |
||
| ) | [inline] |
Construct a default_monitor for a given right-hand-side b
The default_monitor terminates iteration when the residual norm satisfies the condition ||b - A x|| <= absolute_tolerance + relative_tolerance * ||b|| or when the iteration limit is reached.
| b | right-hand-side of the linear system A x = b |
| iteration_limit | maximum number of solver iterations to allow |
| relative_tolerance | determines convergence criteria |
| absolute_tolerance | determines convergence criteria |
| VectorType | vector |
| Real cusp::default_block_monitor< ValueType >::absolute_tolerance | ( | ) | const [inline] |
absolute tolerance
| bool cusp::default_block_monitor< ValueType >::converged | ( | MV & | r | ) | const [inline] |
whether the last tested residual satifies the convergence tolerance
| bool cusp::default_block_monitor< ValueType >::finished | ( | const MV & | r | ) | [inline] |
applies convergence criteria to determine whether iteration is finished
| r | residual vector of the linear system (r = b - A x) |
| Vector | vector |
| size_t cusp::default_block_monitor< ValueType >::iteration_count | ( | ) | const [inline] |
number of iterations
| size_t cusp::default_block_monitor< ValueType >::iteration_limit | ( | ) | const [inline] |
maximum number of iterations
| void cusp::default_block_monitor< ValueType >::operator++ | ( | void | ) | [inline] |
increment the iteration count
| Real cusp::default_block_monitor< ValueType >::relative_tolerance | ( | ) | const [inline] |
relative tolerance
| Real cusp::default_block_monitor< ValueType >::tolerance | ( | int | i | ) | const [inline] |
tolerance
Equal to absolute_tolerance() + relative_tolerance() * ||b||
1.7.6.1