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

This class implements the Locally-Optimal Block Preconditioned Conjugate Gradient method for solving symmetric eigenvalue problems. More...

#include <AnasaziLOBPCG.hpp>

Inheritance diagram for Anasazi::LOBPCG< ScalarType, MV, OP >:

[legend]
Collaboration diagram for Anasazi::LOBPCG< ScalarType, MV, OP >:
[legend]
List of all members.

Public Member Functions

Constructor/Destructor.
 LOBPCG (const Teuchos::RefCountPtr< Eigenproblem< ScalarType, MV, OP > > &problem, const Teuchos::RefCountPtr< SortManager< ScalarType, MV, OP > > &sm, const Teuchos::RefCountPtr< OutputManager< ScalarType > > &om, Teuchos::ParameterList &pl)
 Anasazi::LOBPCG constructor.
virtual ~LOBPCG ()
 Anasazi::LOBPCG destructor.
Solver application methods.
ReturnType solve ()
 This method uses iterate to compute approximate solutions to the original problem. It may return without converging if it has taken the maximum number of iterations or numerical breakdown is observed.
Solver status methods.
int GetNumIters () const
 Get the current iteration count.
int GetNumRestarts () const
 Get the current restart count of the iteration method.
int GetBlockSize () const
 Get the blocksize to be used by the iterative solver in solving this eigenproblem.
Teuchos::RefCountPtr< const
MV > 
GetNativeResiduals (ScalarType *normvec) const
 Get the solvers native residuals for the current eigenpairs.
Eigenproblem< ScalarType,
MV, OP > & 
GetEigenproblem () const
 Get a constant reference to the current linear problem, which may include a current solution.
Output methods.
void currentStatus ()
 This method requests that the solver print out its current status to screen.

Detailed Description

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

This class implements the Locally-Optimal Block Preconditioned Conjugate Gradient method for solving symmetric eigenvalue problems.

This implementation is a modification of the one found in : A. Knyazev, "Toward the optimal preconditioned eigensolver: Locally optimal block preconditioner conjugate gradient method", SIAM J. Sci. Comput., vol 23, n 2, pp. 517-541

Author:
Ulrich Hetmaniuk, Rich Lehoucq, Heidi Thornquist


Member Function Documentation

template<class ScalarType, class MV, class OP>
Teuchos::RefCountPtr<const MV> Anasazi::LOBPCG< ScalarType, MV, OP >::GetNativeResiduals ScalarType *  normvec  )  const [inline]
 

Get the solvers native residuals for the current eigenpairs.

This is not be the same as the true residuals for most solvers. Sometimes the native residuals are not in multivector form, so the norm type is solver dependent.

Note:
  1. If the native residual is in multivector form then a non-null pointer will be returned, else the normvec will be populated with the current residual norms.
  2. If the native residual is returned in multivector form, the memory is managed by the calling routine.

template<class ScalarType, class MV, class OP>
int Anasazi::LOBPCG< ScalarType, MV, OP >::GetNumRestarts  )  const [inline, virtual]
 

Get the current restart count of the iteration method.

Some eigensolvers can perform restarts (i.e.Arnoldi) to reduce memory and orthogonalization costs. For other eigensolvers, like LOBPCG or block Davidson, this is not a valid stopping criteria.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:39:31 2008 for Anasazi by doxygen 1.3.9.1