Epetra  Development
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
List of all members
Epetra_Operator Class Referenceabstract

Epetra_Operator: A pure virtual class for using real-valued double-precision operators. More...

#include <Epetra_Operator.h>

Inheritance diagram for Epetra_Operator:
Inheritance graph
[legend]

Public Member Functions

Destructor
virtual ~Epetra_Operator ()
 Destructor.
 
Attribute set methods
virtual int SetUseTranspose (bool UseTranspose)=0
 If set true, transpose of this operator will be applied. More...
 
Mathematical functions
virtual int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const =0
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y. More...
 
virtual int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const =0
 Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y. More...
 
virtual double NormInf () const =0
 Returns the infinity norm of the global matrix.
 
Attribute access functions
virtual const char * Label () const =0
 Returns a character string describing the operator.
 
virtual bool UseTranspose () const =0
 Returns the current UseTranspose setting.
 
virtual bool HasNormInf () const =0
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
 
virtual const Epetra_CommComm () const =0
 Returns a pointer to the Epetra_Comm communicator associated with this operator.
 
virtual const Epetra_MapOperatorDomainMap () const =0
 Returns the Epetra_Map object associated with the domain of this operator.
 
virtual const Epetra_MapOperatorRangeMap () const =0
 Returns the Epetra_Map object associated with the range of this operator.
 

Detailed Description

Epetra_Operator: A pure virtual class for using real-valued double-precision operators.

The Epetra_Operator class is a pure virtual class (specifies interface only) that enable the use of real-valued double-precision operators. It is currently implemented by both the Epetra_CrsMatrix and Epetra_VbrMatrix classes and the Ifpack_CrsRiluk preconditioner class.

Member Function Documentation

virtual int Epetra_Operator::Apply ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
pure virtual

Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.

Parameters
InX - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
OutY -A Epetra_MultiVector of dimension NumVectors containing result.
Returns
Integer error code, set to 0 if successful.

Implemented in Epetra_CrsMatrix, Epetra_VbrMatrix, Epetra_BasicRowMatrix, Epetra_MsrMatrix, Epetra_FastCrsOperator, and Epetra_InvOperator.

Referenced by Epetra_InvOperator::ApplyInverse().

virtual int Epetra_Operator::ApplyInverse ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
pure virtual

Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.

Parameters
InX - A Epetra_MultiVector of dimension NumVectors to solve for.
OutY -A Epetra_MultiVector of dimension NumVectors containing result.
Returns
Integer error code, set to 0 if successful.
Warning
In order to work with AztecOO, any implementation of this method must support the case where X and Y are the same object.

Implemented in Epetra_CrsMatrix, Epetra_VbrMatrix, Epetra_BasicRowMatrix, Epetra_MsrMatrix, Epetra_FastCrsOperator, and Epetra_InvOperator.

Referenced by Epetra_InvOperator::Apply().

virtual int Epetra_Operator::SetUseTranspose ( bool  UseTranspose)
pure virtual

If set true, transpose of this operator will be applied.

This flag allows the transpose of the given operator to be used implicitly.  Setting this flag
affects only the Apply() and ApplyInverse() methods.  If the implementation of this interface

does not support transpose use, this method should return a value of -1.

Parameters
InUseTranspose -If true, multiply by the transpose of operator, otherwise just use operator.
Returns
Integer error code, set to 0 if successful. Set to -1 if this implementation does not support transpose.

Implemented in Epetra_CrsMatrix, Epetra_VbrMatrix, Epetra_BasicRowMatrix, Epetra_MsrMatrix, Epetra_FastCrsOperator, and Epetra_InvOperator.

Referenced by Epetra_InvOperator::SetUseTranspose().


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