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

#include <EpetraExt_BlockCrsMatrix.h>

Inheritance diagram for EpetraExt::BlockCrsMatrix:
Inheritance graph
[legend]

Public Member Functions

const std::vector< int > & Stencil (int i=0)
 Local Stencil Info. More...
 
int RowIndex (int i=0)
 RowIndex. More...
 
const std::vector< long long > & Stencil64 (int i=0)
 Local Stencil Info. More...
 
long long RowIndex64 (int i=0)
 RowIndex. More...
 
void LoadBlock (const Epetra_RowMatrix &BaseMatrix, const int Row, const int Col)
 Routine for loading a base matrices values into the large Block Matrix The Row and Col arguments are indices into RowStencil. More...
 
void LoadBlock (const Epetra_RowMatrix &BaseMatrix, const long long Row, const long long Col)
 
void SumIntoBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const int Row, const int Col)
 Routine for summing base matrices values into the large Block Matrix The Row and Col arguments are indices into RowStencil. More...
 
void SumIntoBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const long long Row, const long long Col)
 
void SumIntoGlobalBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const int Row, const int Col)
 Routine for summing base matrices values into the large Block Matrix The Row and Col arguments are global indices. More...
 
void SumIntoGlobalBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const long long Row, const long long Col)
 
void BlockSumIntoGlobalValues (const int BaseRow, int NumIndices, double *Values, const int *Indices, const int Row, const int Col)
 Sum Entries into Block matrix using base-matrix numbering plus block Row and Col The Row and Col arguments are indices into RowStencil. More...
 
void BlockSumIntoGlobalValues (const long long BaseRow, int NumIndices, double *Values, const long long *Indices, const long long Row, const long long Col)
 
void BlockReplaceGlobalValues (const int BaseRow, int NumIndices, double *Values, const int *Indices, const int Row, const int Col)
 
void BlockReplaceGlobalValues (const long long BaseRow, int NumIndices, double *Values, const long long *Indices, const long long Row, const long long Col)
 
void BlockExtractGlobalRowView (const int BaseRow, int &NumEntries, double *&Values, const int Row, const int Col)
 
void BlockExtractGlobalRowView (const long long BaseRow, int &NumEntries, double *&Values, const long long Row, const long long Col)
 
void ExtractBlock (Epetra_CrsMatrix &BaseMatrix, const int Row, const int Col)
 
void ExtractBlock (Epetra_CrsMatrix &BaseMatrix, const long long Row, const long long Col)
 
template<>
std::vector< int > & TRowIndices ()
 
template<>
std::vector< std::vector< int > > & TRowStencil ()
 
template<>
std::vector< long long > & TRowIndices ()
 
template<>
std::vector< std::vector< long
long > > & 
TRowStencil ()
 
