The Belos::TFQMRSolMgr provides a powerful and fully-featured solver manager over the TFQMR linear solver.
More...
#include <BelosTFQMRSolMgr.hpp>
|
Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > | problem_ |
|
Teuchos::RCP< OutputManager< ScalarType > > | printer_ |
|
Teuchos::RCP< std::ostream > | outputStream_ |
|
Teuchos::RCP< StatusTest< ScalarType, MV, OP > > | sTest_ |
|
Teuchos::RCP< StatusTestMaxIters< ScalarType, MV, OP > > | maxIterTest_ |
|
Teuchos::RCP< StatusTest< ScalarType, MV, OP > > | convTest_ |
|
Teuchos::RCP< StatusTestGenResNorm< ScalarType, MV, OP > > | expConvTest_ |
|
Teuchos::RCP< StatusTestGenResNorm< ScalarType, MV, OP > > | impConvTest_ |
|
Teuchos::RCP< StatusTestOutput< ScalarType, MV, OP > > | outputTest_ |
|
Teuchos::RCP< Teuchos::ParameterList > | params_ |
|
MagnitudeType | convtol_ |
|
MagnitudeType | impTolScale_ |
|
MagnitudeType | achievedTol_ |
|
int | maxIters_ |
|
int | numIters_ |
|
int | verbosity_ |
|
int | outputStyle_ |
|
int | outputFreq_ |
|
int | blockSize_ |
|
bool | expResTest_ |
|
std::string | impResScale_ |
|
std::string | expResScale_ |
|
std::string | label_ |
|
Teuchos::RCP< Teuchos::Time > | timerSolve_ |
|
bool | isSet_ |
|
bool | isSTSet_ |
|
|
void | setProblem (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem) override |
| Set the linear problem that needs to be solved. More...
|
|
void | setParameters (const Teuchos::RCP< Teuchos::ParameterList > ¶ms) override |
| Set the parameters the solver manager should use to solve the linear problem. More...
|
|
|
void | reset (const ResetType type) override |
| Performs a reset of the solver manager specified by the ResetType . This informs the solver manager that the solver should prepare for the next call to solve by resetting certain elements of the iterative solver strategy. More...
|
|
|
ReturnType | solve () override |
| This method performs possibly repeated calls to the underlying linear solver's iterate() routine until the problem has been solved (as decided by the solver manager) or the solver manager decides to quit. More...
|
|
|
std::string | description () const override |
| Method to return description of the TFQMR solver manager. More...
|
|
template<class ScalarType, class MV, class OP>
class Belos::TFQMRSolMgr< ScalarType, MV, OP >
The Belos::TFQMRSolMgr provides a powerful and fully-featured solver manager over the TFQMR linear solver.
- Author
- Heidi Thornquist
Definition at line 94 of file BelosTFQMRSolMgr.hpp.
◆ MVT
template<class ScalarType, class MV, class OP>
◆ OPT
template<class ScalarType, class MV, class OP>
◆ SCT
template<class ScalarType, class MV, class OP>
◆ MagnitudeType
template<class ScalarType, class MV, class OP>
◆ MT
template<class ScalarType, class MV, class OP>
◆ TFQMRSolMgr() [1/2]
template<class ScalarType , class MV , class OP >
◆ TFQMRSolMgr() [2/2]
template<class ScalarType , class MV , class OP >
Basic constructor for TFQMRSolMgr.
This constructor accepts the LinearProblem to be solved in addition to a parameter list of options for the solver manager. These options include the following:
- "Maximum Iterations" - an
int
specifying the maximum number of iterations the underlying solver is allowed to perform. Default: 1000
- "Convergence Tolerance" - a
MagnitudeType
specifying the level that residual norms must reach to decide convergence. Default: 1e-8.
- "Verbosity" - a sum of MsgType specifying the verbosity. Default: Belos::Errors
- "Output Style" - a OutputType specifying the style of output. Default: Belos::General
- "Output Stream" - a reference-counted pointer to the output stream where all solver output is sent. Default: Teuchos::rcp(&std::cout,false)
- "Output Frequency" - an
int
specifying how often convergence information should be outputted. Default: -1 (never)
- "Timer Label" - a
std::string
to use as a prefix for the timer labels. Default: "Belos"
Definition at line 321 of file BelosTFQMRSolMgr.hpp.
◆ ~TFQMRSolMgr()
template<class ScalarType, class MV, class OP>
◆ clone()
template<class ScalarType, class MV, class OP>
◆ getProblem()
template<class ScalarType, class MV, class OP>
◆ getValidParameters()
template<class ScalarType , class MV , class OP >
Teuchos::RCP< const Teuchos::ParameterList > Belos::TFQMRSolMgr< ScalarType, MV, OP >::getValidParameters |
( |
| ) |
const |
|
overridevirtual |
◆ getCurrentParameters()
template<class ScalarType, class MV, class OP>
Teuchos::RCP<const Teuchos::ParameterList> Belos::TFQMRSolMgr< ScalarType, MV, OP >::getCurrentParameters |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ getTimers()
template<class ScalarType, class MV, class OP>
Teuchos::Array<Teuchos::RCP<Teuchos::Time> > Belos::TFQMRSolMgr< ScalarType, MV, OP >::getTimers |
( |
| ) |
const |
|
inline |
Return the timers for this object.
The timers are ordered as follows:
Definition at line 163 of file BelosTFQMRSolMgr.hpp.
◆ achievedTol()
template<class ScalarType, class MV, class OP>
◆ getNumIters()
template<class ScalarType, class MV, class OP>
◆ isLOADetected()
template<class ScalarType, class MV, class OP>
Whether loss of accuracy was detected during the last solve()
invocation.
In solvers that can detect a loss of accuracy, this method would say whether the solver detected it in the most recent solve()
invocation. However, our TFQMR implementation does not currently detect a loss of accuracy, so this method always returns false.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 188 of file BelosTFQMRSolMgr.hpp.
◆ setProblem()
template<class ScalarType, class MV, class OP>
◆ setParameters()
template<class ScalarType , class MV , class OP >
void Belos::TFQMRSolMgr< ScalarType, MV, OP >::setParameters |
( |
const Teuchos::RCP< Teuchos::ParameterList > & |
params | ) |
|
|
overridevirtual |
◆ reset()
template<class ScalarType, class MV, class OP>
Performs a reset of the solver manager specified by the ResetType
. This informs the solver manager that the solver should prepare for the next call to solve by resetting certain elements of the iterative solver strategy.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 208 of file BelosTFQMRSolMgr.hpp.
◆ solve()
template<class ScalarType , class MV , class OP >
This method performs possibly repeated calls to the underlying linear solver's iterate() routine until the problem has been solved (as decided by the solver manager) or the solver manager decides to quit.
This method calls TFQMRIter::iterate(), which will return either because a specially constructed status test evaluates to Passed or an std::exception is thrown.
A return from TFQMRIter::iterate() signifies one of the following scenarios:
- the maximum number of iterations has been exceeded. In this scenario, the current solutions to the linear system will be placed in the linear problem and return Unconverged.
- global convergence has been met. In this case, the current solutions to the linear system will be placed in the linear problem and the solver manager will return Converged
- Returns
- ReturnType specifying:
- Converged: the linear problem was solved to the specification required by the solver manager.
- Unconverged: the linear problem was not solved to the specification desired by the solver manager.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 644 of file BelosTFQMRSolMgr.hpp.
◆ description()
template<class ScalarType , class MV , class OP >
◆ checkStatusTest()
template<class ScalarType , class MV , class OP >
◆ problem_
template<class ScalarType, class MV, class OP>
◆ printer_
template<class ScalarType, class MV, class OP>
◆ outputStream_
template<class ScalarType, class MV, class OP>
◆ sTest_
template<class ScalarType, class MV, class OP>
◆ maxIterTest_
template<class ScalarType, class MV, class OP>
◆ convTest_
template<class ScalarType, class MV, class OP>
◆ expConvTest_
template<class ScalarType, class MV, class OP>
◆ impConvTest_
template<class ScalarType, class MV, class OP>
◆ outputTest_
template<class ScalarType, class MV, class OP>
◆ params_
template<class ScalarType, class MV, class OP>
◆ maxIters_default_
template<class ScalarType, class MV, class OP>
◆ expResTest_default_
template<class ScalarType, class MV, class OP>
◆ verbosity_default_
template<class ScalarType, class MV, class OP>
◆ outputStyle_default_
template<class ScalarType, class MV, class OP>
◆ outputFreq_default_
template<class ScalarType, class MV, class OP>
◆ impResScale_default_
template<class ScalarType, class MV, class OP>
constexpr const char* Belos::TFQMRSolMgr< ScalarType, MV, OP >::impResScale_default_ = "Norm of Preconditioned Initial Residual" |
|
staticprivate |
◆ expResScale_default_
template<class ScalarType, class MV, class OP>
constexpr const char* Belos::TFQMRSolMgr< ScalarType, MV, OP >::expResScale_default_ = "Norm of Initial Residual" |
|
staticprivate |
◆ label_default_
template<class ScalarType, class MV, class OP>
◆ outputStream_default_
template<class ScalarType, class MV, class OP>
constexpr std::ostream* Belos::TFQMRSolMgr< ScalarType, MV, OP >::outputStream_default_ = &std::cout |
|
staticprivate |
◆ convtol_
template<class ScalarType, class MV, class OP>
◆ impTolScale_
template<class ScalarType, class MV, class OP>
◆ achievedTol_
template<class ScalarType, class MV, class OP>
◆ maxIters_
template<class ScalarType, class MV, class OP>
◆ numIters_
template<class ScalarType, class MV, class OP>
◆ verbosity_
template<class ScalarType, class MV, class OP>
◆ outputStyle_
template<class ScalarType, class MV, class OP>
◆ outputFreq_
template<class ScalarType, class MV, class OP>
◆ blockSize_
template<class ScalarType, class MV, class OP>
◆ expResTest_
template<class ScalarType, class MV, class OP>
◆ impResScale_
template<class ScalarType, class MV, class OP>
◆ expResScale_
template<class ScalarType, class MV, class OP>
◆ label_
template<class ScalarType, class MV, class OP>
◆ timerSolve_
template<class ScalarType, class MV, class OP>
◆ isSet_
template<class ScalarType, class MV, class OP>
◆ isSTSet_
template<class ScalarType, class MV, class OP>
The documentation for this class was generated from the following file: