FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
snl_fei_FEMatrixTraits_FED.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 _snl_fei_FEMatrixTraits_FED_hpp_
10 #define _snl_fei_FEMatrixTraits_FED_hpp_
11 
12 #include <fei_macros.hpp>
13 #include <fei_FiniteElementData.hpp>
14 #include <snl_fei_FEMatrixTraits.hpp>
15 
16 namespace snl_fei {
17 
19  template<>
20  struct FEMatrixTraits<FiniteElementData> {
21 
23  static const char* typeName()
24  { return("FiniteElementData"); }
25 
28  static int reset(FiniteElementData* mat)
29  { return( mat->reset() ); }
30 
32  static int sumInElemMatrix(FiniteElementData* mat,
33  int elemBlockID,
34  int elemID,
35  int numNodes,
36  const int* nodeNumbers,
37  const int* dofPerNode,
38  const int* dof_ids,
39  const double *const * coefs)
40  { return( mat->setElemMatrix(elemBlockID, elemID, numNodes,
41  nodeNumbers, dofPerNode, dof_ids, coefs) ); }
42 
44  static int setDirichletBCs(FiniteElementData* mat,
45  int numBCs,
46  const int* nodeNumbers,
47  const int* dof_ids,
48  const double* values)
49  { return( mat->setDirichletBCs(numBCs, nodeNumbers,
50  dof_ids, values) ); }
51 
52  };//struct FEMatrixTraits
53 }//namespace snl_fei
54 
55 #endif // _snl_fei_FEMatrixTraits_FED_hpp_
static int reset(T *mat)
virtual int reset()=0
static int sumInElemMatrix(T *mat, int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *dofPerNode, const int *dof_ids, const double *const *coefs)
static const char * typeName()
virtual int setElemMatrix(int elemBlockID, int elemID, int numNodes, const int *nodeNumbers, const int *numDofPerNode, const int *dof_ids, const double *const *coefs)=0
static int setDirichletBCs(T *mat, int numBCs, const int *nodeNumbers, const int *dof_ids, const double *values)
virtual int setDirichletBCs(int numBCs, const int *nodeNumbers, const int *dof_ids, const double *values)=0