- Public Member Functions inherited from Epetra_CrsMatrix
void FusedImport (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Import &RowImporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
void FusedExport (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Export &RowExporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
void FusedImport (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Import &RowImporter, const Epetra_Import *DomainImporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
void FusedExport (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Export &RowExporter, const Epetra_Export *DomainExporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
 Epetra_CrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, const int *NumEntriesPerRow, bool StaticProfile=false)
 
 Epetra_CrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, int NumEntriesPerRow, bool StaticProfile=false)
 
 Epetra_CrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, const Epetra_Map &ColMap, const int *NumEntriesPerRow, bool StaticProfile=false)
 
 Epetra_CrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, const Epetra_Map &ColMap, int NumEntriesPerRow, bool StaticProfile=false)
 
 Epetra_CrsMatrix (Epetra_DataAccess CV, const Epetra_CrsGraph &Graph)
 
 Epetra_CrsMatrix (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Import &RowImporter, const Epetra_Map *DomainMap=0, const Epetra_Map *RangeMap=0, bool RestrictCommunicator=false)
 
 Epetra_CrsMatrix (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Import &RowImporter, const Epetra_Import *DomainImporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
 Epetra_CrsMatrix (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Export &RowExporter, const Epetra_Map *DomainMap=0, const Epetra_Map *RangeMap=0, bool RestrictCommunicator=false)
 
 Epetra_CrsMatrix (const Epetra_CrsMatrix &SourceMatrix, const Epetra_Export &RowExporter, const Epetra_Export *DomainExporter, const Epetra_Map *DomainMap, const Epetra_Map *RangeMap, bool RestrictCommunicator)
 
 Epetra_CrsMatrix (const Epetra_CrsMatrix &Matrix)
 
virtual ~Epetra_CrsMatrix ()
 
Epetra_CrsMatrixoperator= (const Epetra_CrsMatrix &src)
 
int PutScalar (double ScalarConstant)
 
int Scale (double ScalarConstant)
 
virtual int InsertGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
virtual int InsertGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
 
virtual int InsertGlobalValues (int GlobalRow, int NumEntries, double *Values, int *Indices)
 
virtual int InsertGlobalValues (long long GlobalRow, int NumEntries, double *Values, long long *Indices)
 
virtual int ReplaceGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
virtual int ReplaceGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
 
virtual int SumIntoGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
virtual int SumIntoGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
 
int InsertMyValues (int MyRow, int NumEntries, const double *Values, const int *Indices)
 
int InsertMyValues (int MyRow, int NumEntries, double *Values, int *Indices)
 
int ReplaceMyValues (int MyRow, int NumEntries, const double *Values, const int *Indices)
 
int SumIntoMyValues (int MyRow, int NumEntries, const double *Values, const int *Indices)
 
int ReplaceDiagonalValues (const Epetra_Vector &Diagonal)
 
int FillComplete (bool OptimizeDataStorage=true)
 
int FillComplete (const Epetra_Map &DomainMap, const Epetra_Map &RangeMap, bool OptimizeDataStorage=true)
 
int OptimizeStorage ()
 
int MakeDataContiguous ()
 
int ExtractGlobalRowCopy (int GlobalRow, int Length, int &NumEntries, double *Values, int *Indices) const
 
int ExtractGlobalRowCopy (long long GlobalRow, int Length, int &NumEntries, double *Values, long long *Indices) const
 
int ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values, int *Indices) const
 
int ExtractGlobalRowCopy (int GlobalRow, int Length, int &NumEntries, double *Values) const
 
int ExtractGlobalRowCopy (long long GlobalRow, int Length, int &NumEntries, double *Values) const
 
int ExtractMyRowCopy (int MyRow, int Length, int &NumEntries, double *Values) const
 
int ExtractDiagonalCopy (Epetra_Vector &Diagonal) const
 
int ExtractGlobalRowView (int GlobalRow, int &NumEntries, double *&Values, int *&Indices) const
 
int ExtractGlobalRowView (long long GlobalRow, int &NumEntries, double *&Values, long long *&Indices) const
 
int ExtractMyRowView (int MyRow, int &NumEntries, double *&Values, int *&Indices) const
 
int ExtractGlobalRowView (int GlobalRow, int &NumEntries, double *&Values) const
 
int ExtractGlobalRowView (long long GlobalRow, int &NumEntries, double *&Values) const
 
int ExtractMyRowView (int MyRow, int &NumEntries, double *&Values) const
 
int Multiply (bool TransA, const Epetra_Vector &x, Epetra_Vector &y) const
 
int Multiply1 (bool TransA, const Epetra_Vector &x, Epetra_Vector &y) const
 
