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

#include <AnasaziSIRTR.hpp>

Inheritance diagram for Anasazi::SIRTR< ScalarType, MV, OP >:
Anasazi::RTRBase< ScalarType, MV, OP > Anasazi::Eigensolver< ScalarType, MV, OP >

Public Member Functions

Constructor/Destructor
 SIRTR (const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > &sorter, const Teuchos::RCP< OutputManager< ScalarType > > &printer, const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &tester, const Teuchos::RCP< GenOrthoManager< ScalarType, MV, OP > > &ortho, Teuchos::ParameterList &params)
 SIRTR constructor with eigenproblem, solver utilities, and parameter list of solver options. More...
 
virtual ~SIRTR ()
 SIRTR destructor More...
 
Solver methods
void iterate ()
 Impemements Eigensolver. The outer IRTR iteration. See RTRBase::iterate(). More...
 
Output methods
void currentStatus (std::ostream &os)
 Impemements Eigensolver. This method requests that the solver print out its current status to screen. More...
 
- Public Member Functions inherited from Anasazi::RTRBase< ScalarType, MV, OP >
 RTRBase (const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > &sorter, const Teuchos::RCP< OutputManager< ScalarType > > &printer, const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &tester, const Teuchos::RCP< GenOrthoManager< ScalarType, MV, OP > > &ortho, Teuchos::ParameterList &params, const std::string &solverLabel, bool skinnySolver)
 RTRBase constructor with eigenproblem, solver utilities, and parameter list of solver options. More...
 
virtual ~RTRBase ()
 RTRBase destructor More...
 
void initialize (RTRState< ScalarType, MV > &newstate)
 Initialize the solver to an iterate, optionally providing the Ritz values and residual. More...
 
void initialize ()
 Initialize the solver with the initial vectors from the eigenproblem or random data. More...
 
bool isInitialized () const
 Indicates whether the solver has been initialized or not. More...
 
RTRState< ScalarType, MV > getState () const
 Get the current state of the eigensolver. More...
 
int getNumIters () const
 Get the current iteration count. More...
 
void resetNumIters ()
 Reset the iteration count. More...
 
Teuchos::RCP< const MV > getRitzVectors ()
 Get the Ritz vectors from the previous iteration. More...
 
std::vector< Value< ScalarType > > getRitzValues ()
 Get the Ritz values from the previous iteration. More...
 
std::vector< int > getRitzIndex ()
 Get the index used for extracting Ritz vectors from getRitzVectors(). More...
 
std::vector< typename
Teuchos::ScalarTraits
< ScalarType >::magnitudeType > 
getResNorms ()
 Get the current residual norms. More...
 
std::vector< typename
Teuchos::ScalarTraits
< ScalarType >::magnitudeType > 
getRes2Norms ()
 Get the current residual 2-norms. More...
 
std::vector< typename
Teuchos::ScalarTraits
< ScalarType >::magnitudeType > 
getRitzRes2Norms ()
 Get the 2-norms of the Ritz residuals. More...
 
int getCurSubspaceDim () const
 Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues. More...
 
int getMaxSubspaceDim () const
 Get the maximum dimension allocated for the search subspace. For RTR, this always returns getBlockSize(). More...
 
void setStatusTest (Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test)
 Set a new StatusTest for the solver. More...
 
Teuchos::RCP< StatusTest
< ScalarType, MV, OP > > 
getStatusTest () const
 Get the current StatusTest used by the solver. More...
 
const Eigenproblem< ScalarType,
MV, OP > & 
getProblem () const
 Get a constant reference to the eigenvalue problem. More...
 
void setBlockSize (int blockSize)
 Set the blocksize to be used by the iterative solver in solving this eigenproblem. More...
 
int getBlockSize () const
 Get the blocksize to be used by the iterative solver in solving this eigenproblem. More...
 
void setAuxVecs (const Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)
 Set the auxiliary vectors for the solver. More...
 
