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

This class defines the interface required by an eigensolver and status test class to compute solutions to an eigenproblem. More...

#include <AnasaziEigenproblem.hpp>

Inheritance diagram for Anasazi::Eigenproblem< ScalarType, MV, OP >:
Anasazi::BasicEigenproblem< ScalarType, MV, OP >

Public Member Functions

Constructors/Destructor
 Eigenproblem ()
 Empty constructor. More...
 
virtual ~Eigenproblem ()
 Destructor. More...
 
Set Methods
virtual void setOperator (const Teuchos::RCP< const OP > &Op)=0
 Set the operator for which eigenvalues will be computed. More...
 
virtual void setA (const Teuchos::RCP< const OP > &A)=0
 Set the operator A of the eigenvalue problem $ Ax=\lambda Mx$. More...
 
virtual void setM (const Teuchos::RCP< const OP > &M)=0
 Set the operator M of the eigenvalue problem $ Ax=\lambda Mx$. More...
 
virtual void setPrec (const Teuchos::RCP< const OP > &Prec)=0
 Set the preconditioner for this eigenvalue problem $ Ax=\lambda Mx$. More...
 
virtual void setInitVec (const Teuchos::RCP< MV > &InitVec)=0
 Set the initial guess. More...
 
virtual void setAuxVecs (const Teuchos::RCP< const MV > &AuxVecs)=0
 Set auxiliary vectors. More...
 
virtual void setNEV (int nev)=0
 The number of eigenvalues (NEV) that are requested. More...
 
virtual void setHermitian (bool isSym)=0
 Specify the symmetry of the eigenproblem. More...
 
virtual bool setProblem ()=0
 Specify that this eigenproblem is fully defined. More...
 
virtual void setSolution (const Eigensolution< ScalarType, MV > &sol)=0
 Set the solution to the eigenproblem. More...
 
Accessor Methods
virtual Teuchos::RCP< const OP > getOperator () const =0
 Get a pointer to the operator for which eigenvalues will be computed. More...
 
virtual Teuchos::RCP< const OP > getA () const =0
 Get a pointer to the operator A of the eigenproblem $ AX=\lambda Mx$. More...
 
virtual Teuchos::RCP< const OP > getM () const =0
 Get a pointer to the operator M of the eigenproblem $ AX=\lambda Mx$. More...
 
virtual Teuchos::RCP< const OP > getPrec () const =0
 Get a pointer to the preconditioner. More...
 
virtual Teuchos::RCP< const MV > getInitVec () const =0
 Get a pointer to the initial vector. More...
 
virtual Teuchos::RCP< const MV > getAuxVecs () const =0
 Get a pointer to the auxiliary vector. More...
 
virtual int getNEV () const =0
 Get the number of eigenvalues (NEV) that are required by this eigenproblem. More...
 
virtual bool isHermitian () const =0
 Get the symmetry information for this eigenproblem. More...
 
virtual bool isProblemSet () const =0
 If the problem has been set, this method will return true. More...
 
virtual const Eigensolution
< ScalarType, MV > & 
getSolution () const =0
 Get the solution to the eigenproblem. More...
 

Detailed Description

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

This class defines the interface required by an eigensolver and status test class to compute solutions to an eigenproblem.

Definition at line 64 of file AnasaziEigenproblem.hpp.

Constructor & Destructor Documentation

template<class ScalarType, class MV, class OP>
Anasazi::Eigenproblem< ScalarType, MV, OP >::Eigenproblem ( )
inline

Empty constructor.

Definition at line 72 of file AnasaziEigenproblem.hpp.

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

Destructor.

Definition at line 75 of file AnasaziEigenproblem.hpp.

Member Function Documentation

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setOperator ( const Teuchos::RCP< const OP > &  Op)
pure virtual

Set the operator for which eigenvalues will be computed.

Note
This may be different from the A if a spectral transformation is employed. For example, this operator may apply the operation $(A-\sigma I)^{-1}$ if you are looking for eigenvalues of A around $\sigma$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setA ( const Teuchos::RCP< const OP > &  A)
pure virtual

