FEI  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
HexBeamCR.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 _HexBeamCR_hpp_
10 #define _HexBeamCR_hpp_
11 
12 #include "fei_macros.hpp"
13 
14 #include "test_utils/HexBeam.hpp"
15 
33 class HexBeamCR : public HexBeam {
34  public:
35  enum { OneD = 0, TwoD = 1, ThreeD = 2 };
36 
37  HexBeamCR(int W, int D, int DofPerNode,
38  int decomp, int numProcs, int localProc);
39  virtual ~HexBeamCR();
40 
41  int getElemConnectivity(int elemID, int* nodeIDs);
42 
43  int getElemStiffnessMatrix(int elemID, double* elemMat);
44 
45  int getElemLoadVector(int elemID, double* elemVec);
46 
47  int getNumBCNodes();
48 
49  int getBCNodes(int numNodes, int* nodeIDs);
50 
51  int getBCGammaValues(int numBCDofs, double* gamma);
52 
53  int getNumSharedNodes();
54 
55  int getSharedNodes(int numSharedNodes,
56  int*& sharedNodes,
57  int*& numSharingProcsPerNode,
58  int**& sharingProcs);
59 
60  int getNumCRs() { return( numLocalCRs_ ); }
61 
62  int getNumNodesPerCR(){ return( numNodesPerCR_ ); }
63 
64  int getCRNodes(int** nodeIDs);
65 
66  int numLocalCRs_;
67  int numNodesPerCR_;
68 
69  int firstLocalSlice_;
70  int localCRslice_;
71 };
72 
73 #endif // _HexBeamCR_hpp_