Belos  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members
Belos::MinresSolMgr< ScalarType, MV, OP > Class Template Reference

MINRES linear solver solution manager. More...

#include <BelosMinresSolMgr.hpp>

Inheritance diagram for Belos::MinresSolMgr< ScalarType, MV, OP >:
Inheritance graph
[legend]

Public Member Functions

Constructors/Destructor
 MinresSolMgr ()
 Default constructor. More...
 
 MinresSolMgr (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< Teuchos::ParameterList > &params)
 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 > &params) 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
 
- 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
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
 
DescribableStreamManipulatorState describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default)
 
std::ostream & operator<< (std::ostream &os, const DescribableStreamManipulatorState &d)
 

MinresSolMgr Exceptions

static Teuchos::RCP< const
Teuchos::ParameterList
defaultParameters ()
 List of valid MINRES parameters and their default values. More...
 

Additional Inherited Members

- Static Public Attributes inherited from Teuchos::Describable
static const EVerbosityLevel verbLevel_default
 

Detailed Description

template<class ScalarType, class MV, class OP>
class Belos::MinresSolMgr< ScalarType, MV, OP >

MINRES linear solver solution manager.

Author
Nico Schl"omer

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.

Constructor & Destructor Documentation

template<class ScalarType , class MV , class OP >
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.

template<class ScalarType , class MV , class OP >
Belos::MinresSolMgr< ScalarType, MV, OP >::MinresSolMgr ( const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &  problem,
const Teuchos::RCP< Teuchos::ParameterList > &  params 
)

Basic constructor for MinresSolMgr.

Parameters
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:
  • "Block Size" - an int specifying the block size to be used by the underlying MINRES solver. Default: 1 (which is the only valid value!)
  • "Convergence Tolerance" - a MagnitudeType specifying the level that residual norms must reach to decide convergence. Default value: 1e-8.
  • "Maximum Iterations" - an int specifying the maximum number of iterations the underlying solver is allowed to perform. Default: 1000
  • "Verbosity" - a sum of MsgType (stored as an int) specifying the verbosity. Default value: Belos::Errors
  • "Output Style" - a OutputType specifying the style of output. Default value: Belos::General
  • "Output Stream" - a reference-counted pointer to the output stream where all solver output is sent. Default value: Teuchos::rcp(&std::cout,false)
  • "Output Frequency" - an int specifying how often (in terms of number of iterations) intermediate convergence information should be written to the output stream. Default value: -1 (which means no intermediate convergence information is ever written to the output stream)
  • "Timer Label" - an std::string to use as a prefix for the timer labels. Default value: "Belos"

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.

template<class ScalarType , class MV , class OP >
virtual Belos::MinresSolMgr< ScalarType, MV, OP >::~MinresSolMgr ( )
inlinevirtual

Destructor.

Definition at line 187 of file BelosMinresSolMgr.hpp.

Member Function Documentation

template<class ScalarType , class MV , class OP >
Teuchos::RCP< const Teuchos::ParameterList > Belos::MinresSolMgr< ScalarType, MV, OP >::defaultParameters ( )
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.

Note
This is a class ("static") method, so that it can be called before you have constructed a MinresSolMgr object (useful for you, so you can have valid parameters before constructing one), or within the MinresSolMgr constructor (useful for me, so I can set default parameters).

Definition at line 404 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
Teuchos::RCP<SolverManager<ScalarType, MV, OP> > Belos::MinresSolMgr< ScalarType, MV, OP >::clone ( ) const
inlineoverridevirtual

clone for Inverted Injection (DII)

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 190 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
const LinearProblem<ScalarType,MV,OP>& Belos::MinresSolMgr< ScalarType, MV, OP >::getProblem ( ) const
inlineoverridevirtual

Return the linear problem to be solved.

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 199 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
Teuchos::RCP<const Teuchos::ParameterList> Belos::MinresSolMgr< ScalarType, MV, OP >::getValidParameters ( ) const
inlineoverridevirtual

Return the list of default parameters for this object.

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 204 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
Teuchos::RCP<const Teuchos::ParameterList> Belos::MinresSolMgr< ScalarType, MV, OP >::getCurrentParameters ( ) const
inlineoverridevirtual

Return the list of current parameters for this object.

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 212 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
Teuchos::Array<Teuchos::RCP<Teuchos::Time> > Belos::MinresSolMgr< ScalarType, MV, OP >::getTimers ( ) const
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.

Warning
If 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.

template<class ScalarType , class MV , class OP >
MagnitudeType Belos::MinresSolMgr< ScalarType, MV, OP >::achievedTol ( ) const
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.

template<class ScalarType , class MV , class OP >
int Belos::MinresSolMgr< ScalarType, MV, OP >::getNumIters ( ) const
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.

template<class ScalarType , class MV , class OP >
bool Belos::MinresSolMgr< ScalarType, MV, OP >::isLOADetected ( ) const
inlineoverridevirtual

Whether a loss of accuracy was detected in the solver.

Warning
This implementation of MINRES does not currently attempt to detect a loss of accuracy in the solver; thus we always return false (for now).

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 248 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
void Belos::MinresSolMgr< ScalarType, MV, OP >::setProblem ( const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &  problem)
inlineoverridevirtual

Set the linear problem that needs to be solved.

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 256 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
void Belos::MinresSolMgr< ScalarType, MV, OP >::setParameters ( const Teuchos::RCP< Teuchos::ParameterList > &  params)
overridevirtual

Set the parameters to use when solving the linear problem.

Parameters
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.
Note
The ParameterList returned by 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.

template<class ScalarType , class MV , class OP >
void Belos::MinresSolMgr< ScalarType, MV, OP >::reset ( const ResetType  type)
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.

template<class ScalarType , class MV , class OP >
ReturnType Belos::MinresSolMgr< ScalarType, MV, OP >::solve ( )
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:

  • 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.

Implements Belos::SolverManager< ScalarType, MV, OP >.

Definition at line 675 of file BelosMinresSolMgr.hpp.

template<class ScalarType , class MV , class OP >
std::string Belos::MinresSolMgr< ScalarType, MV, OP >::description ( ) const
overridevirtual

Reimplemented from Teuchos::Describable.

Definition at line 839 of file BelosMinresSolMgr.hpp.


The documentation for this class was generated from the following file:

Generated on Fri Jun 5 2020 10:21:00 for Belos by doxygen 1.8.5