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]
List of all members.

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.

Definition at line 59 of file Epetra_JadOperator.h.


Constructor & Destructor Documentation

Epetra_JadOperator::Epetra_JadOperator const Epetra_RowMatrix Matrix,
bool  UseFloats = false,
bool  UseShorts = false
 

Epetra_JadOperator constuctor.

Definition at line 52 of file Epetra_JadOperator.cpp.

Epetra_JadOperator::~Epetra_JadOperator  )  [virtual]
 

Epetra_JadOperator Destructor.

Definition at line 83 of file Epetra_JadOperator.cpp.


Member Function Documentation

int Epetra_JadOperator::UpdateValues const Epetra_RowMatrix Matrix,
bool  CheckStructure = false
 

Update values using a matrix with identical structure.

Definition at line 100 of file Epetra_JadOperator.cpp.

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.

Definition at line 112 of file Epetra_JadOperator.h.

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

Returns the infinity norm of the global matrix.

Implements Epetra_Operator.

Definition at line 120 of file Epetra_JadOperator.h.

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

Returns a character string describing the operator.

Reimplemented from Epetra_Object.

Definition at line 123 of file Epetra_JadOperator.h.

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

Returns the Epetra_Comm communicator associated with this matrix.

Implements Epetra_Operator.

Definition at line 126 of file Epetra_JadOperator.h.

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.

Definition at line 257 of file Epetra_JadOperator.cpp.

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.

Definition at line 146 of file Epetra_JadOperator.h.

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

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

Implements Epetra_Operator.

Definition at line 149 of file Epetra_JadOperator.h.

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

Returns the current UseTranspose setting.

Implements Epetra_Operator.

Definition at line 152 of file Epetra_JadOperator.h.

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

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

Implements Epetra_Operator.

Definition at line 155 of file Epetra_JadOperator.h.

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

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

Implements Epetra_Operator.

Definition at line 158 of file Epetra_JadOperator.h.

const Epetra_Import* Epetra_JadOperator::Importer  )  const [inline]
 

Returns the Epetra_Import object that contains the import operations for distributed operations.

Definition at line 166 of file Epetra_JadOperator.h.

const Epetra_Export* Epetra_JadOperator::Exporter  )  const [inline]
 

Returns the Epetra_Export object that contains the export operations for distributed operations.

Definition at line 169 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumGlobalNonzeros  )  const [inline]
 

Returns the number of nonzero entries in the global matrix.

Definition at line 177 of file Epetra_JadOperator.h.

void Epetra_JadOperator::Print ostream &  os  )  const [virtual]
 

Print method.

Reimplemented from Epetra_Object.

Definition at line 807 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::UpdateImportVector int  NumVectors  )  const [protected]
 

Definition at line 336 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::UpdateExportVector int  NumVectors  )  const [protected]
 

Definition at line 350 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::GeneralMV bool  TransA,
double *  x,
double *  y
const [protected]
 

Definition at line 652 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::GeneralMM bool  TransA,
double **  X,
int  LDX,
double **  Y,
int  LDY,
int  NumVectors
const [protected]
 

Definition at line 364 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::GeneralMM3RHS bool  TransA,
double **  X,
int  LDX,
double **  Y,
int  LDY,
int  NumVectors
const [protected]
 

Definition at line 378 of file Epetra_JadOperator.cpp.

void Epetra_JadOperator::GeneralMM2RHS bool  TransA,
double *  x,
int  ldx,
double *  y,
int  ldy
const [protected]
 

Definition at line 555 of file Epetra_JadOperator.cpp.

int Epetra_JadOperator::Allocate const Epetra_RowMatrix Matrix,
bool  UseFloats
[protected]
 

Definition at line 152 of file Epetra_JadOperator.cpp.


Member Data Documentation

double Epetra_JadOperator::NormInf_ [protected]
 

Definition at line 196 of file Epetra_JadOperator.h.

Epetra_Comm* Epetra_JadOperator::Comm_ [protected]
 

Definition at line 197 of file Epetra_JadOperator.h.

Epetra_Map Epetra_JadOperator::OperatorDomainMap_ [protected]
 

Definition at line 198 of file Epetra_JadOperator.h.

Epetra_Map Epetra_JadOperator::OperatorRangeMap_ [protected]
 

Definition at line 199 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumMyRows_ [protected]
 

Definition at line 202 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumMyCols_ [protected]
 

Definition at line 203 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumMyNonzeros_ [protected]
 

Definition at line 204 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumGlobalNonzeros_ [protected]
 

Definition at line 205 of file Epetra_JadOperator.h.

Epetra_SerialDenseVector Epetra_JadOperator::Values_ [protected]
 

Definition at line 206 of file Epetra_JadOperator.h.

float* Epetra_JadOperator::FloatValues_ [protected]
 

Definition at line 207 of file Epetra_JadOperator.h.

Epetra_IntSerialDenseVector Epetra_JadOperator::Indices_ [protected]
 

Definition at line 208 of file Epetra_JadOperator.h.

unsigned short* Epetra_JadOperator::ShortIndices_ [protected]
 

Definition at line 209 of file Epetra_JadOperator.h.

Epetra_IntSerialDenseVector Epetra_JadOperator::IndexOffset_ [protected]
 

Definition at line 210 of file Epetra_JadOperator.h.

Epetra_IntSerialDenseVector Epetra_JadOperator::RowPerm_ [protected]
 

Definition at line 211 of file Epetra_JadOperator.h.

bool Epetra_JadOperator::UseTranspose_ [protected]
 

Definition at line 213 of file Epetra_JadOperator.h.

bool Epetra_JadOperator::HasNormInf_ [protected]
 

Definition at line 214 of file Epetra_JadOperator.h.

bool Epetra_JadOperator::UsingFloats_ [protected]
 

Definition at line 215 of file Epetra_JadOperator.h.

bool Epetra_JadOperator::UsingShorts_ [protected]
 

Definition at line 216 of file Epetra_JadOperator.h.

int Epetra_JadOperator::NumJaggedDiagonals_ [protected]
 

Definition at line 217 of file Epetra_JadOperator.h.

Epetra_MultiVector* Epetra_JadOperator::ImportVector_ [mutable, protected]
 

Definition at line 220 of file Epetra_JadOperator.h.

Epetra_MultiVector* Epetra_JadOperator::ExportVector_ [mutable, protected]
 

Definition at line 221 of file Epetra_JadOperator.h.

Epetra_Import* Epetra_JadOperator::Importer_ [protected]
 

Definition at line 222 of file Epetra_JadOperator.h.

Epetra_Export* Epetra_JadOperator::Exporter_ [protected]
 

Definition at line 223 of file Epetra_JadOperator.h.


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