int Multiply (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
int Multiply1 (bool TransA, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
int Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_Vector &x, Epetra_Vector &y) const
 
int Solve (bool Upper, bool Trans, bool UnitDiagonal, const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
int InvRowSums (Epetra_Vector &x) const
 
int InvRowMaxs (Epetra_Vector &x) const
 
int LeftScale (const Epetra_Vector &x)
 
int InvColSums (Epetra_Vector &x) const
 
int InvColMaxs (Epetra_Vector &x) const
 
int RightScale (const Epetra_Vector &x)
 
bool Filled () const
 
bool StorageOptimized () const
 
bool IndicesAreGlobal () const
 
bool IndicesAreLocal () const
 
bool IndicesAreContiguous () const
 
bool LowerTriangular () const
 
bool UpperTriangular () const
 
bool NoDiagonal () const
 
double NormInf () const
 
double NormOne () const
 
double NormFrobenius () const
 
int NumGlobalNonzeros () const
 
long long NumGlobalNonzeros64 () const
 
int NumGlobalRows () const
 
long long NumGlobalRows64 () const
 
int NumGlobalCols () const
 
long long NumGlobalCols64 () const
 
int NumGlobalDiagonals () const
 
long long NumGlobalDiagonals64 () const
 
int NumMyNonzeros () const
 
int NumMyRows () const
 
int NumMyCols () const
 
int NumMyDiagonals () const
 
int NumGlobalEntries (long long Row) const
 
int NumAllocatedGlobalEntries (int Row) const
 
int MaxNumEntries () const
 
int GlobalMaxNumEntries () const
 
int NumMyEntries (int Row) const
 
int NumAllocatedMyEntries (int Row) const
 
int IndexBase () const
 
long long IndexBase64 () const
 
bool StaticGraph ()
 
const Epetra_CrsGraphGraph () const
 
const Epetra_MapRowMap () const
 
int ReplaceRowMap (const Epetra_BlockMap &newmap)
 
bool HaveColMap () const
 
int ReplaceColMap (const Epetra_BlockMap &newmap)
 
int ReplaceDomainMapAndImporter (const Epetra_Map &NewDomainMap, const Epetra_Import *NewImporter)
 
int RemoveEmptyProcessesInPlace (const Epetra_BlockMap *NewMap)
 
const Epetra_MapColMap () const
 
const Epetra_MapDomainMap () const
 
const Epetra_MapRangeMap () const
 
const Epetra_ImportImporter () const
 
const Epetra_ExportExporter () const
 
const Epetra_CommComm () const
 
int LRID (int GRID_in) const
 
int LRID (long long GRID_in) const
 
int GRID (int LRID_in) const
 
long long GRID64 (int LRID_in) const
 
int LCID (int GCID_in) const
 
int LCID (long long GCID_in) const
 
int GCID (int LCID_in) const
 
long long GCID64 (int LCID_in) const
 
bool MyGRID (int GRID_in) const
 
bool MyGRID (long long GRID_in) const
 
bool MyLRID (int LRID_in) const
 
bool MyGCID (int GCID_in) const
 
bool MyGCID (long long GCID_in) const
 
bool MyLCID (int LCID_in) const
 
bool MyGlobalRow (int GID) const
 
bool MyGlobalRow (long long GID) const
 
virtual void Print (std::ostream &os) const
 
const char * Label () const
 
int SetUseTranspose (bool UseTranspose_in)
 
int Apply (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
int ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const
 
bool HasNormInf () const
 
bool UseTranspose () const
 
const Epetra_MapOperatorDomainMap () const
 
const Epetra_MapOperatorRangeMap () const
 
int NumMyRowEntries (int MyRow, int &NumEntries) const
 
const Epetra_BlockMapMap () const
 
const Epetra_MapRowMatrixRowMap () const
 
const Epetra_MapRowMatrixColMap () const
 
const Epetra_ImportRowMatrixImporter () const
 
double * operator[] (int Loc)
 
double * operator[] (int Loc) const
 
int ExtractCrsDataPointers (int *&IndexOffset, int *&Indices, double *&Values_in) const
 
Epetra_IntSerialDenseVectorExpertExtractIndexOffset ()
 
Epetra_IntSerialDenseVectorExpertExtractIndices ()
 
double *& ExpertExtractValues ()
 
int ExpertStaticFillComplete (const Epetra_Map &DomainMap, const Epetra_Map &RangeMap, const Epetra_Import *Importer=0, const Epetra_Export *Exporter=0, int NumMyDiagonals=-1)
 
int ExpertMakeUniqueCrsGraphData ()
 
int SortGhostsAssociatedWithEachProcessor (bool Flag)
 
const Epetra_MapImportMap () const
 
int TransformToLocal ()
 
int TransformToLocal (const Epetra_Map *DomainMap, const Epetra_Map *RangeMap)
 
- Public Member Functions inherited from Epetra_BLAS
 Epetra_BLAS (void)
 
 Epetra_BLAS (const Epetra_BLAS &BLAS)
 
virtual ~Epetra_BLAS (void)
 
float ASUM (const int N, const float *X, const int INCX=1) const
 
double ASUM (const int N, const double *X, const int INCX=1) const
 
float DOT (const int N, const float *X, const float *Y, const int INCX=1, const int INCY=1) const
 
double DOT (const int N, const double *X, const double *Y, const int INCX=1, const int INCY=1) const
 
float NRM2 (const int N, const float *X, const int INCX=1) const
 
double NRM2 (const int N, const double *X, const int INCX=1) const
 
void SCAL (const int N, const float ALPHA, float *X, const int INCX=1) const
 
void SCAL (const int N, const double ALPHA, double *X, const int INCX=1) const
 
void COPY (const int N, const float *X, float *Y, const int INCX=1, const int INCY=1) const
 
void COPY (const int N, const double *X, double *Y, const int INCX=1, const int INCY=1) const
 
int IAMAX (const int N, const float *X, const int INCX=1) const
 
int IAMAX (const int N, const double *X, const int INCX=1) const
 
void AXPY (const int N, const float ALPHA, const float *X, float *Y, const int INCX=1, const int INCY=1) const
 
void AXPY (const int N, const double ALPHA, const double *X, double *Y, const int INCX=1, const int INCY=1) const
 
void GEMV (const char TRANS, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *X, const float BETA, float *Y, const int INCX=1, const int INCY=1) const
 
void GEMV (const char TRANS, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *X, const double BETA, double *Y, const int INCX=1, const int INCY=1) const
 
void GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const
 
void GEMM (const char TRANSA, const char TRANSB, const int M, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const
 
void SYMM (const char SIDE, const char UPLO, const int M, const int N, const float ALPHA, const float *A, const int LDA, const float *B, const int LDB, const float BETA, float *C, const int LDC) const
 
void SYMM (const char SIDE, const char UPLO, const int M, const int N, const double ALPHA, const double *A, const int LDA, const double *B, const int LDB, const double BETA, double *C, const int LDC) const
 
void TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const float ALPHA, const float *A, const int LDA, float *B, const int LDB) const
 
void TRMM (const char SIDE, const char UPLO, const char TRANSA, const char DIAG, const int M, const int N, const double ALPHA, const double *A, const int LDA, double *B, const int LDB) const
 
void SYRK (const char UPLO, const char TRANS, const int N, const int K, const float ALPHA, const float *A, const int LDA, const float BETA, float *C, const int LDC) const
 
void SYRK (const char UPLO, const char TRANS, const int N, const int K, const double ALPHA, const double *A, const int LDA, const double BETA, double *C, const int LDC) const
 

Protected Attributes

Epetra_CrsGraph BaseGraph_
 
std::vector< std::vector< int > > RowStencil_int_
 
std::vector< int > RowIndices_int_
 
std::vector< std::vector< long
long > > 
RowStencil_LL_
 
std::vector< long long > RowIndices_LL_
 
long long ROffset_
 
long long COffset_
 
- Protected Attributes inherited from Epetra_CrsMatrix
Epetra_CrsGraph Graph_
 
bool Allocated_
 
bool StaticGraph_
 
bool UseTranspose_
 
bool constructedWithFilledGraph_
 
bool matrixFillCompleteCalled_
 
bool StorageOptimized_
 
double ** Values_
 
int * Values_alloc_lengths_
 
double * All_Values_
 
double NormInf_
 
double NormOne_
 
double NormFrob_
 
int NumMyRows_
 
Epetra_MultiVectorImportVector_
 
Epetra_MultiVectorExportVector_
 
Epetra_DataAccess CV_
 
bool squareFillCompleteCalled_
 

Private Member Functions

template<typename int_type >
void TLoadBlock (const Epetra_RowMatrix &BaseMatrix, const int_type Row, const int_type Col)
 
template<typename int_type >
void TSumIntoBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const int_type Row, const int_type Col)
 
template<typename int_type >
void TSumIntoGlobalBlock (double alpha, const Epetra_RowMatrix &BaseMatrix, const int_type Row, const int_type Col)
 
template<typename int_type >
void TBlockSumIntoGlobalValues (const int_type BaseRow, int NumIndices, double *Values, const int_type *Indices, const int_type Row, const int_type Col)
 
template<typename int_type >
void TBlockReplaceGlobalValues (const int_type BaseRow, int NumIndices, double *Values, const int_type *Indices, const int_type Row, const int_type Col)
 
template<typename int_type >
void TBlockExtractGlobalRowView (const int_type BaseRow, int &NumEntries, double *&Values, const int_type Row, const int_type Col)
 
template<typename int_type >
void TExtractBlock (Epetra_CrsMatrix &BaseMatrix, const int_type Row, const int_type Col)
 
template<typename int_type >
std::vector< std::vector
< int_type > > & 
TRowStencil ()
 
template<typename int_type >
std::vector< int_type > & TRowIndices ()
 
 BlockCrsMatrix (const Epetra_CrsGraph &BaseGraph, const std::vector< int > &RowStencil, int RowIndex, const Epetra_Comm &GlobalComm)
 BlockCrsMatrix constuctor with one block row per processor. More...
 
 BlockCrsMatrix (const Epetra_CrsGraph &BaseGraph, const std::vector< long long > &RowStencil, long long RowIndex, const Epetra_Comm &GlobalComm)
 
 BlockCrsMatrix (const Epetra_CrsGraph &BaseGraph, const std::vector< std::vector< int > > &RowStencil, const std::vector< int > &RowIndices, const Epetra_Comm &GlobalComm)
 BlockCrsMatrix constuctor with multiple block rows per processor. More...
 
 BlockCrsMatrix (const Epetra_CrsGraph &BaseGraph, const std::vector< std::vector< long long > > &RowStencil, const std::vector< long long > &RowIndices, const Epetra_Comm &GlobalComm)
 
 BlockCrsMatrix (const Epetra_CrsGraph &BaseGraph, const Epetra_CrsGraph &LocalBlockGraph, const Epetra_Comm &GlobalComm)
 Version taking a local block graph. More...
 
 BlockCrsMatrix (const Epetra_RowMatrix &BaseMatrix, const std::vector< std::vector< int > > &RowStencil, const std::vector< int > &RowIndices, const Epetra_Comm &GlobalComm)
 
 BlockCrsMatrix (const Epetra_RowMatrix &BaseMatrix, const std::vector< std::vector< long long > > &RowStencil, const std::vector< long long > &RowIndices, const Epetra_Comm &GlobalComm)
 
 BlockCrsMatrix (const BlockCrsMatrix &Matrix)
 Copy constructor. More...
 
virtual ~BlockCrsMatrix ()
 Destructor. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Epetra_CrsMatrix
bool Allocated () const
 
int SetAllocated (bool Flag)
 
double ** Values () const
 
double * All_Values () const
 
double * Values (int LocalRow) const
 
void InitializeDefaults ()
 
int Allocate ()
 
int InsertValues (int LocalRow, int NumEntries, double *Values, int *Indices)
 
int InsertValues (int LocalRow, int NumEntries, const double *Values, const int *Indices)
 
int InsertValues (int LocalRow, int NumEntries, double *Values, long long *Indices)
 
int InsertValues (int LocalRow, int NumEntries, const double *Values, const long long *Indices)
 
int InsertOffsetValues (long long GlobalRow, int NumEntries, double *Values, int *Indices)
 
int InsertOffsetValues (long long GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
int ReplaceOffsetValues (long long GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
int SumIntoOffsetValues (long long GlobalRow, int NumEntries, const double *Values, const int *Indices)
 
void UpdateImportVector (int NumVectors) const
 
void UpdateExportVector (int NumVectors) const
 
void GeneralMV (double *x, double *y) const
 
void GeneralMTV (double *x, double *y) const
 
void GeneralMM (double **X, int LDX, double **Y, int LDY, int NumVectors) const
 
void GeneralMTM (double **X, int LDX, double **Y, int LDY, int NumVectors) const
 
void GeneralSV (bool Upper, bool Trans, bool UnitDiagonal, double *x, double *y) const
 
void GeneralSM (bool Upper, bool Trans, bool UnitDiagonal, double **X, int LDX, double **Y, int LDY, int NumVectors) const
 
void SetStaticGraph (bool Flag)
 
int CheckSizes (const Epetra_SrcDistObject &A)
 
int CopyAndPermute (const Epetra_SrcDistObject &Source, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode=Zero)
 
int CopyAndPermuteCrsMatrix (const Epetra_CrsMatrix &A, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode)
 
int CopyAndPermuteRowMatrix (const Epetra_RowMatrix &A, int NumSameIDs, int NumPermuteIDs, int *PermuteToLIDs, int *PermuteFromLIDs, const Epetra_OffsetIndex *Indexor, Epetra_CombineMode CombineMode)
 
int PackAndPrepare (const Epetra_SrcDistObject &Source, int NumExportIDs, int *ExportLIDs, int &LenExports, char *&Exports, int &SizeOfPacket, int *Sizes, bool &VarSizes, Epetra_Distributor &Distor)
 
int UnpackAndCombine (const Epetra_SrcDistObject &Source, int NumImportIDs, int *ImportLIDs, int LenImports, char *Imports, int &SizeOfPacket, Epetra_Distributor &Distor, Epetra_CombineMode CombineMode, const Epetra_OffsetIndex *Indexor)
 
int SortEntries ()
 
bool Sorted () const
 
int MergeRedundantEntries ()
 
bool NoRedundancies () const
 
void DeleteMemory ()
 

Detailed Description

Definition at line 66 of file EpetraExt_BlockCrsMatrix.h.

Constructor & Destructor Documentation

EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_CrsGraph BaseGraph,
const std::vector< int > &  RowStencil,
int  RowIndex,
const Epetra_Comm GlobalComm 
)

BlockCrsMatrix constuctor with one block row per processor.

Creates a BlockCrsMatrix object and allocates storage.  
Parameters
InBaseGraph - Graph determining individual block structure, can be distrib. over subset of proc.'s
InRowStencil - Describes the stencil for block row on this processor (i.e. (-1 0 1) centered difference)
InRowIndex - Defines the index used for this block row.
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_CrsGraph BaseGraph,
const std::vector< long long > &  RowStencil,
long long  RowIndex,
const Epetra_Comm GlobalComm 
)
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_CrsGraph BaseGraph,
const std::vector< std::vector< int > > &  RowStencil,
const std::vector< int > &  RowIndices,
const Epetra_Comm GlobalComm 
)

BlockCrsMatrix constuctor with multiple block rows per processor.

Creates a BlockCrsMatrix object and allocates storage.  
Parameters
InBaseGraph - Graph determining individual block structure, can be distrib. over subset of proc.'s
InRowStencil - Describes the stencil for block row on this processor (i.e. (-1 0 1) centered difference)
InRowIndices - Defines the indices used for this block row.
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_CrsGraph BaseGraph,
const std::vector< std::vector< long long > > &  RowStencil,
const std::vector< long long > &  RowIndices,
const Epetra_Comm GlobalComm 
)
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_CrsGraph BaseGraph,
const Epetra_CrsGraph LocalBlockGraph,
const Epetra_Comm GlobalComm 
)

