Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Member Functions | Protected Attributes | List of all members
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:
Inheritance graph
[legend]

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_
 
- Protected Attributes inherited from Epetra_CompObject
Epetra_FlopsFlopCounter_
 

Constructors/Destructor

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

Post-construction modifications

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

Additional methods required to support the Epetra_Operator interface

char * Label () const
 Returns a character string describing the operator. More...
 
int SetUseTranspose (bool UseTranspose)
 If set true, transpose of this operator will be applied. More...
 
double NormInf () const
 Returns the infinity norm of the global matrix. More...
 
const Epetra_CommComm () const
 Returns a pointer to the Epetra_Comm communicator associated with this matrix. More...
 
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. More...
 
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. More...
 
bool HasNormInf () const
 Returns true because this class can compute an Inf-norm. More...
 
bool UseTranspose () const
 Returns the current UseTranspose setting. More...
 
const Epetra_MapOperatorDomainMap () const
 Returns the Epetra_Map object associated with the domain of this matrix operator. More...
 
const Epetra_MapOperatorRangeMap () const
 Returns the Epetra_Map object associated with the range of this matrix operator. More...
 

Additional Inherited Members

- Public Member Functions inherited from Epetra_CompObject
Epetra_CompObjectoperator= (const Epetra_CompObject &src)
 
 Epetra_CompObject ()
 Basic Epetra_CompObject constuctor. More...
 
 Epetra_CompObject (const Epetra_CompObject &Source)
 Epetra_CompObject copy constructor. More...
 
virtual ~Epetra_CompObject ()
 Epetra_CompObject destructor. More...
 
void SetFlopCounter (const Epetra_Flops &FlopCounter_in)
 Set the internal Epetra_Flops() pointer. More...
 
void SetFlopCounter (const Epetra_CompObject &CompObject)
 Set the internal Epetra_Flops() pointer to the flop counter of another Epetra_CompObject. More...
 
void UnsetFlopCounter ()
 Set the internal Epetra_Flops() pointer to 0 (no flops counted). More...
 
Epetra_FlopsGetFlopCounter () const
 Get the pointer to the Epetra_Flops() object associated with this object, returns 0 if none. More...
 
void ResetFlops () const
 Resets the number of floating point operations to zero for this multi-vector. More...
 
double Flops () const
 Returns the number of floating point operations with this multi-vector. More...
 
void UpdateFlops (int Flops_in) const
 Increment Flop count for this object. More...
 
void UpdateFlops (long int Flops_in) const
 Increment Flop count for this object. More...
 
void UpdateFlops (long long Flops_in) const
 Increment Flop count for this object. More...
 
void UpdateFlops (double Flops_in) const
 Increment Flop count for this object. More...
 
void UpdateFlops (float Flops_in) const
 Increment Flop count for this object. More...
 
- Public Member Functions inherited from Epetra_Operator
virtual ~Epetra_Operator ()
 Destructor. More...
 

Detailed Description

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

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

Definition at line 59 of file Epetra_FastCrsMatrix.h.

Constructor & Destructor Documentation

Epetra_FastCrsOperator::Epetra_FastCrsOperator ( const Epetra_CrsMatrix Matrix,
bool  UseFloats = false 
)
virtual Epetra_FastCrsOperator::~Epetra_FastCrsOperator ( )
virtual

Member Function Documentation

int Epetra_FastCrsOperator::UpdateValues ( const Epetra_CrsMatrix Matrix)

Update values using a matrix with identical structure.

char* Epetra_FastCrsOperator::Label ( ) const
inlinevirtual

Returns a character string describing the operator.

Implements Epetra_Operator.

Definition at line 85 of file Epetra_FastCrsMatrix.h.

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

Implements Epetra_Operator.

Definition at line 97 of file Epetra_FastCrsMatrix.h.

double Epetra_FastCrsOperator::NormInf ( ) const
inlinevirtual

Returns the infinity norm of the global matrix.

Implements Epetra_Operator.

Definition at line 103 of file Epetra_FastCrsMatrix.h.

const Epetra_Comm& Epetra_FastCrsOperator::Comm ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 106 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
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 128 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UseTranspose ( ) const
inlinevirtual

Returns the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 131 of file Epetra_FastCrsMatrix.h.

const Epetra_Map& Epetra_FastCrsOperator::OperatorDomainMap ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 134 of file Epetra_FastCrsMatrix.h.

const Epetra_Map& Epetra_FastCrsOperator::OperatorRangeMap ( ) const
inlinevirtual

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

Implements Epetra_Operator.

Definition at line 137 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 144 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::NumMyRows_
protected

Definition at line 145 of file Epetra_FastCrsMatrix.h.

int Epetra_FastCrsOperator::NumMyNonzeros_
protected

Definition at line 146 of file Epetra_FastCrsMatrix.h.

double* Epetra_FastCrsOperator::Values_
protected

Definition at line 147 of file Epetra_FastCrsMatrix.h.

float* Epetra_FastCrsOperator::FloatValues_
protected

Definition at line 148 of file Epetra_FastCrsMatrix.h.

int* Epetra_FastCrsOperator::Indices_
protected

Definition at line 149 of file Epetra_FastCrsMatrix.h.

unsigned short* Epetra_FastCrsOperator::ShortIndices_
protected

Definition at line 150 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UsingFloats_
protected

Definition at line 152 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::UsingShorts_
protected

Definition at line 153 of file Epetra_FastCrsMatrix.h.

bool Epetra_FastCrsOperator::ValuesAllocated_
protected

Definition at line 154 of file Epetra_FastCrsMatrix.h.

Epetra_MultiVector* Epetra_FastCrsOperator::ImportVector_
mutableprotected

Definition at line 157 of file Epetra_FastCrsMatrix.h.

Epetra_MultiVector* Epetra_FastCrsOperator::ExportVector_
mutableprotected

Definition at line 158 of file Epetra_FastCrsMatrix.h.


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