Static Public Member Functions
|static const char * ||typeName ()|
|static int ||setValues (T *mat, double scalar)|
|static int ||getNumLocalRows (T *mat, int &numRows)|
|static int ||getRowLength (T *mat, int row, int &length)|
|static int ||copyOutRow (T *mat, int row, int len, double *coefs, int *indices)|
|static int ||putValuesIn (T *mat, int numRows, const int *rows, int numCols, const int *cols, const double *const *values, bool sum_into)|
|static int ||globalAssemble (T *A)|
|static int ||matvec (T *A, fei::Vector *x, fei::Vector *y)|
struct fei::MatrixTraits< T >
Define a struct of matrix access traits. The fei matrix implementation class fei::Matrix_Impl is essentially a filter which passes data to library-specific matrix objects (such as Trilinos/Epetra's Epetra_CrsMatrix). fei::Matrix_Impl is a template, and the template parameter is the matrix object. In order to use an arbitrary matrix object with fei::Matrix_Impl, it is only necessary to define a specialization of this MatrixTraits struct for the matrix object.
For an example specialization, see support-Trilinos/fei_MatrixTraits_Epetra.hpp.
This "base" MatrixTraits struct provides function stubs for default type "T", which will catch the use of any matrix type for which specialized traits have not been defined.
Note: Several functions accept row-numbers and/or column-numbers. These are always global indices. In a parallel setting, the fei defines a global set of row-indices which are partitioned across processors so that each processor owns a unique subset of the global row space. (Ownership of column-indices is not unique, a given column-index may appear in rows on multiple processors.)
Note2: Implementers can safely assume that these functions will only be called with locally-owned row-numbers.
Definition at line 45 of file fei_MatrixTraits.hpp.