PyTrilinos::Anasazi::OrthoManagerEpetra Class Reference

Inheritance diagram for PyTrilinos::Anasazi::OrthoManagerEpetra:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

def __init__
def innerProd
def norm
def normalize
def orthonormError
def orthogError
def __init__
def innerProd
def norm
def normalize
def orthonormError
def orthogError


Detailed Description

Anasazi's templated virtual class for providing routines for
orthogonalization and orthonormalization of multivectors.

This class defines concepts of orthogonality through the definition of
an inner product. It also provides computational routines for
orthogonalization.

A concrete implementation of this class is necessary. The user can
create their own implementation if those supplied are not suitable for
their needs.

Chris Baker, Ulrich Hetmaniuk, Rich Lehoucq, and Heidi Thornquist

C++ includes: AnasaziOrthoManager.hpp 

Member Function Documentation

def PyTrilinos::Anasazi::OrthoManagerEpetra::innerProd (   self,
  args 
)

innerProd(self, Epetra_MultiVector X, Epetra_MultiVector Y, Teuchos::SerialDenseMatrix<(int,double)> Z)

virtual void
Anasazi::OrthoManager< ScalarType, MV >::innerProd(const MV &X, const
MV &Y, Teuchos::SerialDenseMatrix< int, ScalarType > &Z) const =0

Provides the inner product defining the orthogonality concepts.

All concepts of orthogonality discussed in this class are defined with
respect to this inner product.

This is potentially different from MultiVecTraits::MvTransMv(). For
example, it is customary in many eigensolvers to exploit a mass matrix
M for the inner product: $x^HMx$.

Parameters:
-----------

Z:  [out] Z(i,j) contains the inner product of X[i] and Y[i]: \\[
Z(i,j) = \\langle X[i], Y[i] \\rangle \\] 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::innerProd (   self,
  args 
)

innerProd(self, Epetra_MultiVector X, Epetra_MultiVector Y, Teuchos::SerialDenseMatrix<(int,double)> Z)

virtual void
Anasazi::OrthoManager< ScalarType, MV >::innerProd(const MV &X, const
MV &Y, Teuchos::SerialDenseMatrix< int, ScalarType > &Z) const =0

Provides the inner product defining the orthogonality concepts.

All concepts of orthogonality discussed in this class are defined with
respect to this inner product.

This is potentially different from MultiVecTraits::MvTransMv(). For
example, it is customary in many eigensolvers to exploit a mass matrix
M for the inner product: $x^HMx$.

Parameters:
-----------

Z:  [out] Z(i,j) contains the inner product of X[i] and Y[i]: \\[
Z(i,j) = \\langle X[i], Y[i] \\rangle \\] 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::norm (   self,
  args 
)

norm(self, Epetra_MultiVector X, std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)> normvec)

virtual void
Anasazi::OrthoManager< ScalarType, MV >::norm(const MV &X,
std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > &normvec) const =0

Provides the norm induced by innerProd().

This computes the norm for each column of a multivector. This is the
norm induced by innerProd(): \\[ \\|x\\| = \\sqrt{\\langle
x, x \\rangle} \\]

Parameters:
-----------

normvec:  [out] Vector of norms, whose i-th entry corresponds to the
i-th column of X

normvec.size() == GetNumberVecs(X) 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::norm (   self,
  args 
)

norm(self, Epetra_MultiVector X, std::vector<(Teuchos::ScalarTraits<(double)>::magnitudeType,std::allocator<(Teuchos::ScalarTraits<(double)>::magnitudeType)>)> normvec)

virtual void
Anasazi::OrthoManager< ScalarType, MV >::norm(const MV &X,
std::vector< typename Teuchos::ScalarTraits< ScalarType
>::magnitudeType > &normvec) const =0

Provides the norm induced by innerProd().

This computes the norm for each column of a multivector. This is the
norm induced by innerProd(): \\[ \\|x\\| = \\sqrt{\\langle
x, x \\rangle} \\]

Parameters:
-----------

normvec:  [out] Vector of norms, whose i-th entry corresponds to the
i-th column of X

normvec.size() == GetNumberVecs(X) 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::normalize (   self,
  args 
)

normalize(self, Epetra_MultiVector X, Teuchos::RCP<(Teuchos::SerialDenseMatrix<(int,double)>)> B = Teuchos::null) -> int

virtual int
Anasazi::OrthoManager< ScalarType, MV >::normalize(MV &X,
Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > >
B=Teuchos::null) const =0

This method takes a multivector X and attempts to compute a basis for
$colspan(X)$. This basis is orthonormal with respect to innerProd().

This routine returns an integer rank stating the rank of the computed
basis. If X does not have full rank and the normalize() routine does
not attempt to augment the subspace, then rank may be smaller than the
number of columns in X. In this case, only the first rank columns of
output X and first rank rows of B will be valid.

Parameters:
-----------

X:  [in/out] The multivector to be modified.  On output, the first
rank columns of X satisfy \\[ \\langle X[i], X[j] \\rangle =
\\delta_{ij}\\ . \\] Also, \\[ X_{in}(1:m,1:n) =
X_{out}(1:m,1:rank) B(1:rank,1:n)\\ , \\] where m is the number of
rows in X and n is the number of columns in X.

B:  [out] The coefficients of the original X with respect to the
computed basis. If B is a non-null pointer and B matches the
dimensions of B, then the coefficients computed during the
orthogonalization routine will be stored in B, similar to calling If B
points to a Teuchos::SerialDenseMatrix with size inconsistent with X,
then a std::invalid_argument exception will be thrown.  Otherwise, if
B is null, the caller will not have access to the computed
coefficients.

This matrix is not necessarily triangular (as in a QR factorization);
see the documentation of specific orthogonalization managers.

Rank of the basis computed by this method, less than or equal to the
number of columns in X. This specifies how many columns in the
returned X and rows in the returned B are valid. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::normalize (   self,
  args 
)

normalize(self, Epetra_MultiVector X, Teuchos::RCP<(Teuchos::SerialDenseMatrix<(int,double)>)> B = Teuchos::null) -> int

virtual int
Anasazi::OrthoManager< ScalarType, MV >::normalize(MV &X,
Teuchos::RCP< Teuchos::SerialDenseMatrix< int, ScalarType > >
B=Teuchos::null) const =0

This method takes a multivector X and attempts to compute a basis for
$colspan(X)$. This basis is orthonormal with respect to innerProd().

This routine returns an integer rank stating the rank of the computed
basis. If X does not have full rank and the normalize() routine does
not attempt to augment the subspace, then rank may be smaller than the
number of columns in X. In this case, only the first rank columns of
output X and first rank rows of B will be valid.

Parameters:
-----------

X:  [in/out] The multivector to be modified.  On output, the first
rank columns of X satisfy \\[ \\langle X[i], X[j] \\rangle =
\\delta_{ij}\\ . \\] Also, \\[ X_{in}(1:m,1:n) =
X_{out}(1:m,1:rank) B(1:rank,1:n)\\ , \\] where m is the number of
rows in X and n is the number of columns in X.

B:  [out] The coefficients of the original X with respect to the
computed basis. If B is a non-null pointer and B matches the
dimensions of B, then the coefficients computed during the
orthogonalization routine will be stored in B, similar to calling If B
points to a Teuchos::SerialDenseMatrix with size inconsistent with X,
then a std::invalid_argument exception will be thrown.  Otherwise, if
B is null, the caller will not have access to the computed
coefficients.

This matrix is not necessarily triangular (as in a QR factorization);
see the documentation of specific orthogonalization managers.

Rank of the basis computed by this method, less than or equal to the
number of columns in X. This specifies how many columns in the
returned X and rows in the returned B are valid. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::orthogError (   self,
  args 
)

orthogError(self, Epetra_MultiVector X1, Epetra_MultiVector X2) -> magnitudeType

virtual
Teuchos::ScalarTraits<ScalarType>::magnitudeType
Anasazi::OrthoManager< ScalarType, MV >::orthogError(const MV &X1,
const MV &X2) const =0

This method computes the error in orthogonality of two multivectors.

This method return some measure of $\\| \\langle X1, X2 \\rangle
\\| $.  See the documentation of specific orthogonalization
managers. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::orthogError (   self,
  args 
)

orthogError(self, Epetra_MultiVector X1, Epetra_MultiVector X2) -> magnitudeType

virtual
Teuchos::ScalarTraits<ScalarType>::magnitudeType
Anasazi::OrthoManager< ScalarType, MV >::orthogError(const MV &X1,
const MV &X2) const =0

This method computes the error in orthogonality of two multivectors.

This method return some measure of $\\| \\langle X1, X2 \\rangle
\\| $.  See the documentation of specific orthogonalization
managers. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::orthonormError (   self,
  args 
)

orthonormError(self, Epetra_MultiVector X) -> magnitudeType

virtual
Teuchos::ScalarTraits< ScalarType >::magnitudeType
Anasazi::OrthoManager< ScalarType, MV >::orthonormError(const MV &X)
const =0

This method computes the error in orthonormality of a multivector.

This method return some measure of $\\| \\langle X, X \\rangle -
I \\| $.  See the documentation of specific orthogonalization
managers. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.

def PyTrilinos::Anasazi::OrthoManagerEpetra::orthonormError (   self,
  args 
)

orthonormError(self, Epetra_MultiVector X) -> magnitudeType

virtual
Teuchos::ScalarTraits< ScalarType >::magnitudeType
Anasazi::OrthoManager< ScalarType, MV >::orthonormError(const MV &X)
const =0

This method computes the error in orthonormality of a multivector.

This method return some measure of $\\| \\langle X, X \\rangle -
I \\| $.  See the documentation of specific orthogonalization
managers. 

Reimplemented in PyTrilinos::Anasazi::MatOrthoManagerEpetra, and PyTrilinos::Anasazi::MatOrthoManagerEpetra.


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