Set the operator A of the eigenvalue problem $ Ax=\lambda Mx$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setM ( const Teuchos::RCP< const OP > &  M)
pure virtual

Set the operator M of the eigenvalue problem $ Ax=\lambda Mx$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setPrec ( const Teuchos::RCP< const OP > &  Prec)
pure virtual

Set the preconditioner for this eigenvalue problem $ Ax=\lambda Mx$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setInitVec ( const Teuchos::RCP< MV > &  InitVec)
pure virtual

Set the initial guess.

Note
This multivector should have the same number of columns as the blocksize.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setAuxVecs ( const Teuchos::RCP< const MV > &  AuxVecs)
pure virtual

Set auxiliary vectors.

Note
This multivector can have any number of columns, and most likely will contain vectors that will be used by the eigensolver to orthogonalize against.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setNEV ( int  nev)
pure virtual

The number of eigenvalues (NEV) that are requested.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setHermitian ( bool  isSym)
pure virtual

Specify the symmetry of the eigenproblem.

This knowledge may allow the solver to take advantage of the eigenproblems' symmetry. Some computational work may be avoided by setting this properly.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual bool Anasazi::Eigenproblem< ScalarType, MV, OP >::setProblem ( )
pure virtual

Specify that this eigenproblem is fully defined.

This routine serves multiple purpose:

  • sanity check that the eigenproblem has been fully and consistently defined
  • opportunity for the eigenproblem to allocate internal storage for eigenvalues and eigenvectors (to be used by eigensolvers and solver managers)
Note
The user MUST call this routine before they send the eigenproblem to any solver or solver manager.
Returns
true signifies success, false signifies error.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setSolution ( const Eigensolution< ScalarType, MV > &  sol)
pure virtual

Set the solution to the eigenproblem.

This mechanism allows an Eigensolution struct to be associated with an Eigenproblem object. setSolution() is usually called by a solver manager at the end of its SolverManager::solve() routine.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const OP> Anasazi::Eigenproblem< ScalarType, MV, OP >::getOperator ( ) const
pure virtual

Get a pointer to the operator for which eigenvalues will be computed.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const OP> Anasazi::Eigenproblem< ScalarType, MV, OP >::getA ( ) const
pure virtual

Get a pointer to the operator A of the eigenproblem $ AX=\lambda Mx$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const OP> Anasazi::Eigenproblem< ScalarType, MV, OP >::getM ( ) const
pure virtual

Get a pointer to the operator M of the eigenproblem $ AX=\lambda Mx$.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const OP> Anasazi::Eigenproblem< ScalarType, MV, OP >::getPrec ( ) const
pure virtual

Get a pointer to the preconditioner.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const MV> Anasazi::Eigenproblem< ScalarType, MV, OP >::getInitVec ( ) const
pure virtual

Get a pointer to the initial vector.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual Teuchos::RCP<const MV> Anasazi::Eigenproblem< ScalarType, MV, OP >::getAuxVecs ( ) const
pure virtual

Get a pointer to the auxiliary vector.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual int Anasazi::Eigenproblem< ScalarType, MV, OP >::getNEV ( ) const
pure virtual

Get the number of eigenvalues (NEV) that are required by this eigenproblem.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual bool Anasazi::Eigenproblem< ScalarType, MV, OP >::isHermitian ( ) const
pure virtual

Get the symmetry information for this eigenproblem.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual bool Anasazi::Eigenproblem< ScalarType, MV, OP >::isProblemSet ( ) const
pure virtual

If the problem has been set, this method will return true.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.

template<class ScalarType, class MV, class OP>
virtual const Eigensolution<ScalarType,MV>& Anasazi::Eigenproblem< ScalarType, MV, OP >::getSolution ( ) const
pure virtual

Get the solution to the eigenproblem.

There is no computation associated with this method. It only provides a mechanism for associating an Eigensolution with a Eigenproblem.

Implemented in Anasazi::BasicEigenproblem< ScalarType, MV, OP >.


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