Anasazi Version of the Day
Loading...
Searching...
No Matches
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.
 
virtual ~SIRTR ()
 SIRTR destructor
 
Solver methods
void iterate ()
 Impemements Eigensolver. The outer IRTR iteration. See RTRBase::iterate().
 
- 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.
 
virtual ~RTRBase ()
 RTRBase destructor
 
void initialize (RTRState< ScalarType, MV > &newstate)
 Initialize the solver to an iterate, optionally providing the Ritz values and residual.
 
void initialize ()
 Initialize the solver with the initial vectors from the eigenproblem or random data.
 
bool isInitialized () const
 Indicates whether the solver has been initialized or not.
 
RTRState< ScalarType, MV > getState () const
 Get the current state of the eigensolver.
 
int getNumIters () const
 Get the current iteration count.
 
void resetNumIters ()
 Reset the iteration count.
 
Teuchos::RCP< const MV > getRitzVectors ()
 Get the Ritz vectors from the previous iteration.
 
std::vector< Value< ScalarType > > getRitzValues ()
 Get the Ritz values from the previous iteration.
 
std::vector< int > getRitzIndex ()
 Get the index used for extracting Ritz vectors from getRitzVectors().
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getResNorms ()
 Get the current residual norms.
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getRes2Norms ()
 Get the current residual 2-norms.
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getRitzRes2Norms ()
 Get the 2-norms of the Ritz residuals.
 
int getCurSubspaceDim () const
 Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues.
 
int getMaxSubspaceDim () const
 Get the maximum dimension allocated for the search subspace. For RTR, this always returns getBlockSize().
 
void setStatusTest (Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test)
 Set a new StatusTest for the solver.
 
Teuchos::RCP< StatusTest< ScalarType, MV, OP > > getStatusTest () const
 Get the current StatusTest used by the solver.
 
const Eigenproblem< ScalarType, MV, OP > & getProblem () const
 Get a constant reference to the eigenvalue problem.
 
void setBlockSize (int blockSize)
 Set the blocksize to be used by the iterative solver in solving this eigenproblem.
 
int getBlockSize () const
 Get the blocksize to be used by the iterative solver in solving this eigenproblem.
 
void setAuxVecs (const Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)
 Set the auxiliary vectors for the solver.
 
Teuchos::Array< Teuchos::RCP< const MV > > getAuxVecs () const
 Get the current auxiliary vectors.
 
- Public Member Functions inherited from Anasazi::Eigensolver< ScalarType, MV, OP >
 Eigensolver ()
 Default Constructor.
 
 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.
 
virtual ~Eigensolver ()
 Destructor.
 

Output methods

void currentStatus (std::ostream &os)
 Impemements Eigensolver. This method requests that the solver print out its current status to screen.
 

Additional Inherited Members

- Protected Types inherited from Anasazi::RTRBase< ScalarType, MV, OP >
typedef SolverUtils< ScalarType, MV, OP > Utils
 
typedef MultiVecTraits< ScalarType, MV > MVT
 
typedef OperatorTraits< ScalarType, MV, OP > OPT
 
typedef Teuchos::ScalarTraits< ScalarType > SCT
 
typedef SCT::magnitudeType MagnitudeType
 
typedef Teuchos::ScalarTraits< MagnitudeType > MAT
 
typedef std::vector< MagnitudeType >::iterator vecMTiter
 
typedef std::vector< ScalarType >::iterator vecSTiter
 
- Protected Member Functions inherited from Anasazi::RTRBase< ScalarType, MV, OP >
std::string accuracyCheck (const CheckList &chk, const std::string &where) const
 
Teuchos::ScalarTraits< ScalarType >::magnitudeType ginner (const MV &xi) const
 
Teuchos::ScalarTraits< ScalarType >::magnitudeType ginner (const MV &xi, const MV &zeta) const
 
void ginnersep (const MV &xi, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &d) const
 
void ginnersep (const MV &xi, const MV &zeta, std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &d) const
 
- Protected Attributes inherited from Anasazi::RTRBase< ScalarType, MV, OP >
const MagnitudeType ONE
 
const MagnitudeType ZERO
 
const MagnitudeType NANVAL
 
const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > problem_
 
const Teuchos::RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > sm_
 
const Teuchos::RCP< OutputManager< ScalarType > > om_
 
Teuchos::RCP< StatusTest< ScalarType, MV, OP > > tester_
 
const Teuchos::RCP< GenOrthoManager< ScalarType, MV, OP > > orthman_
 
Teuchos::RCP< const OP > AOp_
 
Teuchos::RCP< const OP > BOp_
 
Teuchos::RCP< const OP > Prec_
 
bool hasBOp_
 
bool hasPrec_
 
bool olsenPrec_
 
Teuchos::RCP< Teuchos::Time > timerAOp_
 
Teuchos::RCP< Teuchos::Time > timerBOp_
 
Teuchos::RCP< Teuchos::Time > timerPrec_
 
Teuchos::RCP< Teuchos::Time > timerSort_
 
Teuchos::RCP< Teuchos::Time > timerLocalProj_
 
Teuchos::RCP< Teuchos::Time > timerDS_
 
Teuchos::RCP< Teuchos::Time > timerLocalUpdate_
 
Teuchos::RCP< Teuchos::Time > timerCompRes_
 
Teuchos::RCP< Teuchos::Time > timerOrtho_
 
Teuchos::RCP< Teuchos::Time > timerInit_
 
int counterAOp_
 
int counterBOp_
 
int counterPrec_
 
int blockSize_
 
bool initialized_
 
int nevLocal_
 
bool isSkinny_
 
bool leftMost_
 
Teuchos::RCP< MV > V_
 
Teuchos::RCP< MV > BV_
 
Teuchos::RCP< MV > PBV_
 
Teuchos::RCP< MV > AX_
 
Teuchos::RCP< MV > R_
 
Teuchos::RCP< MV > eta_
 
Teuchos::RCP< MV > Aeta_
 
Teuchos::RCP< MV > Beta_
 
Teuchos::RCP< MV > delta_
 
Teuchos::RCP< MV > Adelta_
 
Teuchos::RCP< MV > Bdelta_
 
Teuchos::RCP< MV > Hdelta_
 
Teuchos::RCP< MV > Z_
 
Teuchos::RCP< const MV > X_
 
Teuchos::RCP< const MV > BX_
 
Teuchos::Array< Teuchos::RCP< const MV > > auxVecs_
 
int numAuxVecs_
 
int iter_
 
std::vector< MagnitudeType > theta_
 
std::vector< MagnitudeType > Rnorms_
 
std::vector< MagnitudeType > R2norms_
 
std::vector< MagnitudeType > ritz2norms_
 
bool Rnorms_current_
 
bool R2norms_current_
 
MagnitudeType conv_kappa_
 
MagnitudeType conv_theta_
 
MagnitudeType rho_
 
MagnitudeType fx_
 

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 86 of file AnasaziSIRTR.hpp.

Constructor & Destructor Documentation

◆ SIRTR()

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 182 of file AnasaziSIRTR.hpp.

◆ ~SIRTR()

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

SIRTR destructor

Definition at line 112 of file AnasaziSIRTR.hpp.

Member Function Documentation

◆ iterate()

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 786 of file AnasaziSIRTR.hpp.

◆ currentStatus()

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 1137 of file AnasaziSIRTR.hpp.


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