Epetra_JadOperator Class Reference

Epetra_JadOperator: A class for constructing matrix objects optimized for common kernels. More...

#include <Epetra_JadOperator.h>

Inheritance diagram for Epetra_JadOperator:

[legend]
Collaboration diagram for Epetra_JadOperator:
[legend]
List of all members.

Public Member Functions

Constructors/Destructor.
 Epetra_JadOperator (const Epetra_RowMatrix &Matrix, bool UseFloats=false, bool UseShorts=false)
 Epetra_JadOperator constuctor.
virtual ~Epetra_JadOperator ()
 Epetra_JadOperator Destructor.
Post-construction modifications.
int UpdateValues (const Epetra_RowMatrix &Matrix, bool CheckStructure=false)
 Update values using a matrix with identical structure.
Additional methods required to support the Epetra_Operator interface.
int SetUseTranspose (bool UseTranspose)
 If set true, transpose of this operator will be applied.
double NormInf () const
 Returns the infinity norm of the global matrix.
const char * Label () const
 Returns a character string describing the operator.
const Epetra_CommComm () const
 Returns the Epetra_Comm communicator associated with this matrix.
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator applied to a Epetra_MultiVector X in Y.
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 Returns the result of a Epetra_Operator inverse applied to an Epetra_MultiVector X in Y.
bool HasNormInf () const
 Returns true because this class can compute an Inf-norm.
bool UseTranspose () const
 Returns the current UseTranspose setting.
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this matrix operator.
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this matrix operator.
Additional accessor methods.
const Epetra_ImportImporter () const
 Returns the Epetra_Import object that contains the import operations for distributed operations.
const Epetra_ExportExporter () const
 Returns the Epetra_Export object that contains the export operations for distributed operations.
int NumGlobalNonzeros () const
 Returns the number of nonzero entries in the global matrix.
I/O Methods.
virtual void Print (ostream &os) const
 Print method.

Protected Member Functions

void UpdateImportVector (int NumVectors) const
void UpdateExportVector (int NumVectors) const
void GeneralMV (bool TransA, double *x, double *y) const
void GeneralMM (bool TransA, double **X, int LDX, double **Y, int LDY, int NumVectors) const
void GeneralMM3RHS (bool TransA, double **X, int LDX, double **Y, int LDY, int NumVectors) const
void GeneralMM2RHS (bool TransA, double *x, int ldx, double *y, int ldy) const
int Allocate (const Epetra_RowMatrix &Matrix, bool UseFloats)

Protected Attributes

double NormInf_
Epetra_CommComm_
Epetra_Map OperatorDomainMap_
Epetra_Map OperatorRangeMap_
int NumMyRows_
int NumMyCols_
int NumMyNonzeros_
int NumGlobalNonzeros_
Epetra_SerialDenseVector Values_
float * FloatValues_
Epetra_IntSerialDenseVector Indices_
unsigned short * ShortIndices_
Epetra_IntSerialDenseVector IndexOffset_
Epetra_IntSerialDenseVector RowPerm_
bool UseTranspose_
bool HasNormInf_
bool UsingFloats_
bool UsingShorts_
int NumJaggedDiagonals_
Epetra_MultiVectorImportVector_
Epetra_MultiVectorExportVector_
Epetra_ImportImporter_
Epetra_ExportExporter_

Detailed Description

Epetra_JadOperator: A class for constructing matrix objects optimized for common kernels.

The Epetra_JadOperator class takes an existing Epetra_RowMatrix ojbect, analyzes it and builds a jagged diagonal equivalent of it. Once constructed, it is also possible to update the values of the matrix with values from another Epetra_RowMatrix that has the identical structure.


Member Function Documentation

int Epetra_JadOperator::Apply const Epetra_MultiVector X,
Epetra_MultiVector Y
const [virtual]
 

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

Parameters:
X (In) - A Epetra_MultiVector of dimension NumVectors to multiply with matrix.
Y (Out) - A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code, set to 0 if successful.

Implements Epetra_Operator.

int Epetra_JadOperator::ApplyInverse const Epetra_MultiVector X,
Epetra_MultiVector Y
const [inline, virtual]
 

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

Parameters:
X (In) - A Epetra_MultiVector of dimension NumVectors to solve for.
Y (Out) - A Epetra_MultiVector of dimension NumVectors containing result.
Returns:
Integer error code = -1.
Warning:
This method is NOT supported.

Implements Epetra_Operator.

int Epetra_JadOperator::SetUseTranspose bool  UseTranspose  )  [inline, 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:
In UseTranspose -If true, multiply by the transpose of operator, otherwise just use operator.
Returns:
Always returns 0.

Implements Epetra_Operator.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:42:06 2008 for Epetra by doxygen 1.3.9.1