Epetra_FastCrsOperator Class Reference

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

#include <Epetra_FastCrsMatrix.h>

Inheritance diagram for Epetra_FastCrsOperator:

[legend]
List of all members.

Constructors/Destructor

 Epetra_FastCrsOperator (const Epetra_CrsMatrix &Matrix, bool UseFloats=false)
 Epetra_FastCrsOperator constuctor.
virtual ~Epetra_FastCrsOperator ()
 Epetra_FastCrsOperator Destructor.

Post-construction modifications

int UpdateValues (const Epetra_CrsMatrix &Matrix)
 Update values using a matrix with identical structure.

Additional methods required to support the Epetra_Operator interface

char * Label () const
 Returns a character string describing the operator.
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 Epetra_CommComm () const
 Returns a pointer to 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.

Protected Member Functions

int Allocate (bool UseFloats)

Protected Attributes

const Epetra_CrsMatrixCrsMatrix_
int NumMyRows_
int NumMyNonzeros_
double * Values_
float * FloatValues_
int * Indices_
unsigned short * ShortIndices_
bool UsingFloats_
bool UsingShorts_
bool ValuesAllocated_
Epetra_MultiVectorImportVector_
Epetra_MultiVectorExportVector_

Detailed Description

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

The Epetra_FastCrsOperator class takes an existing Epetra_CrsMatrix ojbect, analyzes it and build upon it for the purposes of obtaining the best possible performance on basic operations.

Definition at line 47 of file Epetra_FastCrsMatrix.h.


Constructor & Destructor Documentation

Epetra_FastCrsOperator::Epetra_FastCrsOperator const Epetra_CrsMatrix Matrix,
bool  UseFloats = false
 

Epetra_FastCrsOperator constuctor.

virtual Epetra_FastCrsOperator::~Epetra_FastCrsOperator  )  [virtual]
 

Epetra_FastCrsOperator Destructor.


Member Function Documentation

int Epetra_FastCrsOperator::UpdateValues const Epetra_CrsMatrix Matrix  ) 
 

Update values using a matrix with identical structure.

char* Epetra_FastCrsOperator::Label  )  const [inline, virtual]
 

Returns a character string describing the operator.

Implements Epetra_Operator.

Definition at line 73 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::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.

Definition at line 85 of file Epetra_FastCrsMatrix.h.

double Epetra_FastCrsOperator::NormInf  )  const [inline, virtual]
 

Returns the infinity norm of the global matrix.

Implements Epetra_Operator.

Definition at line 91 of file Epetra_FastCrsMatrix.h.

const Epetra_Comm& Epetra_FastCrsOperator::Comm  )  const [inline, virtual]
 

Returns a pointer to the Epetra_Comm communicator associated with this matrix.

Implements Epetra_Operator.

Definition at line 94 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::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_FastCrsOperator::ApplyInverse const Epetra_MultiVector X,
Epetra_MultiVector Y
const [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, set to 0 if successful.

Implements Epetra_Operator.

bool Epetra_FastCrsOperator::HasNormInf  )  const [inline, virtual]
 

Returns true because this class can compute an Inf-norm.

Implements Epetra_Operator.

Definition at line 116 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UseTranspose  )  const [inline, virtual]
 

Returns the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 119 of file Epetra_FastCrsMatrix.h.

const Epetra_Map& Epetra_FastCrsOperator::OperatorDomainMap  )  const [inline, virtual]
 

Returns the Epetra_Map object associated with the domain of this matrix operator.

Implements Epetra_Operator.

Definition at line 122 of file Epetra_FastCrsMatrix.h.

const Epetra_Map& Epetra_FastCrsOperator::OperatorRangeMap  )  const [inline, virtual]
 

Returns the Epetra_Map object associated with the range of this matrix operator.

Implements Epetra_Operator.

Definition at line 125 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::Allocate bool  UseFloats  )  [protected]
 


Member Data Documentation

const Epetra_CrsMatrix& Epetra_FastCrsOperator::CrsMatrix_ [protected]
 

Definition at line 132 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::NumMyRows_ [protected]
 

Definition at line 133 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::NumMyNonzeros_ [protected]
 

Definition at line 134 of file Epetra_FastCrsMatrix.h.

double* Epetra_FastCrsOperator::Values_ [protected]
 

Definition at line 135 of file Epetra_FastCrsMatrix.h.

float* Epetra_FastCrsOperator::FloatValues_ [protected]
 

Definition at line 136 of file Epetra_FastCrsMatrix.h.

int* Epetra_FastCrsOperator::Indices_ [protected]
 

Definition at line 137 of file Epetra_FastCrsMatrix.h.

unsigned short* Epetra_FastCrsOperator::ShortIndices_ [protected]
 

Definition at line 138 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UsingFloats_ [protected]
 

Definition at line 140 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UsingShorts_ [protected]
 

Definition at line 141 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::ValuesAllocated_ [protected]
 

Definition at line 142 of file Epetra_FastCrsMatrix.h.

Epetra_MultiVector* Epetra_FastCrsOperator::ImportVector_ [mutable, protected]
 

Definition at line 145 of file Epetra_FastCrsMatrix.h.

Epetra_MultiVector* Epetra_FastCrsOperator::ExportVector_ [mutable, protected]
 

Definition at line 146 of file Epetra_FastCrsMatrix.h.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:38:05 2008 for Epetra Package Browser (Single Doxygen Collection) by doxygen 1.3.9.1