Belos Package Browser (Single Doxygen Collection) Development
Belos::SolverManager< ScalarType, MV, OP > Class Template Reference

The Belos::SolverManager is a templated virtual base class that defines the basic interface that any solver manager will support. More...

#include <BelosSolverManager.hpp>

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

List of all members.

Constructors/Destructor

 SolverManager ()
 Empty constructor.
virtual ~SolverManager ()
 Destructor.

Accessor methods

virtual const LinearProblem
< ScalarType, MV, OP > & 
getProblem () const =0
 Return a reference to the linear problem being solved by this solver manager.
virtual Teuchos::RCP< const
Teuchos::ParameterList
getValidParameters () const =0
 Return the valid parameters for this solver manager.
virtual Teuchos::RCP< const
Teuchos::ParameterList
getCurrentParameters () const =0
 Return the current parameters being used for this solver manager.
virtual Teuchos::ScalarTraits
< ScalarType >::magnitudeType 
achievedTol () const
 Tolerance achieved by the last solve() invocation.
virtual int getNumIters () const =0
 Get the iteration count for the most recent call to solve().
virtual bool isLOADetected () const =0
 Returns whether a loss of accuracy was detected in the solver.

Set methods

virtual void setProblem (const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &problem)=0
 Set the linear problem that needs to be solved.
virtual void setParameters (const Teuchos::RCP< Teuchos::ParameterList > &params)=0
 Set the parameters to use when solving the linear problem.
virtual void setUserConvStatusTest (const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &userConvStatusTest)
 Set user-defined convergence status test.

Reset methods

virtual void reset (const ResetType type)=0
 Reset the solver manager.

Solver application methods

virtual ReturnType solve ()=0
 Iterate until the status test tells us to stop.

Detailed Description

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

The Belos::SolverManager is a templated virtual base class that defines the basic interface that any solver manager will support.

Definition at line 71 of file BelosSolverManager.hpp.


Constructor & Destructor Documentation

template<class ScalarType, class MV, class OP>
Belos::SolverManager< ScalarType, MV, OP >::SolverManager ( ) [inline]

Empty constructor.

Definition at line 79 of file BelosSolverManager.hpp.

template<class ScalarType, class MV, class OP>
virtual Belos::SolverManager< ScalarType, MV, OP >::~SolverManager ( ) [inline, virtual]

Destructor.

Definition at line 82 of file BelosSolverManager.hpp.


Member Function Documentation

template<class ScalarType, class MV, class OP>
virtual const LinearProblem<ScalarType,MV,OP>& Belos::SolverManager< ScalarType, MV, OP >::getProblem ( ) const [pure virtual]
template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const Teuchos::ParameterList> Belos::SolverManager< ScalarType, MV, OP >::getValidParameters ( ) const [pure virtual]
template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const Teuchos::ParameterList> Belos::SolverManager< ScalarType, MV, OP >::getCurrentParameters ( ) const [pure virtual]
template<class ScalarType, class MV, class OP>
virtual Teuchos::ScalarTraits<ScalarType>::magnitudeType Belos::SolverManager< ScalarType, MV, OP >::achievedTol ( ) const [inline, virtual]

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.

The default implementation throws std::runtime_error. This is in case the idea of a single convergence tolerance doesn't make sense for some solvers. It also serves as a gradual upgrade path (since this method is a later addition to the SolverManager interface).

Reimplemented in Belos::BlockCGSolMgr< ScalarType, MV, OP >, Belos::BlockGmresSolMgr< ScalarType, MV, OP >, Belos::GCRODRSolMgr< ScalarType, MV, OP >, Belos::MinresSolMgr< ScalarType, MV, OP >, Belos::PCPGSolMgr< ScalarType, MV, OP >, Belos::PseudoBlockGmresSolMgr< ScalarType, MV, OP >, Belos::RCGSolMgr< ScalarType, MV, OP >, and Belos::TFQMRSolMgr< ScalarType, MV, OP >.

Definition at line 108 of file BelosSolverManager.hpp.

template<class ScalarType, class MV, class OP>
virtual int Belos::SolverManager< ScalarType, MV, OP >::getNumIters ( ) const [pure virtual]
template<class ScalarType, class MV, class OP>
virtual bool Belos::SolverManager< ScalarType, MV, OP >::isLOADetected ( ) const [pure virtual]
template<class ScalarType, class MV, class OP>
virtual void Belos::SolverManager< ScalarType, MV, OP >::setProblem ( const Teuchos::RCP< LinearProblem< ScalarType, MV, OP > > &  problem) [pure virtual]
template<class ScalarType, class MV, class OP>
virtual void Belos::SolverManager< ScalarType, MV, OP >::setParameters ( const Teuchos::RCP< Teuchos::ParameterList > &  params) [pure virtual]

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.

Implemented in Belos::BlockCGSolMgr< ScalarType, MV, OP >, Belos::BlockGCRODRSolMgr< ScalarType, MV, OP >, Belos::BlockGmresSolMgr< ScalarType, MV, OP >, Belos::GCRODRSolMgr< ScalarType, MV, OP >, Belos::GmresPolySolMgr< ScalarType, MV, OP >, Belos::GmresSolMgr< Scalar, MV, OP >, Belos::LSQRSolMgr< ScalarType, MV, OP >, Belos::MinresSolMgr< ScalarType, MV, OP >, Belos::PCPGSolMgr< ScalarType, MV, OP >, Belos::PseudoBlockCGSolMgr< ScalarType, MV, OP >, Belos::PseudoBlockGmresSolMgr< ScalarType, MV, OP >, Belos::RCGSolMgr< ScalarType, MV, OP >, and Belos::TFQMRSolMgr< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Belos::SolverManager< ScalarType, MV, OP >::setUserConvStatusTest ( const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &  userConvStatusTest) [inline, virtual]

Set user-defined convergence status test.

Reimplemented in Belos::GmresSolMgr< Scalar, MV, OP >, and Belos::PseudoBlockGmresSolMgr< ScalarType, MV, OP >.

Definition at line 141 of file BelosSolverManager.hpp.

template<class ScalarType, class MV, class OP>
virtual void Belos::SolverManager< ScalarType, MV, OP >::reset ( const ResetType  type) [pure virtual]
template<class ScalarType, class MV, class OP>
virtual ReturnType Belos::SolverManager< ScalarType, MV, OP >::solve ( ) [pure virtual]

Iterate until the status test tells us to stop.

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 via the status test(s)), or the solver manager decides to quit.

Returns:
A Belos::ReturnType enum specifying:
  • Belos::Converged: the linear problem was solved to the specification required by the solver manager.
  • Belos::Unconverged: the linear problem was not solved to the specification desired by the solver manager.

Implemented in Belos::BlockCGSolMgr< ScalarType, MV, OP >, Belos::BlockGCRODRSolMgr< ScalarType, MV, OP >, Belos::BlockGmresSolMgr< ScalarType, MV, OP >, Belos::GCRODRSolMgr< ScalarType, MV, OP >, Belos::GmresPolySolMgr< ScalarType, MV, OP >, Belos::GmresSolMgr< Scalar, MV, OP >, Belos::LSQRSolMgr< ScalarType, MV, OP >, Belos::MinresSolMgr< ScalarType, MV, OP >, Belos::PCPGSolMgr< ScalarType, MV, OP >, Belos::PseudoBlockCGSolMgr< ScalarType, MV, OP >, Belos::PseudoBlockGmresSolMgr< ScalarType, MV, OP >, Belos::RCGSolMgr< ScalarType, MV, OP >, and Belos::TFQMRSolMgr< ScalarType, MV, OP >.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines