PyTrilinos::Anasazi::BlockDavidsonEpetra Class Reference

Inheritance diagram for PyTrilinos::Anasazi::BlockDavidsonEpetra:

Inheritance graph
[legend]
Collaboration diagram for PyTrilinos::Anasazi::BlockDavidsonEpetra:

Collaboration graph
[legend]

List of all members.

Public Member Functions

def __init__
def iterate
def initialize
def isInitialized
def getState
def getNumIters
def resetNumIters
def getRitzVectors
def getRitzValues
def getRitzIndex
def getResNorms
def getRes2Norms
def getRitzRes2Norms
def getCurSubspaceDim
def getMaxSubspaceDim
def setStatusTest
def getStatusTest
def getProblem
def setBlockSize
def getBlockSize
def setAuxVecs
def getAuxVecs
def setSize
def currentStatus
def __init__
def iterate
def initialize
def isInitialized
def getState
def getNumIters
def resetNumIters
def getRitzVectors
def getRitzValues
def getRitzIndex
def getResNorms
def getRes2Norms
def getRitzRes2Norms
def getCurSubspaceDim
def getMaxSubspaceDim
def setStatusTest
def getStatusTest
def getProblem
def setBlockSize
def getBlockSize
def setAuxVecs
def getAuxVecs
def setSize
def currentStatus

Public Attributes

 this


Detailed Description

This class implements a Block Davidson iteration, a preconditioned
iteration for solving linear Hermitian eigenproblems.

This method is described in A Comparison of Eigensolvers for Large-
scale 3D Modal Analysis Using AMG-Preconditioned Iterative Methods, P.
Arbenz, U. L. Hetmaniuk, R. B. Lehoucq, R. S. Tuminaro, Internat. J.
for Numer. Methods Engrg., 64, pp. 204-236 (2005)

Chris Baker, Ulrich Hetmaniuk, Rich Lehoucq, Heidi Thornquist

C++ includes: AnasaziBlockDavidson.hpp 

Member Function Documentation

def PyTrilinos::Anasazi::BlockDavidsonEpetra::__init__ (   self,
  args 
)

__init__(self, Teuchos::RCP<(Anasazi::Eigenproblem<(double,Epetra_MultiVector,Epetra_Operator)>)> problem, 
    Teuchos::RCP<(Anasazi::SortManager<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)> sorter, 
    Teuchos::RCP<(Anasazi::OutputManager<(double)>)> printer, 
    Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)> tester, 
    Teuchos::RCP<(Anasazi::MatOrthoManager<(double,Epetra_MultiVector,Epetra_Operator)>)> ortho, 
    ParameterList params) -> BlockDavidsonEpetra

Anasazi::BlockDavidson< ScalarType, MV, OP >::BlockDavidson(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< MatOrthoManager< ScalarType,
MV, OP > > &ortho, Teuchos::ParameterList &params)

BlockDavidson 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: "Block Size" - an int specifying the
block size used by the algorithm. This can also be specified using the
setBlockSize() method.

"Num Blocks" - an int specifying the maximum number of blocks
allocated for the solver basis. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::__init__ (   self,
  args 
)

__init__(self, Teuchos::RCP<(Anasazi::Eigenproblem<(double,Epetra_MultiVector,Epetra_Operator)>)> problem, 
    Teuchos::RCP<(Anasazi::SortManager<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)> sorter, 
    Teuchos::RCP<(Anasazi::OutputManager<(double)>)> printer, 
    Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)> tester, 
    Teuchos::RCP<(Anasazi::MatOrthoManager<(double,Epetra_MultiVector,Epetra_Operator)>)> ortho, 
    ParameterList params) -> BlockDavidsonEpetra

Anasazi::BlockDavidson< ScalarType, MV, OP >::BlockDavidson(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< MatOrthoManager< ScalarType,
MV, OP > > &ortho, Teuchos::ParameterList &params)

BlockDavidson 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: "Block Size" - an int specifying the
block size used by the algorithm. This can also be specified using the
setBlockSize() method.

"Num Blocks" - an int specifying the maximum number of blocks
allocated for the solver basis. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::currentStatus (   self,
  args 
)

currentStatus(self, ostream os)

void
Anasazi::BlockDavidson< ScalarType, MV, OP
>::currentStatus(std::ostream &os)

This method requests that the solver print out its current status to
the given output stream. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::currentStatus (   self,
  args 
)

currentStatus(self, ostream os)

void
Anasazi::BlockDavidson< ScalarType, MV, OP
>::currentStatus(std::ostream &os)

This method requests that the solver print out its current status to
the given output stream. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getAuxVecs (   self,
  args 
)

getAuxVecs(self) -> Teuchos::Array<(Teuchos::RCP<(q(const).Epetra_MultiVector)>)>

Teuchos::Array< Teuchos::RCP< const MV > > Anasazi::BlockDavidson<
ScalarType, MV, OP >::getAuxVecs() const

Get the auxiliary vectors for the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getAuxVecs (   self,
  args 
)

getAuxVecs(self) -> Teuchos::Array<(Teuchos::RCP<(q(const).Epetra_MultiVector)>)>

Teuchos::Array< Teuchos::RCP< const MV > > Anasazi::BlockDavidson<
ScalarType, MV, OP >::getAuxVecs() const

Get the auxiliary vectors for the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getBlockSize (   self,
  args 
)

getBlockSize(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getBlockSize() const

Get the blocksize used by the iterative solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getBlockSize (   self,
  args 
)

getBlockSize(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getBlockSize() const

Get the blocksize used by the iterative solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getCurSubspaceDim (   self,
  args 
)

getCurSubspaceDim(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getCurSubspaceDim()
const

Get the dimension of the search subspace used to generate the current
eigenvectors and eigenvalues.

An integer specifying the rank of the Krylov subspace currently in use
by the eigensolver. If isInitialized() == false, the return is 0.
Otherwise, it will be some strictly positive multiple of
getBlockSize(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getCurSubspaceDim (   self,
  args 
)

getCurSubspaceDim(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getCurSubspaceDim()
const

Get the dimension of the search subspace used to generate the current
eigenvectors and eigenvalues.

An integer specifying the rank of the Krylov subspace currently in use
by the eigensolver. If isInitialized() == false, the return is 0.
Otherwise, it will be some strictly positive multiple of
getBlockSize(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getMaxSubspaceDim (   self,
  args 
)

getMaxSubspaceDim(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getMaxSubspaceDim()
const

Get the maximum dimension allocated for the search subspace. For
BlockDavidson, this always returns numBlocks*blockSize. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getMaxSubspaceDim (   self,
  args 
)

getMaxSubspaceDim(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getMaxSubspaceDim()
const

Get the maximum dimension allocated for the search subspace. For
BlockDavidson, this always returns numBlocks*blockSize. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getNumIters (   self,
  args 
)

getNumIters(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getNumIters() const

Get the current iteration count. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getNumIters (   self,
  args 
)

getNumIters(self) -> int

int
Anasazi::BlockDavidson< ScalarType, MV, OP >::getNumIters() const

Get the current iteration count. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getProblem (   self,
  args 
)

getProblem(self) -> EigenproblemEpetra

const
Eigenproblem< ScalarType, MV, OP > & Anasazi::BlockDavidson<
ScalarType, MV, OP >::getProblem() const

Get a constant reference to the eigenvalue problem. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getProblem (   self,
  args 
)

getProblem(self) -> EigenproblemEpetra

const
Eigenproblem< ScalarType, MV, OP > & Anasazi::BlockDavidson<
ScalarType, MV, OP >::getProblem() const

Get a constant reference to the eigenvalue problem. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRes2Norms (   self,
  args 
)

getRes2Norms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRes2Norms()

Get the current residual 2-norms, computing the norms if they are not
up-to-date with the current residual vectors.

A vector of length getCurSubspaceDim() containing the 2-norms of the
current residuals. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRes2Norms (   self,
  args 
)

getRes2Norms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRes2Norms()

Get the current residual 2-norms, computing the norms if they are not
up-to-date with the current residual vectors.

A vector of length getCurSubspaceDim() containing the 2-norms of the
current residuals. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getResNorms (   self,
  args 
)

getResNorms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getResNorms()

Get the current residual norms, computing the norms if they are not
up-to-date with the current residual vectors.

A vector of length getCurSubspaceDim() containing the norms of the
residuals, with respect to the orthogonalization manager's norm()
method. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getResNorms (   self,
  args 
)

getResNorms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getResNorms()

Get the current residual norms, computing the norms if they are not
up-to-date with the current residual vectors.

A vector of length getCurSubspaceDim() containing the norms of the
residuals, with respect to the orthogonalization manager's norm()
method. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzIndex (   self,
  args 
)

getRitzIndex(self) -> VectorInt

std::vector< int > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzIndex()

Get the index used for extracting individual Ritz vectors from
getRitzVectors().

Because BlockDavidson is a Hermitian solver, all Ritz values are real
and all Ritz vectors can be represented in a single column of a
multivector. Therefore, getRitzIndex() is not needed when using the
output from getRitzVectors().

An int vector of size getCurSubspaceDim() composed of zeros. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzIndex (   self,
  args 
)

getRitzIndex(self) -> VectorInt

std::vector< int > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzIndex()

Get the index used for extracting individual Ritz vectors from
getRitzVectors().

Because BlockDavidson is a Hermitian solver, all Ritz values are real
and all Ritz vectors can be represented in a single column of a
multivector. Therefore, getRitzIndex() is not needed when using the
output from getRitzVectors().

An int vector of size getCurSubspaceDim() composed of zeros. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzRes2Norms (   self,
  args 
)

getRitzRes2Norms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzRes2Norms()

Get the 2-norms of the residuals.

The Ritz residuals are not defined for the LOBPCG iteration. Hence,
this method returns the 2-norms of the direct residuals, and is
equivalent to calling getRes2Norms().

A vector of length getBlockSize() containing the 2-norms of the direct
residuals. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzRes2Norms (   self,
  args 
)

getRitzRes2Norms(self) -> std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)>

std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzRes2Norms()

Get the 2-norms of the residuals.

The Ritz residuals are not defined for the LOBPCG iteration. Hence,
this method returns the 2-norms of the direct residuals, and is
equivalent to calling getRes2Norms().

A vector of length getBlockSize() containing the 2-norms of the direct
residuals. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzValues (   self,
  args 
)

getRitzValues(self) -> VectorValueDouble

std::vector< Value< ScalarType > > Anasazi::BlockDavidson< ScalarType,
MV, OP >::getRitzValues()

Get the Ritz values for the previous iteration.

A vector of length getCurSubspaceDim() containing the Ritz values from
the previous projected eigensolve. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzValues (   self,
  args 
)

getRitzValues(self) -> VectorValueDouble

std::vector< Value< ScalarType > > Anasazi::BlockDavidson< ScalarType,
MV, OP >::getRitzValues()

Get the Ritz values for the previous iteration.

A vector of length getCurSubspaceDim() containing the Ritz values from
the previous projected eigensolve. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzVectors (   self,
  args 
)

getRitzVectors(self) -> Teuchos::RCP<(q(const).Epetra_MultiVector)>

Teuchos::RCP< const MV > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzVectors()

Get access to the current Ritz vectors.

A multivector with getBlockSize() vectors containing the sorted Ritz
vectors corresponding to the most significant Ritz values. The i-th
vector of the return corresponds to the i-th Ritz vector; there is no
need to use getRitzIndex(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getRitzVectors (   self,
  args 
)

getRitzVectors(self) -> Teuchos::RCP<(q(const).Epetra_MultiVector)>

Teuchos::RCP< const MV > Anasazi::BlockDavidson< ScalarType, MV, OP
>::getRitzVectors()

Get access to the current Ritz vectors.

A multivector with getBlockSize() vectors containing the sorted Ritz
vectors corresponding to the most significant Ritz values. The i-th
vector of the return corresponds to the i-th Ritz vector; there is no
need to use getRitzIndex(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getState (   self,
  args 
)

getState(self) -> Anasazi::BlockDavidsonState<(double,Epetra_MultiVector)>

BlockDavidsonState< ScalarType, MV > Anasazi::BlockDavidson<
ScalarType, MV, OP >::getState() const

Get access to the current state of the eigensolver.

The data is only valid if isInitialized() == true.

The data for the preconditioned residual is only meaningful in the
scenario that the solver throws a BlockDavidsonRitzFailure exception
during iterate().

A BlockDavidsonState object containing const pointers to the current
solver state. Note, these are direct pointers to the multivectors;
they are not pointers to views of the multivectors. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getState (   self,
  args 
)

getState(self) -> Anasazi::BlockDavidsonState<(double,Epetra_MultiVector)>

BlockDavidsonState< ScalarType, MV > Anasazi::BlockDavidson<
ScalarType, MV, OP >::getState() const

Get access to the current state of the eigensolver.

The data is only valid if isInitialized() == true.

The data for the preconditioned residual is only meaningful in the
scenario that the solver throws a BlockDavidsonRitzFailure exception
during iterate().

A BlockDavidsonState object containing const pointers to the current
solver state. Note, these are direct pointers to the multivectors;
they are not pointers to views of the multivectors. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getStatusTest (   self,
  args 
)

getStatusTest(self) -> Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)>

Teuchos::RCP< StatusTest< ScalarType, MV, OP > >
Anasazi::BlockDavidson< ScalarType, MV, OP >::getStatusTest() const

Get the current StatusTest used by the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::getStatusTest (   self,
  args 
)

getStatusTest(self) -> Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)>

Teuchos::RCP< StatusTest< ScalarType, MV, OP > >
Anasazi::BlockDavidson< ScalarType, MV, OP >::getStatusTest() const

Get the current StatusTest used by the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::initialize (   self,
  args 
)

initialize(self, Anasazi::BlockDavidsonState<(double,Epetra_MultiVector)> newstate)
initialize(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::initialize()

Initialize the solver with the initial vectors from the eigenproblem
or random data. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::initialize (   self,
  args 
)

initialize(self, Anasazi::BlockDavidsonState<(double,Epetra_MultiVector)> newstate)
initialize(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::initialize()

Initialize the solver with the initial vectors from the eigenproblem
or random data. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::isInitialized (   self,
  args 
)

isInitialized(self) -> bool

bool
Anasazi::BlockDavidson< ScalarType, MV, OP >::isInitialized() const

Indicates whether the solver has been initialized or not.

bool indicating the state of the solver.

If isInitialized() == true:  getCurSubspaceDim() > 0 and is a multiple
of getBlockSize()

the first getCurSubspaceDim() vectors of V are orthogonal to auxiliary
vectors and have orthonormal columns

the principal submatrix of order getCurSubspaceDim() of KK contains
the project eigenproblem matrix

X contains the Ritz vectors with respect to the current Krylov basis

T contains the Ritz values with respect to the current Krylov basis

KX == Op*X

MX == M*X if M != Teuchos::null  Otherwise, MX == Teuchos::null

R contains the residual vectors with respect to X 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::isInitialized (   self,
  args 
)

isInitialized(self) -> bool

bool
Anasazi::BlockDavidson< ScalarType, MV, OP >::isInitialized() const

Indicates whether the solver has been initialized or not.

bool indicating the state of the solver.

If isInitialized() == true:  getCurSubspaceDim() > 0 and is a multiple
of getBlockSize()

the first getCurSubspaceDim() vectors of V are orthogonal to auxiliary
vectors and have orthonormal columns

the principal submatrix of order getCurSubspaceDim() of KK contains
the project eigenproblem matrix

X contains the Ritz vectors with respect to the current Krylov basis

T contains the Ritz values with respect to the current Krylov basis

KX == Op*X

MX == M*X if M != Teuchos::null  Otherwise, MX == Teuchos::null

R contains the residual vectors with respect to X 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::iterate (   self,
  args 
)

iterate(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::iterate()

This method performs BlockDavidson iterations until the status test
indicates the need to stop or an error occurs (in which case, an
appropriate exception is thrown).

iterate() will first determine whether the solver is uninitialized; if
not, it will call initialize(). After initialization, the solver
performs block Davidson iterations until the status test evaluates as
Passed, at which point the method returns to the caller.

The block Davidson iteration proceeds as follows: The current residual
(R) is preconditioned to form H

H is orthogonalized against the auxiliary vectors and the previous
basis vectors, and made orthonormal.

The current basis is expanded with H and used to project the problem
matrix.

The projected eigenproblem is solved, and the desired eigenvectors and
eigenvalues are selected.

These are used to form the new eigenvector estimates (X).

The new residual (R) is formed.

The status test is queried at the beginning of the iteration.

Possible exceptions thrown include std::invalid_argument or one of the
BlockDavidson-specific exceptions. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::iterate (   self,
  args 
)

iterate(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::iterate()

This method performs BlockDavidson iterations until the status test
indicates the need to stop or an error occurs (in which case, an
appropriate exception is thrown).

iterate() will first determine whether the solver is uninitialized; if
not, it will call initialize(). After initialization, the solver
performs block Davidson iterations until the status test evaluates as
Passed, at which point the method returns to the caller.

The block Davidson iteration proceeds as follows: The current residual
(R) is preconditioned to form H

H is orthogonalized against the auxiliary vectors and the previous
basis vectors, and made orthonormal.

The current basis is expanded with H and used to project the problem
matrix.

The projected eigenproblem is solved, and the desired eigenvectors and
eigenvalues are selected.

These are used to form the new eigenvector estimates (X).

The new residual (R) is formed.

The status test is queried at the beginning of the iteration.

Possible exceptions thrown include std::invalid_argument or one of the
BlockDavidson-specific exceptions. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::resetNumIters (   self,
  args 
)

resetNumIters(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::resetNumIters()

Reset the iteration count. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::resetNumIters (   self,
  args 
)

resetNumIters(self)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::resetNumIters()

Reset the iteration count. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setAuxVecs (   self,
  args 
)

setAuxVecs(self, Teuchos::Array<(Teuchos::RCP<(q(const).Epetra_MultiVector)>)> auxvecs)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setAuxVecs(const
Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)

Set the auxiliary vectors for the solver.

Because the current basis V cannot be assumed orthogonal to the new
auxiliary vectors, a call to setAuxVecs() will reset the solver to the
uninitialized state. This happens only in the case where the new
auxiliary vectors have a combined dimension of greater than zero.

In order to preserve the current state, the user will need to extract
it from the solver using getState(), orthogonalize it against the new
auxiliary vectors, and reinitialize using initialize(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setAuxVecs (   self,
  args 
)

setAuxVecs(self, Teuchos::Array<(Teuchos::RCP<(q(const).Epetra_MultiVector)>)> auxvecs)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setAuxVecs(const
Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)

Set the auxiliary vectors for the solver.

Because the current basis V cannot be assumed orthogonal to the new
auxiliary vectors, a call to setAuxVecs() will reset the solver to the
uninitialized state. This happens only in the case where the new
auxiliary vectors have a combined dimension of greater than zero.

In order to preserve the current state, the user will need to extract
it from the solver using getState(), orthogonalize it against the new
auxiliary vectors, and reinitialize using initialize(). 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setBlockSize (   self,
  args 
)

setBlockSize(self, int blockSize)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setBlockSize(int
blockSize)

Set the blocksize.

This method is required to support the interface provided by
Eigensolver. However, the preferred method of setting the allocated
size for the BlockDavidson eigensolver is setSize(). In fact,
setBlockSize() simply calls setSize(), maintaining the current number
of blocks.

The block size determines the number of Ritz vectors and values that
are computed on each iteration, thereby determining the increase in
the Krylov subspace at each iteration. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setBlockSize (   self,
  args 
)

setBlockSize(self, int blockSize)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setBlockSize(int
blockSize)

Set the blocksize.

This method is required to support the interface provided by
Eigensolver. However, the preferred method of setting the allocated
size for the BlockDavidson eigensolver is setSize(). In fact,
setBlockSize() simply calls setSize(), maintaining the current number
of blocks.

The block size determines the number of Ritz vectors and values that
are computed on each iteration, thereby determining the increase in
the Krylov subspace at each iteration. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setSize (   self,
  args 
)

setSize(self, int blockSize, int numBlocks)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setSize(int blockSize,
int numBlocks)

Set the blocksize and number of blocks to be used by the iterative
solver in solving this eigenproblem.

Changing either the block size or the number of blocks will reset the
solver to an uninitialized state.

The requested block size must be strictly positive; the number of
blocks must be greater than one. Invalid arguments will result in a
std::invalid_argument exception. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setSize (   self,
  args 
)

setSize(self, int blockSize, int numBlocks)

void
Anasazi::BlockDavidson< ScalarType, MV, OP >::setSize(int blockSize,
int numBlocks)

Set the blocksize and number of blocks to be used by the iterative
solver in solving this eigenproblem.

Changing either the block size or the number of blocks will reset the
solver to an uninitialized state.

The requested block size must be strictly positive; the number of
blocks must be greater than one. Invalid arguments will result in a
std::invalid_argument exception. 

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setStatusTest (   self,
  args 
)

setStatusTest(self, Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)> test)

void
Anasazi::BlockDavidson< ScalarType, MV, OP
>::setStatusTest(Teuchos::RCP< StatusTest< ScalarType, MV, OP > >
test)

Set a new StatusTest for the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.

def PyTrilinos::Anasazi::BlockDavidsonEpetra::setStatusTest (   self,
  args 
)

setStatusTest(self, Teuchos::RCP<(Anasazi::StatusTest<(double,Epetra_MultiVector,Epetra_Operator)>)> test)

void
Anasazi::BlockDavidson< ScalarType, MV, OP
>::setStatusTest(Teuchos::RCP< StatusTest< ScalarType, MV, OP > >
test)

Set a new StatusTest for the solver. 

Reimplemented from PyTrilinos::Anasazi::EigensolverEpetra.


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

Generated on Thu Dec 17 11:00:20 2009 for PyTrilinos by  doxygen 1.5.9