AztecOO  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Protected Attributes | List of all members
AztecOO_Operator Class Reference

AztecOO_Operator: An implementation of the Epetra_Operator class. More...

#include <AztecOO_Operator.h>

Inheritance diagram for AztecOO_Operator:
Inheritance graph
[legend]
Collaboration diagram for AztecOO_Operator:
Collaboration graph
[legend]

Public Member Functions

 AztecOO_Operator (AztecOO *solver, int NumIters, double Tol=0.0)
 Uses an AztecOO instance to implement the Epetra_Operator interface. More...
 
 ~AztecOO_Operator ()
 Destructor.
 
int SetUseTranspose (bool use_transpose)
 If set true, transpose of this operator will be applied. More...
 
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a AztecOO_Operator applied to a Epetra_MultiVector X in Y. More...
 
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a AztecOO_Operator inverse applied to an Epetra_MultiVector X in Y. More...
 
double NormInf () const
 Returns the infinity norm of the global matrix.
 
const char * Label () const
 Returns a character string describing the operator.
 
AztecOOSolver () const
 Returns a pointer to the AztecOO solver object that was used to create this AztecOO_Operator object.
 
int NumIters () const
 Returns the number of iterations that will be performed with the AztecOO solver.
 
double Tol () const
 Returns the tolerance this will be used by the AztecOO solver.
 
bool UseTranspose () const
 Returns the current UseTranspose setting.
 
bool HasNormInf () const
 Returns true if the this object can provide an approximate Inf-norm, false otherwise.
 
const Epetra_CommComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this operator.
 
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_BlockMap object associated with the domain of this matrix operator.
 
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_BlockMap object associated with the range of this matrix operator.
 

Protected Attributes

AztecOOsolver_
 
int NumIters_
 
double Tol_
 
const char * Label_
 

Detailed Description

AztecOO_Operator: An implementation of the Epetra_Operator class.

The AztecOO_Operator class implements Epetra_Operator using a pre-constructed AztecOO solver object. Once constructed, an AztecOO_Operator can be used as a preconditioner within another AztecOO solver object.

Constructor & Destructor Documentation

AztecOO_Operator::AztecOO_Operator ( AztecOO solver,
int  NumIters,
double  Tol = 0.0 
)

Uses an AztecOO instance to implement the Epetra_Operator interface.

Facilitates the use of an AztecOO solver instance as an operator. This is particularly designed for using AztecOO as a preconditioner within another AztecOO instance.

Parameters
In- A fully-constructed AztecOO object.
In- Number of iterations that should be performed. Exactly this many iterations will be done if Tol = 0.0.
In- Tolerance used for each application of AztecOO solver.

Member Function Documentation

int AztecOO_Operator::Apply ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
inlinevirtual

Returns the result of a AztecOO_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.
Warning
- This method has no effect and returns -1 as error code.

Implements Epetra_Operator.

int AztecOO_Operator::ApplyInverse ( const Epetra_MultiVector X,
Epetra_MultiVector Y 
) const
virtual

Returns the result of a AztecOO_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.

Implements Epetra_Operator.

References OperatorDomainMap(), OperatorRangeMap(), AztecOO::recursiveIterate(), AztecOO::SetLHS(), and AztecOO::SetRHS().

int AztecOO_Operator::SetUseTranspose ( bool  use_transpose)
inlinevirtual

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
Inuse_transpose - If true, multiply by the transpose of operator, otherwise just use operator.
Warning
- This returns -1 if use_transpose is true, because tranpse is not supported.

Implements Epetra_Operator.


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