Structure to handle the convergence of an iterative algorithm. More...
#include <cs_iter_algo.h>
Data Fields | |
Generic parameters | |
int | verbosity |
cs_param_sles_cvg_t | cvg_param |
void * | context |
Convergence monitoring | |
cs_sles_convergence_state_t | cvg_status |
double | normalization |
double | tol |
double | prev_res |
double | res |
double | res0 |
int | n_algo_iter |
int | n_inner_iter |
int | last_inner_iter |
Structure to handle the convergence of an iterative algorithm.
Metadata to manage an iterative algorithm such as Picard or Uzawa for instance. This structure can handle embedded iterative algorithm since the notion of inner and outer iterations is defined. Nevertheless, only the outer iterative algorithm is managed (information about inner iterations are only for monitoring purposes).
void* context |
pointer to structure cast on the fly
cs_param_sles_cvg_t cvg_param |
structure storing the main settings
cs_sles_convergence_state_t cvg_status |
Converged, iterating or diverged status
int last_inner_iter |
Last number of iterations for the inner solver
int n_algo_iter |
Current number of iterations for the algorithm (outer iterations)
int n_inner_iter |
Curent cumulated number of inner iterations (sum over the outer iterations)
double normalization |
Value of the normalization for the relative tolerance.
The stopping criterion is such that res < rtol * normalization. By default, the normalization is set to 1.
double prev_res |
Value of the previous residual achieved during the iterative process
double res |
Value of the residual for the iterative algorithm
double res0 |
Value of the first residual of the iterative process. This is used for detecting the divergence of the algorithm.
double tol |
Tolerance computed as tol = max(atol, normalization*rtol) where atol and rtol are respectively the absolute and relative tolerance associated to the algorithm
int verbosity |
Level of printed information