Anasazi
Version of the Day
|
The Eigensolver is a templated virtual base class that defines the basic interface that any eigensolver will support. More...
#include <AnasaziEigensolverDecl.hpp>
Public Member Functions | |
Constructors/Destructor | |
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... | |
Solver methods | |
virtual void | iterate ()=0 |
This method performs eigensolvers iterations until the status test indicates the need to stop or an error occurs (in which case, an exception is thrown). More... | |
virtual void | initialize ()=0 |
Initialize the solver with the initial vectors from the eigenproblem or random data. More... | |
Status methods | |
virtual int | getNumIters () const =0 |
Get the current iteration count. More... | |
virtual void | resetNumIters ()=0 |
Reset the iteration count. More... | |
virtual Teuchos::RCP< const MV > | getRitzVectors ()=0 |
Get the Ritz vectors from the previous iteration. These are indexed using getRitzIndex(). More... | |
virtual std::vector< Value < ScalarType > > | getRitzValues ()=0 |
Get the Ritz values from the previous iteration. More... | |
virtual std::vector< int > | getRitzIndex ()=0 |
Get the index used for indexing the compressed storage used for Ritz vectors for real, non-Hermitian problems. More... | |
virtual std::vector< typename Teuchos::ScalarTraits < ScalarType >::magnitudeType > | getResNorms ()=0 |
Get the current residual norms. More... | |
virtual std::vector< typename Teuchos::ScalarTraits < ScalarType >::magnitudeType > | getRes2Norms ()=0 |
virtual std::vector< typename Teuchos::ScalarTraits < ScalarType >::magnitudeType > | getRitzRes2Norms ()=0 |
virtual int | getCurSubspaceDim () const =0 |
Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues. More... | |
virtual int | getMaxSubspaceDim () const =0 |
Get the maximum dimension allocated for the search subspace. More... | |
Accessor methods | |
virtual void | setStatusTest (Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test)=0 |
Set a new StatusTest for the solver. More... | |
virtual Teuchos::RCP < StatusTest< ScalarType, MV, OP > > | getStatusTest () const =0 |
Get the current StatusTest used by the solver. More... | |
virtual const Eigenproblem < ScalarType, MV, OP > & | getProblem () const =0 |
Get a constant reference to the eigenvalue problem. More... | |
virtual int | getBlockSize () const =0 |
Get the blocksize to be used by the iterative solver in solving this eigenproblem. More... | |
virtual void | setBlockSize (int blockSize)=0 |
Set the blocksize to be used by the iterative solver in solving this eigenproblem. More... | |
virtual void | setAuxVecs (const Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)=0 |
Set the auxiliary vectors for the solver. More... | |
virtual Teuchos::Array < Teuchos::RCP< const MV > > | getAuxVecs () const =0 |
Get the auxiliary vectors for the solver. More... | |
virtual bool | isInitialized () const =0 |
States whether the solver has been initialized or not. More... | |
Output methods | |
virtual void | currentStatus (std::ostream &os)=0 |
This method requests that the solver print out its current status to screen. More... | |
The Eigensolver is a templated virtual base class that defines the basic interface that any eigensolver will support.
This interface is mainly concerned with providing a set of eigensolver status method that can be requested from any eigensolver by an StatusTest object.
Definition at line 67 of file AnasaziEigensolver.hpp.
|
inline |
Default Constructor.
Definition at line 75 of file AnasaziEigensolver.hpp.
Anasazi::Eigensolver< ScalarType, MV, OP >::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.
This constructor, implemented by all Anasazi eigensolvers, takes an Anasazi::Eigenproblem, Anasazi::SortManager, Anasazi::OutputManager, and Teuchos::ParameterList as input. These four arguments are sufficient enough for constructing any Anasazi::Eigensolver object.
|
inlinevirtual |
Destructor.
Definition at line 90 of file AnasaziEigensolver.hpp.
|
pure virtual |
This method performs eigensolvers iterations until the status test indicates the need to stop or an error occurs (in which case, an exception is thrown).
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, Anasazi::GeneralizedDavidson< ScalarType, MV, OP >, Anasazi::IRTR< ScalarType, MV, OP >, and Anasazi::SIRTR< ScalarType, MV, OP >.
|
pure virtual |
Initialize the solver with the initial vectors from the eigenproblem or random data.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the current iteration count.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Reset the iteration count.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the Ritz vectors from the previous iteration. These are indexed using getRitzIndex().
For a description of the indexing scheme, see getRitzIndex().
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the Ritz values from the previous iteration.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the index used for indexing the compressed storage used for Ritz vectors for real, non-Hermitian problems.
index has length numVecs, where each entry is 0, +1, or -1. These have the following interpretation:
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the current residual norms.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the current residual 2-norms
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the 2-norms of the Ritz residuals.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the maximum dimension allocated for the search subspace.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Set a new StatusTest for the solver.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the current StatusTest used by the solver.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get a constant reference to the eigenvalue problem.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the blocksize to be used by the iterative solver in solving this eigenproblem.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Set the blocksize to be used by the iterative solver in solving this eigenproblem.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Set the auxiliary vectors for the solver.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
Get the auxiliary vectors for the solver.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, and Anasazi::GeneralizedDavidson< ScalarType, MV, OP >.
|
pure virtual |
States whether the solver has been initialized or not.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::GeneralizedDavidson< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, and Anasazi::BlockKrylovSchur< ScalarType, MV, OP >.
|
pure virtual |
This method requests that the solver print out its current status to screen.
Implemented in Anasazi::LOBPCG< ScalarType, MV, OP >, Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >, Anasazi::RTRBase< ScalarType, MV, OP >, Anasazi::BlockDavidson< ScalarType, MV, OP >, Anasazi::BlockKrylovSchur< ScalarType, MV, OP >, Anasazi::GeneralizedDavidson< ScalarType, MV, OP >, Anasazi::IRTR< ScalarType, MV, OP >, and Anasazi::SIRTR< ScalarType, MV, OP >.