FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Static Public Member Functions | List of all members
snl_fei::BlockMatrixTraits< T > Struct Template Reference

#include <snl_fei_BlockMatrixTraits.hpp>

Static Public Member Functions

static const char * typeName ()
 
static int putScalar (T *, double)
 
static int getRowLength (T *, int, int &)
 
static int getPointRowLength (T *, int, int &)
 
static int copyOutRow (T *, int, int, int, int *, int *, double *, int, int &)
 
static int copyOutPointRow (T *, int, int, int, double *, int *, int &)
 
static int sumIn (T *, int, int, int, const int *, const int *, int, const double *)
 
static int copyIn (T *, int, int, int, const int *, const int *, int, const double *)
 
static int sumIn (T *, int, int, int, const int *, const int *, const int *, const double *const *)
 
static int copyIn (T *, int, int, int, const int *, const int *, const int *, const double *const *)
 
static int globalAssemble (T *)
 

Detailed Description

template<typename T>
struct snl_fei::BlockMatrixTraits< T >

Internal implementation block-entry matrix traits. Define a "template" for accessing matrix data. Provide function stubs for default type "T", which will catch the use of any matrix type for which specialized traits have not been defined.

Definition at line 22 of file snl_fei_BlockMatrixTraits.hpp.

Member Function Documentation

template<typename T >
static const char* snl_fei::BlockMatrixTraits< T >::typeName ( )
inlinestatic

Return a string type-name for the underlying matrix

Definition at line 25 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::putScalar ( T *  ,
double   
)
inlinestatic

Set a specified scalar value throughout the matrix.

Definition at line 30 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::getRowLength ( T *  ,
int  ,
int &   
)
inlinestatic

Given a global (zero-based) row number, query the length of that row.

Definition at line 35 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::getPointRowLength ( T *  ,
int  ,
int &   
)
inlinestatic

Given a global (zero-based) point-row number, query the length of that row.

Definition at line 41 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::copyOutRow ( T *  ,
int  ,
int  ,
int  ,
int *  ,
int *  ,
double *  ,
int  ,
int &   
)
inlinestatic

Given a global (zero-based) row number, pass out a copy of the contents of that row.

Parameters
mat
row
numBlkColsLength of the user-allocated arrays indices and colDims.
rowDimNumber of point-equations associated with this block-row.
blkColsUser-allocated array which will hold column-indices on output.
colDimsUser-allocated array which will hold the number of point- indices per block-column.
coefsUser-allocated array of arrays. First dimension (number of arrays) must be 'len'. i-th array will hold the coefficients from the i-th block-entry in this matrix row, packed in column-major order as a 1D list.
coefsLenLength of the user-allocated coefs array.
blkRowLengthOutput value, will be the length of the matrix row, (number of blk-cols) which may be more or less than the length of the input 'numBlkCols'. If blkRowLength is less than numBlkCols, then only 'blkRowLength' positions in the above array arguments will be referenced. If blkRowLength is greater than numBlkCols, then only numBlkCols positions will be referenced.
Returns
error-code 0 if successful. Non-zero return-value may indicate that the specified row is not locally owned.

Definition at line 67 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::copyOutPointRow ( T *  ,
int  ,
int  ,
int  ,
double *  ,
int *  ,
int &   
)
inlinestatic

Given a global (zero-based) point-row number, pass out a copy of the contents of that row.

Parameters
mat
firstLocalOffsetFirst point-equation that is owned by the local processor.
rowGlobal equation-number of the point-row being requested.
lenLength of the user-allocated arrays coefs and indices.
coefsUser-allocated array which will hold matrix coefficients on output.
indicesUser-allocated array which will hold column-indices on output.
rowLengthOutput value, will be the length of the matrix row, which may be more or less than the length of the above user-allocated arrays.
Returns
error-code 0 if successful. Non-zero return-value may indicate that the specified row is not locally owned.

Definition at line 95 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::sumIn ( T *  ,
int  ,
int  ,
int  ,
const int *  ,
const int *  ,
int  ,
const double *   
)
inlinestatic

Sum a flat Fortran-style array of coefficient data into the underlying matrix.

Definition at line 105 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::copyIn ( T *  ,
int  ,
int  ,
int  ,
const int *  ,
const int *  ,
int  ,
const double *   
)
inlinestatic

Copy a flat Fortran-style array of coefficient data into the underlying matrix.

Definition at line 118 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::sumIn ( T *  ,
int  ,
int  ,
int  ,
const int *  ,
const int *  ,
const int *  ,
const double *const *   
)
inlinestatic

Sum a C-style table of coefficient data into the underlying matrix.

Definition at line 130 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::copyIn ( T *  ,
int  ,
int  ,
int  ,
const int *  ,
const int *  ,
const int *  ,
const double *const *   
)
inlinestatic

Copy (replacing any already-existing values at the specified locations) a C-style table of coefficient data into the underlying matrix.

Definition at line 141 of file snl_fei_BlockMatrixTraits.hpp.

template<typename T >
static int snl_fei::BlockMatrixTraits< T >::globalAssemble ( T *  )
inlinestatic

Have the underlying matrix perform any global synchronization or assembly that needs to be done after all data has been input.

Definition at line 152 of file snl_fei_BlockMatrixTraits.hpp.


The documentation for this struct was generated from the following file: