Belos Package Browser (Single Doxygen Collection)
Development
|
MINRES linear solver solution manager. More...
#include <BelosMinresSolMgr.hpp>
Private Types | |
typedef MultiVecTraits < ScalarType, MV > | MVT |
typedef OperatorTraits < ScalarType, MV, OP > | OPT |
typedef Teuchos::ScalarTraits < ScalarType > | SCT |
typedef Teuchos::ScalarTraits < ScalarType >::magnitudeType | MagnitudeType |
typedef Teuchos::ScalarTraits < MagnitudeType > | MT |
Private Attributes | |
Teuchos::RCP< LinearProblem < ScalarType, MV, OP > > | problem_ |
Linear problem to solve. More... | |
Teuchos::RCP< OutputManager < ScalarType > > | printer_ |
Output manager. More... | |
Teuchos::RCP< std::ostream > | outputStream_ |
Teuchos::RCP< StatusTest < ScalarType, MV, OP > > | sTest_ |
The full status test. More... | |
Teuchos::RCP < StatusTestMaxIters < ScalarType, MV, OP > > | maxIterTest_ |
The status test for maximum iteration count. More... | |
Teuchos::RCP< StatusTest < ScalarType, MV, OP > > | convTest_ |
The combined status test for convergence. More... | |
Teuchos::RCP < StatusTestGenResNorm < ScalarType, MV, OP > > | impConvTest_ |
The implicit (a.k.a. More... | |
Teuchos::RCP < StatusTestGenResNorm < ScalarType, MV, OP > > | expConvTest_ |
The explicit residual norm test. More... | |
Teuchos::RCP< StatusTestOutput < ScalarType, MV, OP > > | outputTest_ |
The "status test" that handles output. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | defaultParams_ |
List of default parameters. More... | |
Teuchos::RCP < Teuchos::ParameterList > | params_ |
List of current parameters. More... | |
MagnitudeType | convtol_ |
Current relative residual 2-norm convergence tolerance. More... | |
MagnitudeType | achievedTol_ |
Tolerance achieved by the last solve() invocation. More... | |
int | maxIters_ |
Maximum number of iterations before stopping. More... | |
int | numIters_ |
Current number of iterations. More... | |
int | blockSize_ |
Current block size (i.e., number of right-hand sides): always 1 (one). More... | |
int | verbosity_ |
Current output verbosity. More... | |
int | outputStyle_ |
Current output style. More... | |
int | outputFreq_ |
Current frequency of output. More... | |
std::string | label_ |
Timer label. More... | |
Teuchos::RCP< Teuchos::Time > | timerSolve_ |
Total time to solution. More... | |
bool | parametersSet_ |
Whether the solver manager's parameters have been set. More... | |
MinresSolMgr Exceptions | |
static Teuchos::RCP< const Teuchos::ParameterList > | defaultParameters () |
List of valid MINRES parameters and their default values. More... | |
static void | validateProblem (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem) |
Validate the given linear problem. More... | |
Constructors/Destructor | |
MinresSolMgr () | |
Default constructor. More... | |
MinresSolMgr (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< Teuchos::ParameterList > ¶ms) | |
Basic constructor for MinresSolMgr. More... | |
virtual | ~MinresSolMgr () |
Destructor. More... | |
Teuchos::RCP< SolverManager < ScalarType, MV, OP > > | clone () const override |
clone for Inverted Injection (DII) More... | |
Accessor methods | |
const LinearProblem < ScalarType, MV, OP > & | getProblem () const override |
Return the linear problem to be solved. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const override |
Return the list of default parameters for this object. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | getCurrentParameters () const override |
Return the list of current parameters for this object. More... | |
Teuchos::Array< Teuchos::RCP < Teuchos::Time > > | getTimers () const |
Return all timers for this object. More... | |
MagnitudeType | achievedTol () const override |
Tolerance achieved by the last solve() invocation. More... | |
int | getNumIters () const override |
Get the iteration count for the most recent call to solve() . More... | |
bool | isLOADetected () const override |
Whether a loss of accuracy was detected in the solver. More... | |
Set methods (overridden from \c SolverManager) | |
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 to use when solving the linear problem. More... | |
Reset methods (overridden from \c SolverManager) | |
void | reset (const ResetType type) override |
Reset the solver manager. More... | |
Solver application methods (overridden from \c SolverManager) | |
ReturnType | solve () override |
Iterate until the status test tells us to stop. More... | |
Overridden from Teuchos::Describable | |
std::string | description () const override |
Additional Inherited Members | |
Public Member Functions inherited from Belos::SolverManager< ScalarType, MV, OP > | |
SolverManager () | |
Empty constructor. More... | |
virtual | ~SolverManager () |
Destructor. More... | |
virtual void | setUserConvStatusTest (const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &, const typename StatusTestCombo< ScalarType, MV, OP >::ComboType &=StatusTestCombo< ScalarType, MV, OP >::SEQ) |
Set user-defined convergence status test. More... | |
virtual void | setDebugStatusTest (const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &) |
Set user-defined debug status test. More... | |
Public Member Functions inherited from Teuchos::Describable | |
DescribableStreamManipulatorState | describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default) |
std::ostream & | operator<< (std::ostream &os, const DescribableStreamManipulatorState &d) |
virtual void | describe (FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
virtual | ~Describable () |
LabeledObject () | |
virtual | ~LabeledObject () |
virtual void | setObjectLabel (const std::string &objectLabel) |
virtual std::string | getObjectLabel () const |
Static Public Attributes inherited from Teuchos::Describable | |
static const EVerbosityLevel | verbLevel_default |
MINRES linear solver solution manager.
The Minimal Residual Method (MINRES) is a Krylov subspace method for solving symmetric (in real arithmetic, or Hermitian in complex arithmetic), nonsingular, but possibly indefinite linear systems
Definition at line 115 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 118 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 119 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 120 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 121 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 122 of file BelosMinresSolMgr.hpp.
Belos::MinresSolMgr< ScalarType, MV, OP >::MinresSolMgr | ( | ) |
Default constructor.
This constructor takes no arguments and sets the default values for the solver. The linear problem must be passed in using setProblem() before solve() is called on this object, otherwise an exception is thrown. The solver's parameters (which this constructor sets to their default values) may be changed using setParameters().
Definition at line 457 of file BelosMinresSolMgr.hpp.
Belos::MinresSolMgr< ScalarType, MV, OP >::MinresSolMgr | ( | const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > & | problem, |
const Teuchos::RCP< Teuchos::ParameterList > & | params | ||
) |
Basic constructor for MinresSolMgr.
problem | [in/out] The LinearProblem to be solved |
params | [in/out] Parameter list of options for the solver manager. Parameters not provided will be filled in with default values. These are the options accepted by the solver manager:
|
We accept the "Num Blocks" parameter for compatibility with other Belos solvers, but ignore it, since it is not relevant to MINRES. ("Num Blocks" specifies the restart length, but our MINRES implementation does not restart.)
Definition at line 474 of file BelosMinresSolMgr.hpp.
|
inlinevirtual |
Destructor.
Definition at line 187 of file BelosMinresSolMgr.hpp.
|
static |
List of valid MINRES parameters and their default values.
One way to set up this solver manager with nondefault parameters, is to make a deep non-const copy of the default parameters, and change the parameters you want to change.
Definition at line 404 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
clone for Inverted Injection (DII)
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 190 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Return the linear problem to be solved.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 199 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Return the list of default parameters for this object.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 204 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Return the list of current parameters for this object.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 212 of file BelosMinresSolMgr.hpp.
|
inline |
Return all timers for this object.
Currently only one timer is being used, which is the total time spent in the solve()
routine. Thus, the returned Array currently has only one element.
setParameters()
has not yet been called, or if you change the timer label, that invalidates the pointer timer(s). Definition at line 225 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Tolerance achieved by the last solve()
invocation.
This is the maximum over all right-hand sides' achieved convergence tolerances, and is set whether or not the solve actually managed to achieve the desired convergence tolerance.
Reimplemented from Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 234 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Get the iteration count for the most recent call to solve()
.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 239 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Whether a loss of accuracy was detected in the solver.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 248 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Set the linear problem that needs to be solved.
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 256 of file BelosMinresSolMgr.hpp.
|
overridevirtual |
Set the parameters to use when solving the linear problem.
params | [in/out] List of parameters to use when solving the linear problem. This list will be modified as necessary to include default parameters that need not be provided. If params is null, then this method uses default parameters. |
getValidParameters()
has all the parameters that the solver understands, possibly including human-readable documentation and validators. Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 512 of file BelosMinresSolMgr.hpp.
|
inlineoverridevirtual |
Reset the solver manager.
Reset the solver manager in a way specified by the ResetType
parameter. 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 270 of file BelosMinresSolMgr.hpp.
|
overridevirtual |
Iterate until the status test tells us to stop.
This method implements SolverManager::solve() (which see).
MINRES' implementation of this method invokes MinresIter::iterate()
, which will return either because a specially constructed status test that evaluates to Passed, or an std::exception is thrown.
A return from MinresIter::iterate() signifies one of the following scenarios:
Implements Belos::SolverManager< ScalarType, MV, OP >.
Definition at line 675 of file BelosMinresSolMgr.hpp.
|
overridevirtual |
Reimplemented from Teuchos::Describable.
Definition at line 839 of file BelosMinresSolMgr.hpp.
|
staticprivate |
Validate the given linear problem.
We do this by raising std::invalid_argument (with an informative message) if the problem is null or its essential components are null.
Definition at line 490 of file BelosMinresSolMgr.hpp.
|
private |
Linear problem to solve.
Definition at line 311 of file BelosMinresSolMgr.hpp.
|
private |
Output manager.
Definition at line 314 of file BelosMinresSolMgr.hpp.
|
private |
Definition at line 315 of file BelosMinresSolMgr.hpp.
|
private |
The full status test.
sTest_ is an OR combination of maxIterTest_ and convTest_. If you reallocate either of these, you have to give them to sTest_ again. If you reallocate sTest_, you have to tell outputTest_.
Definition at line 323 of file BelosMinresSolMgr.hpp.
|
private |
The status test for maximum iteration count.
If you reallocate this, sTest_ needs the new RCP.
Definition at line 328 of file BelosMinresSolMgr.hpp.
|
private |
The combined status test for convergence.
If you reallocate this, sTest_ needs the new RCP.
Definition at line 333 of file BelosMinresSolMgr.hpp.
|
private |
The implicit (a.k.a.
"recursive") residual norm test.
If you reallocate this, convTest_ needs the new RCP.
Definition at line 338 of file BelosMinresSolMgr.hpp.
|
private |
The explicit residual norm test.
If you reallocate this, convTest_ needs the new RCP.
Definition at line 343 of file BelosMinresSolMgr.hpp.
|
private |
The "status test" that handles output.
This object keeps a pointer to printer_ and sTest_. If you reallocate either of them, outputTest_ needs to know.
Definition at line 349 of file BelosMinresSolMgr.hpp.
|
mutableprivate |
List of default parameters.
This is declared "mutable" because it is computed on demand.
Definition at line 354 of file BelosMinresSolMgr.hpp.
|
private |
List of current parameters.
Definition at line 357 of file BelosMinresSolMgr.hpp.
|
private |
Current relative residual 2-norm convergence tolerance.
Definition at line 360 of file BelosMinresSolMgr.hpp.
|
private |
Tolerance achieved by the last solve()
invocation.
Definition at line 363 of file BelosMinresSolMgr.hpp.
|
private |
Maximum number of iterations before stopping.
Definition at line 366 of file BelosMinresSolMgr.hpp.
|
private |
Current number of iterations.
Definition at line 369 of file BelosMinresSolMgr.hpp.
|
private |
Current block size (i.e., number of right-hand sides): always 1 (one).
Definition at line 372 of file BelosMinresSolMgr.hpp.
|
private |
Current output verbosity.
Definition at line 375 of file BelosMinresSolMgr.hpp.
|
private |
Current output style.
Definition at line 378 of file BelosMinresSolMgr.hpp.
|
private |
Current frequency of output.
Definition at line 381 of file BelosMinresSolMgr.hpp.
|
private |
Timer label.
Definition at line 384 of file BelosMinresSolMgr.hpp.
|
private |
Total time to solution.
Definition at line 387 of file BelosMinresSolMgr.hpp.
|
private |
Whether the solver manager's parameters have been set.
Definition at line 390 of file BelosMinresSolMgr.hpp.