Epetra Package Browser (Single Doxygen Collection) Development
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
Epetra_FECrsMatrix Class Reference

Epetra Finite-Element CrsMatrix. More...

#include <Epetra_FECrsMatrix.h>

Inheritance diagram for Epetra_FECrsMatrix:
Inheritance graph
[legend]

List of all members.

Public Types

enum  { ROW_MAJOR = 0, COLUMN_MAJOR = 3 }

Public Member Functions

 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, int *NumEntriesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, int NumEntriesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, const Epetra_Map &ColMap, int *NumEntriesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_Map &RowMap, const Epetra_Map &ColMap, int NumEntriesPerRow, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_CrsGraph &Graph, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (Epetra_DataAccess CV, const Epetra_FECrsGraph &Graph, bool ignoreNonLocalEntries=false)
 Constructor.
 Epetra_FECrsMatrix (const Epetra_FECrsMatrix &src)
 Copy Constructor.
virtual ~Epetra_FECrsMatrix ()
 Destructor.
Epetra_FECrsMatrixoperator= (const Epetra_FECrsMatrix &src)
 Assignment operator.
int SumIntoGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 override base-class Epetra_CrsMatrix::SumIntoGlobalValues method
int SumIntoGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
int InsertGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 override base-class Epetra_CrsMatrix::InsertGlobalValues method
int InsertGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
int InsertGlobalValues (int GlobalRow, int NumEntries, double *Values, int *Indices)
 override base-class Epetra_CrsMatrix::InsertGlobalValues method
int InsertGlobalValues (long long GlobalRow, int NumEntries, double *Values, long long *Indices)
int ReplaceGlobalValues (int GlobalRow, int NumEntries, const double *Values, const int *Indices)
 override base-class Epetra_CrsMatrix::ReplaceGlobalValues method
