NOX::Epetra::Operator Class Reference

Pure virtual class for creating an Operator for NOX. This class derives from the Epetra_Operator class with a single additional method: compute(). This allows the user to supply their own preconditioner or jacobian operators. More...

#include <NOX_Epetra_Operator.H>

Inheritance diagram for NOX::Epetra::Operator:

[legend]
Collaboration diagram for NOX::Epetra::Operator:
[legend]
List of all members.

Public Member Functions

 Operator ()
 Constructor.
virtual ~Operator ()
 Pure virtual destructor.
virtual int SetUseTranspose (bool UseTranspose)=0
 If set true, transpose of this operator will be applied.
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.
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.
virtual double NormInf () const =0
 Returns the infinity norm of the global matrix.
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 reference to the Epetra_Comm communicator associated with this operator.
virtual const Epetra_MapOperatorDomainMap () const =0
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator.
virtual const Epetra_MapOperatorRangeMap () const =0
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.
virtual bool compute (const Epetra_Vector &x, const Epetra_Operator *J)=0
 Compute the Operator given the specified input vector, x. In some cases the compute function may need additional information from an auxiliary operator, so we allow for one to be supplied. For example, if a preconditioner is implemented that relies on a separate Jacobian matrix, it could take the Jacobian as the second argument and extract the required information.

Detailed Description

Pure virtual class for creating an Operator for NOX. This class derives from the Epetra_Operator class with a single additional method: compute(). This allows the user to supply their own preconditioner or jacobian operators.


Member Function Documentation

virtual int NOX::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:
X - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
Y - A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code, set to 0 if successful.

Implements Epetra_Operator.

Implemented in NOX::Epetra::JacobiPreconditioner.

virtual int NOX::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:
X - A Epetra_MultiVector of dimension NumVectors to solve for.
Y -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.

Implements Epetra_Operator.

Implemented in NOX::Epetra::JacobiPreconditioner.

virtual int NOX::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:
UseTranspose -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.

Implements Epetra_Operator.

Implemented in NOX::Epetra::JacobiPreconditioner.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:40:49 2008 for NOX by doxygen 1.3.9.1