Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Private Member Functions | Private Attributes | List of all members
Epetra_RowMatrixTransposer Class Reference

Epetra_RowMatrixTransposer: A class for transposing an Epetra_RowMatrix object. More...

#include <Epetra_RowMatrixTransposer.h>

Private Member Functions

void DeleteData ()
 
Epetra_RowMatrixTransposeroperator= (const Epetra_RowMatrixTransposer &src)
 

Private Attributes

Epetra_RowMatrixOrigMatrix_
 
Epetra_CrsMatrixTransposeMatrix_
 
Epetra_ExportTransposeExporter_
 
Epetra_MapTransposeRowMap_
 
bool TransposeCreated_
 
bool MakeDataContiguous_
 
int NumMyRows_
 
int NumMyCols_
 
int MaxNumEntries_
 
int * Indices_
 
double * Values_
 
int * TransNumNz_
 
int ** TransIndices_
 
double ** TransValues_
 
int * TransMyGlobalEquations_
 
bool OrigMatrixIsCrsMatrix_
 

Constructors/destructors

 Epetra_RowMatrixTransposer (Epetra_RowMatrix *OrigMatrix)
 Primary Epetra_RowMatrixTransposer constructor. More...
 
 Epetra_RowMatrixTransposer (const Epetra_RowMatrixTransposer &Source)
 Epetra_RowMatrixTransposer copy constructor. More...
 
virtual ~Epetra_RowMatrixTransposer ()
 Epetra_RowMatrixTransposer destructor. More...
 

Forward transformation methods

int CreateTranspose (const bool MakeDataContiguous, Epetra_CrsMatrix *&TransposeMatrix, Epetra_Map *TransposeRowMap=0)
 Generate a new Epetra_CrsMatrix as the transpose of an Epetra_RowMatrix passed into the constructor. More...
 
int UpdateTransposeValues (Epetra_RowMatrix *MatrixWithNewValues)
 Update the values of an already-redistributed problem. More...
 

Reverse transformation methods

int UpdateOriginalMatrixValues ()
 Update values of original matrix (Not implemented and not sure if we will implement this). More...
 

Attribute accessor methods

const Epetra_MapTransposeRowMap () const
 Returns const reference to the Epetra_Map object describing the row distribution of the transpose matrix. More...
 
const Epetra_ExportTransposeExporter () const
 Returns const reference to the Epetra_Export object used to redistribute the original matrix. More...
 

Detailed Description

Epetra_RowMatrixTransposer: A class for transposing an Epetra_RowMatrix object.

This class provides capabilities to construct a transpose matrix of an existing Epetra_RowMatrix object and (optionally) redistribute it across a parallel distributed memory machine.

Definition at line 58 of file Epetra_RowMatrixTransposer.h.

Constructor & Destructor Documentation

Epetra_RowMatrixTransposer::Epetra_RowMatrixTransposer ( Epetra_RowMatrix OrigMatrix)

Primary Epetra_RowMatrixTransposer constructor.

Parameters
Matrix(In) An existing Epetra_RowMatrix object. The Epetra_RowMatrix, the LHS and RHS pointers do not need to be defined before this constructor is called.
Returns
Pointer to a Epetra_RowMatrixTransposer object.

Definition at line 55 of file Epetra_RowMatrixTransposer.cpp.

Epetra_RowMatrixTransposer::Epetra_RowMatrixTransposer ( const Epetra_RowMatrixTransposer Source)

Epetra_RowMatrixTransposer copy constructor.

Definition at line 75 of file Epetra_RowMatrixTransposer.cpp.

Epetra_RowMatrixTransposer::~Epetra_RowMatrixTransposer ( )
virtual

Epetra_RowMatrixTransposer destructor.

Definition at line 98 of file Epetra_RowMatrixTransposer.cpp.

Member Function Documentation

int Epetra_RowMatrixTransposer::CreateTranspose ( const bool  MakeDataContiguous,
Epetra_CrsMatrix *&  TransposeMatrix,
Epetra_Map TransposeRowMap = 0 
)

Generate a new Epetra_CrsMatrix as the transpose of an Epetra_RowMatrix passed into the constructor.

Constructs a new Epetra_CrsMatrix that is a copy of the Epetra_RowMatrix passed in to the constructor.

Parameters
MakeDataContiguous(In) Causes the output matrix, LHS and RHS to be stored in a form compatible with Fortran-style solvers. The output matrix will be compatible with the Harwell-Boeing compressed column format. The RHS and LHS will be stored such that the last value in column j of the multivector is stored next to the first value in column j+1.
TransposeRowMap(Optional/In) If this argument is defined, the transpose matrix will be distributed using this map as the row map for the transpose. If it is set to zero, the transpose matrix will use the OrigMatrix->RowMatrixDomainMap as the row map.
Returns
Integer error code, 0 if no errors. Negative if some fatal error occured.