Teuchos::Array< Teuchos::RCP
< const MV > > 
getAuxVecs () const
 Get the current auxiliary vectors. More...
 
- Public Member Functions inherited from Anasazi::Eigensolver< ScalarType, MV, OP >
 Eigensolver ()
 Default Constructor. More...
 
 Eigensolver (const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< SortManager< ScalarType > > &sorter, const Teuchos::RCP< OutputManager< ScalarType > > &printer, const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &tester, const Teuchos::RCP< OrthoManager< ScalarType, MV > > &ortho, Teuchos::ParameterList &params)
 Basic Constructor. More...
 
virtual ~Eigensolver ()
 Destructor. More...
 

Detailed Description

template<class ScalarType, class MV, class OP>
class Anasazi::SIRTR< ScalarType, MV, OP >

SIRTR ("skinny IRTR") is a non-caching, lower-memory implementation of the Implicit Riemannian Trust-Region (IRTR) eigensolver.

The solver uses between 6 and 8 blocks of vectors, compared to the requirements by IRTR of 10 to 13 blocks of vectors. The base requirement is 6 blocks of vectors, where a block of vectors contains a number of vectors equal to the block size specified for the solver (see RTRBase::getBlockSize()). Additional blocks are required when solving a generalized eigenvalue problem or when using a preconditioiner.

For more information, see RTRBase.

Author
Chris Baker

Definition at line 54 of file AnasaziSIRTR.hpp.

Constructor & Destructor Documentation

template<class ScalarType , class MV , class OP >
Anasazi::SIRTR< ScalarType, MV, OP >::SIRTR ( const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > &  problem,
const Teuchos::RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > &  sorter,
const Teuchos::RCP< OutputManager< ScalarType > > &  printer,
const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &  tester,
const Teuchos::RCP< GenOrthoManager< ScalarType, MV, OP > > &  ortho,
Teuchos::ParameterList params 
)

SIRTR constructor with eigenproblem, solver utilities, and parameter list of solver options.

This constructor takes pointers required by the eigensolver, in addition to a parameter list of options for the eigensolver. These options include the following:

  • "Rho Prime" - an MagnitudeType specifying the size of the implicit trust-region radius.
  • "Block Size" - an int specifying the block size used by the algorithm. This can also be specified using the setBlockSize() method.
  • "Leftmost" - a bool specifying whether the solver is computing the leftmost ("SR") or rightmost ("LR") eigenvalues. Default: true. This must be in accord with the SortManager pass to the constructor.
  • "Kappa Convergence" - a MagnitudeType specifing the rate of convergence for the linear convergence regime. Default: 0.1
  • "Theta Convergence" - a MagnitudeType specifing the order of convergence for the linear convergence regime. theta implies a convergence order of theta+1. Default: 1.0

Definition at line 150 of file AnasaziSIRTR.hpp.

template<class ScalarType , class MV , class OP >
virtual Anasazi::SIRTR< ScalarType, MV, OP >::~SIRTR ( )
inlinevirtual

SIRTR destructor

Definition at line 80 of file AnasaziSIRTR.hpp.

Member Function Documentation

template<class ScalarType , class MV , class OP >
void Anasazi::SIRTR< ScalarType, MV, OP >::iterate ( )
virtual

Impemements Eigensolver. The outer IRTR iteration. See RTRBase::iterate().

Implements Anasazi::RTRBase< ScalarType, MV, OP >.

Definition at line 754 of file AnasaziSIRTR.hpp.

template<class ScalarType , class MV , class OP >
void Anasazi::SIRTR< ScalarType, MV, OP >::currentStatus ( std::ostream &  os)
virtual

Impemements Eigensolver. This method requests that the solver print out its current status to screen.

Reimplemented from Anasazi::RTRBase< ScalarType, MV, OP >.

Definition at line 1105 of file AnasaziSIRTR.hpp.


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