Criteria that determine an iterative algorithm has converged.
More...
#include <Criteria.hpp>
|
using | options = implementation defined |
|
|
| Criteria (size_t max_iterations_in, double absolute_residual_in, double relative_residual_in) |
|
void | pup (PUP::er &p) |
|
|
size_t | max_iterations {} |
|
double | absolute_residual {} |
|
double | relative_residual {} |
|
Criteria that determine an iterative algorithm has converged.
Details
Most criteria are based on a residual magnitude after completion of an iteration (see, for instance, the Linear Solver documentation, LinearSolver::Tags::Residual
and LinearSolver::Tags::Magnitude
).
The following criteria are implemented, ordered from highest to lowest priority:
- AbsoluteResidual: Matches if the residual has reached this magnitude.
- RelativeResidual: Matches if the residual has decreased by this factor, relative to the start of the first iteration.
- MaxIterations: Matches if the number of iterations exceeds this limit.
◆ help
Initial value:=
"The algorithm terminates when any of these criteria is matched."
The documentation for this struct was generated from the following file:
- src/NumericalAlgorithms/Convergence/Criteria.hpp