Template Numerical Library version\ main:978fbd2
|
Base class for iterative solvers. More...
#include <TNL/Solvers/StaticIterativeSolver.h>
Public Member Functions | |
__cuda_callable__ | StaticIterativeSolver ()=default |
Default constructor. | |
__cuda_callable__ bool | checkConvergence () |
Checks whether the convergence occurred already. | |
__cuda_callable__ bool | checkNextIteration () |
Checks if the solver is allowed to do the next iteration. | |
__cuda_callable__ const Real & | getConvergenceResidue () const |
Gets the the convergence threshold. | |
__cuda_callable__ const Real & | getDivergenceResidue () const |
Gets the limit for the divergence criterion. | |
__cuda_callable__ const Index & | getIterations () const |
Gets the number of iterations performed by the solver so far. | |
__cuda_callable__ const Index & | getMaxIterations () const |
Gets the maximal number of iterations the solver is allowed to perform. | |
__cuda_callable__ const Index & | getMinIterations () const |
Gets the minimal number of iterations the solver is supposed to do. | |
__cuda_callable__ const Real & | getResidue () const |
Gets the residue reached at the current iteration. | |
__cuda_callable__ bool | nextIteration () |
Proceeds to the next iteration. | |
__cuda_callable__ void | resetIterations () |
Sets the the number of the current iterations to zero. | |
__cuda_callable__ void | setConvergenceResidue (const Real &convergenceResidue) |
Sets the threshold for the convergence. | |
__cuda_callable__ void | setDivergenceResidue (const Real &divergenceResidue) |
Sets the residue limit for the divergence criterion. | |
__cuda_callable__ void | setMaxIterations (const Index &maxIterations) |
Sets the maximal number of iterations the solver is allowed to perform. | |
__cuda_callable__ void | setMinIterations (const Index &minIterations) |
Sets the minimal number of iterations the solver is supposed to do. | |
__cuda_callable__ void | setResidue (const Real &residue) |
Sets the residue reached at the current iteration. | |
bool | setup (const Config::ParameterContainer ¶meters, const std::string &prefix="") |
Method for setup of the iterative solver based on configuration parameters. | |
Static Public Member Functions | |
static void | configSetup (Config::ConfigDescription &config, const std::string &prefix="") |
This method defines configuration entries for setup of the iterative solver. | |
Protected Attributes | |
Real | convergenceResidue = 1e-6 |
Index | currentIteration = 0 |
Real | currentResidue = 0 |
Real | divergenceResidue = std::numeric_limits< Real >::max() |
Index | maxIterations = 1000000000 |
Index | minIterations = 0 |
Index | refreshRate = 1 |
Base class for iterative solvers.
Real | is a floating point type used for computations. |
Index | is an indexing type. |
IterativeSolverMonitor< | Real, Index > is type of an object used for monitoring of the convergence. |
__cuda_callable__ bool TNL::Solvers::StaticIterativeSolver< Real, Index >::checkConvergence | ( | ) |
Checks whether the convergence occurred already.
__cuda_callable__ bool TNL::Solvers::StaticIterativeSolver< Real, Index >::checkNextIteration | ( | ) |
Checks if the solver is allowed to do the next iteration.
|
static |
This method defines configuration entries for setup of the iterative solver.
The following entries are defined:
max-iterations - maximal number of iterations the solver may perform.
min-iterations - minimal number of iterations the solver must perform.
convergence-residue - convergence occurs when the residue drops bellow this limit.
divergence-residue - divergence occurs when the residue exceeds given limit.
refresh-rate - number of milliseconds between solver monitor refreshes.
residual-history-file - path to the file where the residual history will be saved.
config | contains description of configuration parameters. |
prefix | is a prefix of particular configuration entries. |
__cuda_callable__ const Real & TNL::Solvers::StaticIterativeSolver< Real, Index >::getConvergenceResidue | ( | ) | const |
Gets the the convergence threshold.
See IterativeSolver::setConvergenceResidue.
__cuda_callable__ const Real & TNL::Solvers::StaticIterativeSolver< Real, Index >::getDivergenceResidue | ( | ) | const |
Gets the limit for the divergence criterion.
See IterativeSolver::setDivergenceResidue.
__cuda_callable__ const Index & TNL::Solvers::StaticIterativeSolver< Real, Index >::getIterations | ( | ) | const |
Gets the number of iterations performed by the solver so far.
__cuda_callable__ const Index & TNL::Solvers::StaticIterativeSolver< Real, Index >::getMaxIterations | ( | ) | const |
Gets the maximal number of iterations the solver is allowed to perform.
See IterativeSolver::setMaxIterations.
__cuda_callable__ const Index & TNL::Solvers::StaticIterativeSolver< Real, Index >::getMinIterations | ( | ) | const |
Gets the minimal number of iterations the solver is supposed to do.
__cuda_callable__ const Real & TNL::Solvers::StaticIterativeSolver< Real, Index >::getResidue | ( | ) | const |
Gets the residue reached at the current iteration.
__cuda_callable__ bool TNL::Solvers::StaticIterativeSolver< Real, Index >::nextIteration | ( | ) |
Proceeds to the next iteration.
__cuda_callable__ void TNL::Solvers::StaticIterativeSolver< Real, Index >::setConvergenceResidue | ( | const Real & | convergenceResidue | ) |
Sets the threshold for the convergence.
The convergence occurs when the residue drops bellow this limit.
convergenceResidue | is threshold for the convergence. |
__cuda_callable__ void TNL::Solvers::StaticIterativeSolver< Real, Index >::setDivergenceResidue | ( | const Real & | divergenceResidue | ) |
Sets the residue limit for the divergence criterion.
The divergence occurs when the residue exceeds the limit.
divergenceResidue | the residue limit of the divergence. |
__cuda_callable__ void TNL::Solvers::StaticIterativeSolver< Real, Index >::setMaxIterations | ( | const Index & | maxIterations | ) |
Sets the maximal number of iterations the solver is allowed to perform.
If the number of iterations performed by the solver exceeds given limit, the divergence occurs.
maxIterations | maximal number of allowed iterations. |
__cuda_callable__ void TNL::Solvers::StaticIterativeSolver< Real, Index >::setMinIterations | ( | const Index & | minIterations | ) |
Sets the minimal number of iterations the solver is supposed to do.
minIterations | minimal number of iterations the solver is supposed to do. |
__cuda_callable__ void TNL::Solvers::StaticIterativeSolver< Real, Index >::setResidue | ( | const Real & | residue | ) |
Sets the residue reached at the current iteration.
residue | reached at the current iteration. |
bool TNL::Solvers::StaticIterativeSolver< Real, Index >::setup | ( | const Config::ParameterContainer & | parameters, |
const std::string & | prefix = "" ) |
Method for setup of the iterative solver based on configuration parameters.
parameters | contains values of the define configuration entries. |
prefix | is a prefix of particular configuration entries. |