Definition at line 133 of file Epetra_RowMatrixTransposer.cpp.

int Epetra_RowMatrixTransposer::UpdateTransposeValues ( Epetra_RowMatrix MatrixWithNewValues)

Update the values of an already-redistributed problem.

Updates the values of an already-redistributed problem. This method allows updating the redistributed problem without allocating new storage.

Parameters
MatrixWithNewValues(In) The values from MatrixWithNewValues will be copied into the TransposeMatrix. The MatrixWithNewValues object must be identical in structure to the original matrix object used to create this instance of Epetra_RowMatrixTransposer.
Returns
Integer error code, 0 if no errors. Negative if some fatal error occured.

Definition at line 279 of file Epetra_RowMatrixTransposer.cpp.

int Epetra_RowMatrixTransposer::UpdateOriginalMatrixValues ( )

Update values of original matrix (Not implemented and not sure if we will implement this).

const Epetra_Map& Epetra_RowMatrixTransposer::TransposeRowMap ( ) const
inline

Returns const reference to the Epetra_Map object describing the row distribution of the transpose matrix.

The RedistExporter object can be used to redistribute other Epetra_DistObject objects whose maps are compatible with the original linear problem map, or with the RedistMap().

Warning
Must not be called before CreateTranspose()is called.

Definition at line 134 of file Epetra_RowMatrixTransposer.h.

const Epetra_Export& Epetra_RowMatrixTransposer::TransposeExporter ( ) const
inline

Returns const reference to the Epetra_Export object used to redistribute the original matrix.

The TransposeExporter object can be used to redistribute other Epetra_DistObject objects whose maps are compatible with the original matrix.

Warning
Must not be called before CreateTranspose() is called.

Definition at line 140 of file Epetra_RowMatrixTransposer.h.

void Epetra_RowMatrixTransposer::DeleteData ( )
private

Definition at line 105 of file Epetra_RowMatrixTransposer.cpp.

Epetra_RowMatrixTransposer & Epetra_RowMatrixTransposer::operator= ( const Epetra_RowMatrixTransposer src)
private

Definition at line 353 of file Epetra_RowMatrixTransposer.cpp.

Member Data Documentation

Epetra_RowMatrix* Epetra_RowMatrixTransposer::OrigMatrix_
private

Definition at line 147 of file Epetra_RowMatrixTransposer.h.

Epetra_CrsMatrix* Epetra_RowMatrixTransposer::TransposeMatrix_
private

Definition at line 148 of file Epetra_RowMatrixTransposer.h.

Epetra_Export* Epetra_RowMatrixTransposer::TransposeExporter_
private

Definition at line 149 of file Epetra_RowMatrixTransposer.h.

Epetra_Map* Epetra_RowMatrixTransposer::TransposeRowMap_
private

Definition at line 150 of file Epetra_RowMatrixTransposer.h.

bool Epetra_RowMatrixTransposer::TransposeCreated_
private

Definition at line 151 of file Epetra_RowMatrixTransposer.h.

bool Epetra_RowMatrixTransposer::MakeDataContiguous_
private

Definition at line 152 of file Epetra_RowMatrixTransposer.h.

int Epetra_RowMatrixTransposer::NumMyRows_
private

Definition at line 153 of file Epetra_RowMatrixTransposer.h.

int Epetra_RowMatrixTransposer::NumMyCols_
private

Definition at line 154 of file Epetra_RowMatrixTransposer.h.

int Epetra_RowMatrixTransposer::MaxNumEntries_
private

Definition at line 155 of file Epetra_RowMatrixTransposer.h.

int* Epetra_RowMatrixTransposer::Indices_
private

Definition at line 156 of file Epetra_RowMatrixTransposer.h.

double* Epetra_RowMatrixTransposer::Values_
private

Definition at line 157 of file Epetra_RowMatrixTransposer.h.

int* Epetra_RowMatrixTransposer::TransNumNz_
private

Definition at line 158 of file Epetra_RowMatrixTransposer.h.

int** Epetra_RowMatrixTransposer::TransIndices_
private

Definition at line 159 of file Epetra_RowMatrixTransposer.h.

double** Epetra_RowMatrixTransposer::TransValues_
private

Definition at line 160 of file Epetra_RowMatrixTransposer.h.

int* Epetra_RowMatrixTransposer::TransMyGlobalEquations_
private

Definition at line 161 of file Epetra_RowMatrixTransposer.h.

bool Epetra_RowMatrixTransposer::OrigMatrixIsCrsMatrix_
private

Definition at line 162 of file Epetra_RowMatrixTransposer.h.


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