Version taking a local block graph.

Definition at line 116 of file EpetraExt_BlockCrsMatrix.cpp.

EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_RowMatrix BaseMatrix,
const std::vector< std::vector< int > > &  RowStencil,
const std::vector< int > &  RowIndices,
const Epetra_Comm GlobalComm 
)
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const Epetra_RowMatrix BaseMatrix,
const std::vector< std::vector< long long > > &  RowStencil,
const std::vector< long long > &  RowIndices,
const Epetra_Comm GlobalComm 
)
EpetraExt::BlockCrsMatrix::BlockCrsMatrix ( const BlockCrsMatrix Matrix)

Copy constructor.

Definition at line 180 of file EpetraExt_BlockCrsMatrix.cpp.

EpetraExt::BlockCrsMatrix::~BlockCrsMatrix ( )
virtual

Destructor.

Definition at line 197 of file EpetraExt_BlockCrsMatrix.cpp.

Member Function Documentation

const std::vector<int>& EpetraExt::BlockCrsMatrix::Stencil ( int  i = 0)
inline

Local Stencil Info.

Definition at line 123 of file EpetraExt_BlockCrsMatrix.h.

int EpetraExt::BlockCrsMatrix::RowIndex ( int  i = 0)
inline

RowIndex.

Definition at line 131 of file EpetraExt_BlockCrsMatrix.h.

