Implements standard convergence criteria and reporting for iterative solvers.
| ValueType | scalar type used in the solver (e.g. float or cusp::complex<double>). |
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. Classes to monitor iterative solver progress, check for convergence, etc. Follows the implementation of Iteration in the ITL: monitor and use it with an iterative solver.#include <monitor.h>
Public Types | |
|
typedef cusp::norm_type < ValueType >::type | Real |
Public Methods | |
| template<typename VectorType > | |
| monitor (const VectorType &b, const size_t iteration_limit=500, const Real relative_tolerance=1e-5, const Real absolute_tolerance=0, const bool verbose=false) | |
Constructs a monitor for a given right-hand-side b. More... | |
| void | operator++ (void) |
| Increments the iteration count. | |
| bool | converged (void) const |
| Indicates whether the last tested residual satisfies the convergence tolerance. More... | |
| Real | residual_norm (void) const |
| Euclidean norm of last residual. More... | |
| size_t | iteration_count (void) const |
| Returns the number of iterations that the monitor has executed. More... | |
| size_t | iteration_limit (void) const |
| Returns the maximum number of iterations. More... | |
| Real | relative_tolerance (void) const |
| Returns the relative tolerance. More... | |
| Real | absolute_tolerance (void) const |
| Returns the absolute tolerance. More... | |
| Real | tolerance (void) const |
| Return the tolerance equal to absolute_tolerance() + relative_tolerance() * ||b||. More... | |
| template<typename Vector > | |
| bool | finished (const Vector &r) |
| Applies convergence criteria to determine whether iteration is finished. More... | |
| void | set_verbose (bool verbose_=true) |
| Sets the verbosity level of the monitor. More... | |
| bool | is_verbose (void) |
| Gets the verbosity level of the monitor. More... | |
| template<typename Vector > | |
| void | reset (const Vector &b) |
| Resets the monitor using same convergence criteria. More... | |
| void | print (void) |
| Prints the number of iterations and convergence history information. | |
| Real | immediate_rate (void) |
| Returns the immedidate convergence rate. More... | |
| Real | geometric_rate (void) |
| Returns the geometric convergence rate. More... | |
| Real | average_rate (void) |
| Returns the average convergence rate. More... | |
Public Members | |
|
cusp::array1d< Real, cusp::host_memory > | residuals |
1.8.6