FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fei_MatrixTraits_FEData.hpp
1 /*--------------------------------------------------------------------*/
2 /* Copyright 2005 Sandia Corporation. */
3 /* Under the terms of Contract DE-AC04-94AL85000, there is a */
4 /* non-exclusive license for use of this work by or on behalf */
5 /* of the U.S. Government. Export of this program may require */
6 /* a license from the United States Government. */
7 /*--------------------------------------------------------------------*/
8 
9 #ifndef _fei_MatrixTraits_FEData_hpp_
10 #define _fei_MatrixTraits_FEData_hpp_
11 
12 //This file defines matrix traits for FiniteElementData matrices
13 //
14 
15 #include <fei_FiniteElementData.hpp>
16 
17 namespace fei {
18 
20  template<>
21  struct MatrixTraits<FiniteElementData> {
22 
24  static const char* typeName()
25  { return("FiniteElementData"); }
26 
27  static double* getBeginPointer(FiniteElementData* fed)
28  {
29  return NULL;
30  }
31 
32  static int getOffset(FiniteElementData* /*fed*/, int row, int col)
33  {
34  return -1;
35  }
36 
39  static int setValues(FiniteElementData* fed, double scalar)
40  {
41  return( -1 );
42  }
43 
47  static int getNumLocalRows(FiniteElementData* fed, int& numRows)
48  {
49  numRows = -1;
50  return(-1);
51  }
52 
55  static int getRowLength(FiniteElementData* fed, int row, int& length)
56  {
57  return( -1 );
58  }
59 
72  static int copyOutRow(FiniteElementData* fed,
73  int row, int len, double* coefs, int* indices)
74  {
75  return( -1 );
76  }
77 
80  static int putValuesIn(FiniteElementData* fed,
81  int numRows, const int* rows,
82  int numCols, const int* cols,
83  const double* const* values,
84  bool sum_into)
85  {
86  return( -1 );
87  }
88 
93  static int globalAssemble(FiniteElementData* fed)
94  {
95  return( fed->loadComplete() );
96  }
97 
99  static int matvec(FiniteElementData* fed,
100  fei::Vector* x,
101  fei::Vector* y)
102  {
103  return(-1);
104  }
105 
106  };//struct MatrixTraits
107 }//namespace fei
108 
109 
110 #endif // _fei_MatrixTraits_FEData_hpp_
virtual int loadComplete()=0
static const char * typeName()
static int matvec(T *A, fei::Vector *x, fei::Vector *y)
static int getRowLength(T *mat, int row, int &length)
static int getNumLocalRows(T *mat, int &numRows)
static int setValues(T *mat, double scalar)
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)