const std::vector<long long>& EpetraExt::BlockCrsMatrix::Stencil64 ( int  i = 0)
inline

Local Stencil Info.

Definition at line 141 of file EpetraExt_BlockCrsMatrix.h.

long long EpetraExt::BlockCrsMatrix::RowIndex64 ( int  i = 0)
inline

RowIndex.

Definition at line 149 of file EpetraExt_BlockCrsMatrix.h.

void EpetraExt::BlockCrsMatrix::LoadBlock ( const Epetra_RowMatrix BaseMatrix,
const int  Row,
const int  Col 
)

Routine for loading a base matrices values into the large Block Matrix The Row and Col arguments are indices into RowStencil.

Definition at line 241 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::LoadBlock ( const Epetra_RowMatrix BaseMatrix,
const long long  Row,
const long long  Col 
)

Definition at line 251 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::SumIntoBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const int  Row,
const int  Col 
)

Routine for summing base matrices values into the large Block Matrix The Row and Col arguments are indices into RowStencil.

Definition at line 304 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::SumIntoBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const long long  Row,
const long long  Col 
)

Definition at line 314 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::SumIntoGlobalBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const int  Row,
const int  Col 
)

Routine for summing base matrices values into the large Block Matrix The Row and Col arguments are global indices.

Definition at line 366 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::SumIntoGlobalBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const long long  Row,
const long long  Col 
)