int ReplaceGlobalValues (long long GlobalRow, int NumEntries, const double *Values, const long long *Indices)
int SumIntoGlobalValues (int numIndices, const int *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Sum a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.
int SumIntoGlobalValues (int numIndices, const long long *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int SumIntoGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Sum a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.
int SumIntoGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int SumIntoGlobalValues (int numIndices, const int *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Sum C-style table (double-pointer, or list of lists) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.
int SumIntoGlobalValues (int numIndices, const long long *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int SumIntoGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Sum C-style table (double-pointer, or list of lists) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.
int SumIntoGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int InsertGlobalValues (int numIndices, const int *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Insert a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix.
int InsertGlobalValues (int numIndices, const long long *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int InsertGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Insert a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix.
int InsertGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int InsertGlobalValues (int numIndices, const int *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Insert a C-style table (double-pointer, or list of lists) of coefficients into the matrix.
int InsertGlobalValues (int numIndices, const long long *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int InsertGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Insert a C-style table (double-pointer, or list of lists) of coefficients into the matrix.
int InsertGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int ReplaceGlobalValues (int numIndices, const int *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Copy a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.
int ReplaceGlobalValues (int numIndices, const long long *indices, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int ReplaceGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Copy Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.
int ReplaceGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int ReplaceGlobalValues (int numIndices, const int *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Copy C-style table (double-pointer, or list of lists) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.
int ReplaceGlobalValues (int numIndices, const long long *indices, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int ReplaceGlobalValues (int numRows, const int *rows, int numCols, const int *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
 Copy C-style table (double-pointer, or list of lists) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.
int ReplaceGlobalValues (int numRows, const long long *rows, int numCols, const long long *cols, const double *const *values, int format=Epetra_FECrsMatrix::ROW_MAJOR)
int SumIntoGlobalValues (const Epetra_IntSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Sum a square structurally-symmetric sub-matrix into the global matrix.
int SumIntoGlobalValues (const Epetra_LongLongSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int SumIntoGlobalValues (const Epetra_IntSerialDenseVector &rows, const Epetra_IntSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Sum a general sub-matrix into the global matrix.
int SumIntoGlobalValues (const Epetra_LongLongSerialDenseVector &rows, const Epetra_LongLongSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int InsertGlobalValues (const Epetra_IntSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Insert a square structurally-symmetric sub-matrix into the global matrix.
int InsertGlobalValues (const Epetra_LongLongSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int InsertGlobalValues (const Epetra_IntSerialDenseVector &rows, const Epetra_IntSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Insert a general sub-matrix into the global matrix.
int InsertGlobalValues (const Epetra_LongLongSerialDenseVector &rows, const Epetra_LongLongSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int ReplaceGlobalValues (const Epetra_IntSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Use a square structurally-symmetric sub-matrix to replace existing values in the global matrix.
int ReplaceGlobalValues (const Epetra_LongLongSerialDenseVector &indices, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int ReplaceGlobalValues (const Epetra_IntSerialDenseVector &rows, const Epetra_IntSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
 Use a general sub-matrix to replace existing values.
int ReplaceGlobalValues (const Epetra_LongLongSerialDenseVector &rows, const Epetra_LongLongSerialDenseVector &cols, const Epetra_SerialDenseMatrix &values, int format=Epetra_FECrsMatrix::COLUMN_MAJOR)
int GlobalAssemble (bool callFillComplete=true, Epetra_CombineMode combineMode=Add, bool save_off_and_reuse_map_exporter=false)
 Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time.
int GlobalAssemble (const Epetra_Map &domain_map, const Epetra_Map &range_map, bool callFillComplete=true, Epetra_CombineMode combineMode=Add, bool save_off_and_reuse_map_exporter=false)
 Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time.
void setIgnoreNonLocalEntries (bool flag)
 Set whether or not non-local data values should be ignored.

Private Types

enum  { SUMINTO = 0, REPLACE = 1, INSERT = 2 }

Private Member Functions

void DeleteMemory ()
template<typename int_type >
int InputGlobalValues (int numRows, const int_type *rows, int numCols, const int_type *cols, const double *const *values, int format, int mode)
template<typename int_type >
int InputGlobalValues (int numRows, const int_type *rows, int numCols, const int_type *cols, const double *values, int format, int mode)
template<typename int_type >
int InputNonlocalGlobalValues (int_type row, int numCols, const int_type *cols, const double *values, int mode)
template<typename int_type >
int InputGlobalValues_RowMajor (int numRows, const int_type *rows, int numCols, const int_type *cols, const double *values, int mode)
template<typename int_type >
int InsertNonlocalRow (int_type row, typename std::vector< int_type >::iterator offset)
template<typename int_type >
int InputNonlocalValue (int rowoffset, int_type col, double value, int mode)
template<typename int_type >
std::vector< int_type > & nonlocalRows ()
template<typename int_type >
std::vector< std::vector
< int_type > > & 
nonlocalCols ()
template<typename int_type >
int SumIntoGlobalValues (int_type GlobalRow, int NumEntries, const double *values, const int_type *Indices)
template<typename int_type >
int GlobalAssemble (const Epetra_Map &domain_map, const Epetra_Map &range_map, bool callFillComplete=true, Epetra_CombineMode combineMode=Add, bool save_off_and_reuse_map_exporter=false)

Private Attributes

long long myFirstRow_
int myNumRows_
bool ignoreNonLocalEntries_
std::vector< int > nonlocalRows_int_
std::vector< std::vector< int > > nonlocalCols_int_
std::vector< long long > nonlocalRows_LL_
std::vector< std::vector< long
long > > 
nonlocalCols_LL_
std::vector< std::vector
< double > > 
nonlocalCoefs_
std::vector< double > workData_
std::vector< const double * > workData2d_
int workDataLength_
bool useNonlocalMatrix_
Epetra_CrsMatrixnonlocalMatrix_
Epetra_MapsourceMap_
Epetra_MapcolMap_
Epetra_Exportexporter_
Epetra_CrsMatrixtempMat_

Detailed Description

Epetra Finite-Element CrsMatrix.

This class provides the ability to input finite-element style sub-matrix data, including sub-matrices with non-local rows (which could correspond to shared finite-element nodes for example). This class inherits Epetra_CrsMatrix, and so all Epetra_CrsMatrix functionality is also available.

It is intended that this class will be used as follows:

Sub-matrix data, which is assumed to be a rectangular 'table' of coefficients accompanied by 'scatter-indices', can be provided in three forms:

In all cases, a "format" parameter specifies whether the data is laid out in row-major or column-major order (i.e., whether coefficients for a row lie contiguously or whether coefficients for a column lie contiguously). See the documentation for the methods SumIntoGlobalValues() and ReplaceGlobalValues().

Important notes:

  1. Since Epetra_FECrsMatrix inherits Epetra_CrsMatrix, the semantics of the Insert/SumInto/Replace methods are the same as they are on Epetra_CrsMatrix, which is:

Definition at line 120 of file Epetra_FECrsMatrix.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
ROW_MAJOR 
COLUMN_MAJOR 

Definition at line 167 of file Epetra_FECrsMatrix.h.

anonymous enum [private]
Enumerator:
SUMINTO 
REPLACE 
INSERT 

Definition at line 747 of file Epetra_FECrsMatrix.h.


Constructor & Destructor Documentation

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_Map RowMap,
int *  NumEntriesPerRow,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 54 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_Map RowMap,
int  NumEntriesPerRow,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 84 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_Map RowMap,
const Epetra_Map ColMap,
int *  NumEntriesPerRow,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 114 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_Map RowMap,
const Epetra_Map ColMap,
int  NumEntriesPerRow,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 145 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_CrsGraph Graph,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 176 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( Epetra_DataAccess  CV,
const Epetra_FECrsGraph Graph,
bool  ignoreNonLocalEntries = false 
)

Constructor.

Definition at line 205 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::Epetra_FECrsMatrix ( const Epetra_FECrsMatrix src)

Copy Constructor.

Definition at line 235 of file Epetra_FECrsMatrix.cpp.

Epetra_FECrsMatrix::~Epetra_FECrsMatrix ( ) [virtual]

Destructor.

Definition at line 313 of file Epetra_FECrsMatrix.cpp.


Member Function Documentation

Epetra_FECrsMatrix & Epetra_FECrsMatrix::operator= ( const Epetra_FECrsMatrix src)

Assignment operator.

Definition at line 260 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  GlobalRow,
int  NumEntries,
const double *  Values,
const int *  Indices 
) [virtual]

override base-class Epetra_CrsMatrix::SumIntoGlobalValues method

Reimplemented from Epetra_CrsMatrix.

Definition at line 724 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( long long  GlobalRow,
int  NumEntries,
const double *  Values,
const long long *  Indices 
) [virtual]

Reimplemented from Epetra_CrsMatrix.

Definition at line 736 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  GlobalRow,
int  NumEntries,
const double *  Values,
const int *  Indices 
) [virtual]

override base-class Epetra_CrsMatrix::InsertGlobalValues method

Reimplemented from Epetra_CrsMatrix.

Definition at line 747 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( long long  GlobalRow,
int  NumEntries,
const double *  Values,
const long long *  Indices 
) [virtual]

Reimplemented from Epetra_CrsMatrix.

Definition at line 757 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  GlobalRow,
int  NumEntries,
double *  Values,
int *  Indices 
) [virtual]

override base-class Epetra_CrsMatrix::InsertGlobalValues method

Reimplemented from Epetra_CrsMatrix.

Definition at line 767 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( long long  GlobalRow,
int  NumEntries,
double *  Values,
long long *  Indices 
) [virtual]

Reimplemented from Epetra_CrsMatrix.

Definition at line 776 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  GlobalRow,
int  NumEntries,
const double *  Values,
const int *  Indices 
) [virtual]

override base-class Epetra_CrsMatrix::ReplaceGlobalValues method

Reimplemented from Epetra_CrsMatrix.

Definition at line 786 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( long long  GlobalRow,
int  NumEntries,
const double *  Values,
const long long *  Indices 
) [virtual]

Reimplemented from Epetra_CrsMatrix.

Definition at line 795 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numIndices,
const int *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Sum a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesList, length numIndices*numIndices. Square sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 397 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numIndices,
const long long *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 407 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Sum a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList of column-numbers (scatter-indices) for the sub-matrix.
valuesList, length numRows*numCols. Rectangular sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 418 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 430 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numIndices,
const int *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Sum C-style table (double-pointer, or list of lists) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesSquare sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 353 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numIndices,
const long long *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 363 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Sum C-style table (double-pointer, or list of lists) of coefficients into the matrix, adding them to any coefficients that may already exist at the specified row/column locations.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList of column-numbers (scatter-indices) for the sub-matrix.
valuesRectangular sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 374 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 385 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numIndices,
const int *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Insert a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesList, length numIndices*numIndices. Square sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 664 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numIndices,
const long long *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 675 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Insert a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList of column-numbers (scatter-indices) for the sub-matrix.
valuesList, length numRows*numCols. Rectangular sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 686 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 698 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numIndices,
const int *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Insert a C-style table (double-pointer, or list of lists) of coefficients into the matrix.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesSquare sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 618 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numIndices,
const long long *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 629 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Insert a C-style table (double-pointer, or list of lists) of coefficients into the matrix.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList of column-numbers (scatter-indices) for the sub-matrix.
valuesRectangular sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 640 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 652 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numIndices,
const int *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Copy a Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesList, length numIndices*numIndices. Square sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 849 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numIndices,
const long long *  indices,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 859 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Copy Fortran-style table (single-dimensional packed-list) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList, of column-numbers (scatter-indices) for the sub-matrix.
valuesList, length numRows*numCols. Rectangular sub-matrix of coefficients, packed in a 1-D array. Data is packed either contiguously by row or by column, specified by the final parameter 'format'.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is COLUMN_MAJOR.

Definition at line 870 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *  values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 881 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numIndices,
const int *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Copy C-style table (double-pointer, or list of lists) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.

Parameters:
numIndicesNumber of rows (and columns) in the sub-matrix.
indicesList of scatter-indices (rows and columns) for the sub-matrix.
valuesSquare sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 805 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numIndices,
const long long *  indices,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 815 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numRows,
const int *  rows,
int  numCols,
const int *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Copy C-style table (double-pointer, or list of lists) of coefficients into the matrix, replacing any coefficients that may already exist at the specified row/column locations.

Parameters:
numRowsNumber of rows in the sub-matrix.
rowsList of row-numbers (scatter-indices) for the sub-matrix.
numColsNumber of columns in the sub-matrix.
colsList of column-numbers (scatter-indices) for the sub-matrix.
valuesRectangular sub-matrix of coefficients, provided in a 2-D array, or double-pointer.
formatSpecifies whether the data in 'values' is packed in column-major or row-major order. Valid values are Epetra_FECrsMatrix::ROW_MAJOR or Epetra_FECrsMatrix::COLUMN_MAJOR. This is an optional parameter, default value is ROW_MAJOR.

Definition at line 826 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( int  numRows,
const long long *  rows,
int  numCols,
const long long *  cols,
const double *const *  values,
int  format = Epetra_FECrsMatrix::ROW_MAJOR 
)

Definition at line 837 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( const Epetra_IntSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Sum a square structurally-symmetric sub-matrix into the global matrix.

For non-square sub-matrices, see the other overloading of this method.

Parameters:
indicesList of scatter-indices. indices.Length() must be the same as values.M() and values.N().
valuesSub-matrix of coefficients. Must be square.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 442 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( const Epetra_LongLongSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 456 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( const Epetra_IntSerialDenseVector rows,
const Epetra_IntSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Sum a general sub-matrix into the global matrix.

For square structurally-symmetric sub-matrices, see the other overloading of this method.

Parameters:
rowsList of row-indices. rows.Length() must be the same as values.M().
colsList of column-indices. cols.Length() must be the same as values.N().
valuesSub-matrix of coefficients.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 524 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::SumIntoGlobalValues ( const Epetra_LongLongSerialDenseVector rows,
const Epetra_LongLongSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 539 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( const Epetra_IntSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Insert a square structurally-symmetric sub-matrix into the global matrix.

For non-square sub-matrices, see the other overloading of this method.

Parameters:
indicesList of scatter-indices. indices.Length() must be the same as values.M() and values.N().
valuesSub-matrix of coefficients. Must be square.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 470 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( const Epetra_LongLongSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 483 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( const Epetra_IntSerialDenseVector rows,
const Epetra_IntSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Insert a general sub-matrix into the global matrix.

For square structurally-symmetric sub-matrices, see the other overloading of this method.

Parameters:
rowsList of row-indices. rows.Length() must be the same as values.M().
colsList of column-indices. cols.Length() must be the same as values.N().
valuesSub-matrix of coefficients.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 555 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::InsertGlobalValues ( const Epetra_LongLongSerialDenseVector rows,
const Epetra_LongLongSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 570 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( const Epetra_IntSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Use a square structurally-symmetric sub-matrix to replace existing values in the global matrix.

For non-square sub-matrices, see the other overloading of this method.

Parameters:
indicesList of scatter-indices. indices.Length() must be the same as values.M() and values.N().
valuesSub-matrix of coefficients. Must be square.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 497 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( const Epetra_LongLongSerialDenseVector indices,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 510 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( const Epetra_IntSerialDenseVector rows,
const Epetra_IntSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Use a general sub-matrix to replace existing values.

For square structurally-symmetric sub-matrices, see the other overloading of this method.

Parameters:
rowsList of row-indices. rows.Length() must be the same as values.M().
colsList of column-indices. cols.Length() must be the same as values.N().
valuesSub-matrix of coefficients.
formatOptional format specifier, defaults to COLUMN_MAJOR.

Definition at line 586 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::ReplaceGlobalValues ( const Epetra_LongLongSerialDenseVector rows,
const Epetra_LongLongSerialDenseVector cols,
const Epetra_SerialDenseMatrix values,
int  format = Epetra_FECrsMatrix::COLUMN_MAJOR 
)

Definition at line 602 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::GlobalAssemble ( bool  callFillComplete = true,
Epetra_CombineMode  combineMode = Add,
bool  save_off_and_reuse_map_exporter = false 
)

Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time.

Data imported from other processors is stored on the owning processor with a "sumInto" or accumulate operation. This is a collective method -- every processor must enter it before any will complete it.

NOTE***: When GlobalAssemble() calls FillComplete(), it passes the arguments 'DomainMap()' and 'RangeMap()', which are the map attributes held by the base-class CrsMatrix and its graph. If a rectangular matrix is being assembled, the domain-map and range-map must be specified by calling the other overloading of this method. Otherwise, GlobalAssemble() has no way of knowing what these maps should really be.

Parameters:
callFillCompleteoption argument, defaults to true. Determines whether GlobalAssemble() internally calls the FillComplete() method on this matrix.
Returns:
error-code 0 if successful, non-zero if some error occurs

Definition at line 892 of file Epetra_FECrsMatrix.cpp.

int Epetra_FECrsMatrix::GlobalAssemble ( const Epetra_Map domain_map,
const Epetra_Map range_map,
bool  callFillComplete = true,
Epetra_CombineMode  combineMode = Add,
bool  save_off_and_reuse_map_exporter = false 
)

Gather any overlapping/shared data into the non-overlapping partitioning defined by the Map that was passed to this matrix at construction time.

Data imported from other processors is stored on the owning processor with a "sumInto" or accumulate operation. This is a collective method -- every processor must enter it before any will complete it.

NOTE***: When GlobalAssemble() (the other overloading of this method) calls FillComplete(), it passes the arguments 'DomainMap()' and 'RangeMap()', which are the map attributes already held by the base-class CrsMatrix and its graph. If a rectangular matrix is being assembled, the domain-map and range-map must be specified. Otherwise, GlobalAssemble() has no way of knowing what these maps should really be.

Parameters:
domain_mapuser-supplied domain map for this matrix
range_mapuser-supplied range map for this matrix
callFillCompleteoption argument, defaults to true. Determines whether GlobalAssemble() internally calls the FillComplete() method on this matrix.
Returns:
error-code 0 if successful, non-zero if some error occurs

Definition at line 900 of file Epetra_FECrsMatrix.cpp.

void Epetra_FECrsMatrix::setIgnoreNonLocalEntries ( bool  flag) [inline]

Set whether or not non-local data values should be ignored.

By default, non-local data values are NOT ignored.

Definition at line 740 of file Epetra_FECrsMatrix.h.

void Epetra_FECrsMatrix::DeleteMemory ( ) [private]

Reimplemented from Epetra_CrsMatrix.

Definition at line 319 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InputGlobalValues ( int  numRows,
const int_type *  rows,
int  numCols,
const int_type *  cols,
const double *const *  values,
int  format,
int  mode 
) [private]

Definition at line 1143 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InputGlobalValues ( int  numRows,
const int_type *  rows,
int  numCols,
const int_type *  cols,
const double *  values,
int  format,
int  mode 
) [private]

Definition at line 1193 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InputNonlocalGlobalValues ( int_type  row,
int  numCols,
const int_type *  cols,
const double *  values,
int  mode 
) [private]

Definition at line 1224 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InputGlobalValues_RowMajor ( int  numRows,
const int_type *  rows,
int  numCols,
const int_type *  cols,
const double *  values,
int  mode 
) [private]

Definition at line 1079 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InsertNonlocalRow ( int_type  row,
typename std::vector< int_type >::iterator  offset 
) [private]

Definition at line 1291 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::InputNonlocalValue ( int  rowoffset,
int_type  col,
double  value,
int  mode 
) [private]

Definition at line 1311 of file Epetra_FECrsMatrix.cpp.

std::vector< long long > & Epetra_FECrsMatrix::nonlocalRows< long long > ( ) [inline, private]

Definition at line 830 of file Epetra_FECrsMatrix.h.

std::vector< std::vector< long long > > & Epetra_FECrsMatrix::nonlocalCols< long long > ( ) [inline, private]

Definition at line 844 of file Epetra_FECrsMatrix.h.

template<typename int_type >
int Epetra_FECrsMatrix::SumIntoGlobalValues ( int_type  GlobalRow,
int  NumEntries,
const double *  values,
const int_type *  Indices 
) [private]

Definition at line 710 of file Epetra_FECrsMatrix.cpp.

template<typename int_type >
int Epetra_FECrsMatrix::GlobalAssemble ( const Epetra_Map domain_map,
const Epetra_Map range_map,
bool  callFillComplete = true,
Epetra_CombineMode  combineMode = Add,
bool  save_off_and_reuse_map_exporter = false 
) [private]

Member Data Documentation

long long Epetra_FECrsMatrix::myFirstRow_ [private]

Definition at line 784 of file Epetra_FECrsMatrix.h.

Definition at line 785 of file Epetra_FECrsMatrix.h.

Definition at line 787 of file Epetra_FECrsMatrix.h.

std::vector<int> Epetra_FECrsMatrix::nonlocalRows_int_ [private]

Definition at line 790 of file Epetra_FECrsMatrix.h.

std::vector<std::vector<int> > Epetra_FECrsMatrix::nonlocalCols_int_ [private]

Definition at line 791 of file Epetra_FECrsMatrix.h.

std::vector<long long> Epetra_FECrsMatrix::nonlocalRows_LL_ [private]

Definition at line 794 of file Epetra_FECrsMatrix.h.

std::vector<std::vector<long long> > Epetra_FECrsMatrix::nonlocalCols_LL_ [private]

Definition at line 795 of file Epetra_FECrsMatrix.h.

std::vector<std::vector<double> > Epetra_FECrsMatrix::nonlocalCoefs_ [private]

Definition at line 801 of file Epetra_FECrsMatrix.h.

std::vector<double> Epetra_FECrsMatrix::workData_ [private]

Definition at line 805 of file Epetra_FECrsMatrix.h.

std::vector<const double*> Epetra_FECrsMatrix::workData2d_ [private]

Definition at line 806 of file Epetra_FECrsMatrix.h.

Definition at line 807 of file Epetra_FECrsMatrix.h.

Definition at line 809 of file Epetra_FECrsMatrix.h.

Definition at line 810 of file Epetra_FECrsMatrix.h.

Definition at line 812 of file Epetra_FECrsMatrix.h.

Definition at line 813 of file Epetra_FECrsMatrix.h.

Definition at line 814 of file Epetra_FECrsMatrix.h.

Definition at line 815 of file Epetra_FECrsMatrix.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines