Anasazi::Eigenproblem< ScalarType, MV, OP > Class Template Reference

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 > List of all members.

Public Member Functions

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

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 51 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 59 of file AnasaziEigenproblem.hpp.

template<class ScalarType, class MV, class OP>
virtual Anasazi::Eigenproblem< ScalarType, MV, OP >::~Eigenproblem  )  [inline, virtual]
 

Destructor.

Definition at line 62 of file AnasaziEigenproblem.hpp.


Member Function Documentation

template<class ScalarType, class MV, class OP>
virtual void Anasazi::Eigenproblem< ScalarType, MV, OP >::setOperator const Teuchos::RefCountPtr< 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::RefCountPtr< 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::RefCountPtr< 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::RefCountPtr< 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::RefCountPtr< 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::RefCountPtr< 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 const 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 const 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 constently 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::RefCountPtr<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::RefCountPtr<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::RefCountPtr<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::RefCountPtr<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::RefCountPtr<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::RefCountPtr<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:
Generated on Thu Sep 18 12:31:39 2008 for Anasazi by doxygen 1.3.9.1