Definition at line 376 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockSumIntoGlobalValues ( const int  BaseRow,
int  NumIndices,
double *  Values,
const int *  Indices,
const int  Row,
const int  Col 
)

Sum Entries into Block matrix using base-matrix numbering plus block Row and Col The Row and Col arguments are indices into RowStencil.

Definition at line 412 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockSumIntoGlobalValues ( const long long  BaseRow,
int  NumIndices,
double *  Values,
const long long *  Indices,
const long long  Row,
const long long  Col 
)

Definition at line 423 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockReplaceGlobalValues ( const int  BaseRow,
int  NumIndices,
double *  Values,
const int *  Indices,
const int  Row,
const int  Col 
)

Definition at line 459 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockReplaceGlobalValues ( const long long  BaseRow,
int  NumIndices,
double *  Values,
const long long *  Indices,
const long long  Row,
const long long  Col 
)

Definition at line 470 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockExtractGlobalRowView ( const int  BaseRow,
int &  NumEntries,
double *&  Values,
const int  Row,
const int  Col 
)

Definition at line 510 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::BlockExtractGlobalRowView ( const long long  BaseRow,
int &  NumEntries,
double *&  Values,
const long long  Row,
const long long  Col 
)

Definition at line 521 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::ExtractBlock ( Epetra_CrsMatrix BaseMatrix,
const int  Row,
const int  Col 
)

Definition at line 585 of file EpetraExt_BlockCrsMatrix.cpp.

void EpetraExt::BlockCrsMatrix::ExtractBlock ( Epetra_CrsMatrix BaseMatrix,
const long long  Row,
const long long  Col 
)

Definition at line 595 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TLoadBlock ( const Epetra_RowMatrix BaseMatrix,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 203 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TSumIntoBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 262 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TSumIntoGlobalBlock ( double  alpha,
const Epetra_RowMatrix BaseMatrix,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 325 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TBlockSumIntoGlobalValues ( const int_type  BaseRow,
int  NumIndices,
double *  Values,
const int_type *  Indices,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 388 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TBlockReplaceGlobalValues ( const int_type  BaseRow,
int  NumIndices,
double *  Values,
const int_type *  Indices,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 435 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TBlockExtractGlobalRowView ( const int_type  BaseRow,
int &  NumEntries,
double *&  Values,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 482 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
void EpetraExt::BlockCrsMatrix::TExtractBlock ( Epetra_CrsMatrix BaseMatrix,
const int_type  Row,
const int_type  Col 
)
private

Definition at line 534 of file EpetraExt_BlockCrsMatrix.cpp.

template<typename int_type >
std::vector< std::vector<int_type> >& EpetraExt::BlockCrsMatrix::TRowStencil ( )
private
template<typename int_type >
std::vector<int_type>& EpetraExt::BlockCrsMatrix::TRowIndices ( )
private
template<>
std::vector<int>& EpetraExt::BlockCrsMatrix::TRowIndices ( )
inline

Definition at line 271 of file EpetraExt_BlockCrsMatrix.h.

template<>
std::vector< std::vector<int> >& EpetraExt::BlockCrsMatrix::TRowStencil ( )
inline

Definition at line 272 of file EpetraExt_BlockCrsMatrix.h.

template<>
std::vector<long long>& EpetraExt::BlockCrsMatrix::TRowIndices ( )
inline

Definition at line 275 of file EpetraExt_BlockCrsMatrix.h.

template<>
std::vector< std::vector<long long> >& EpetraExt::BlockCrsMatrix::TRowStencil ( )
inline

Definition at line 276 of file EpetraExt_BlockCrsMatrix.h.

Member Data Documentation

Epetra_CrsGraph EpetraExt::BlockCrsMatrix::BaseGraph_
protected

Definition at line 222 of file EpetraExt_BlockCrsMatrix.h.

std::vector< std::vector<int> > EpetraExt::BlockCrsMatrix::RowStencil_int_
protected

Definition at line 225 of file EpetraExt_BlockCrsMatrix.h.

std::vector<int> EpetraExt::BlockCrsMatrix::RowIndices_int_
protected

Definition at line 227 of file EpetraExt_BlockCrsMatrix.h.

std::vector< std::vector<long long> > EpetraExt::BlockCrsMatrix::RowStencil_LL_
protected

Definition at line 230 of file EpetraExt_BlockCrsMatrix.h.

std::vector<long long> EpetraExt::BlockCrsMatrix::RowIndices_LL_
protected

Definition at line 232 of file EpetraExt_BlockCrsMatrix.h.

long long EpetraExt::BlockCrsMatrix::ROffset_
protected

Definition at line 235 of file EpetraExt_BlockCrsMatrix.h.

long long EpetraExt::BlockCrsMatrix::COffset_
protected

Definition at line 236 of file EpetraExt_BlockCrsMatrix.h.


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