Anasazi
Version of the Day
|
#include <AnasaziSIRTR.hpp>
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 ¶ms) | |
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 ¶ms, 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 ¶ms) | |
Basic Constructor. More... | |
virtual | ~Eigensolver () |
Destructor. More... | |
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.
Definition at line 86 of file AnasaziSIRTR.hpp.
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:
MagnitudeType
specifying the size of the implicit trust-region radius.int
specifying the block size used by the algorithm. This can also be specified using the setBlockSize() method.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.MagnitudeType
specifing the rate of convergence for the linear convergence regime. Default: 0.1MagnitudeType
specifing the order of convergence for the linear convergence regime. theta implies a convergence order of theta+1. Default: 1.0 Definition at line 182 of file AnasaziSIRTR.hpp.
|
inlinevirtual |
SIRTR destructor
Definition at line 112 of file AnasaziSIRTR.hpp.
|
virtual |
Impemements Eigensolver. The outer IRTR iteration. See RTRBase::iterate().
Implements Anasazi::RTRBase< ScalarType, MV, OP >.
Definition at line 786 of file AnasaziSIRTR.hpp.
|
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 1137 of file AnasaziSIRTR.hpp.