12 #include <fei_base.hpp>
26 enum { OneD = 0, TwoD = 1, ThreeD = 2 };
28 HexBeam(
int W,
int D,
int DofPerNode,
29 int decomp,
int numProcs,
int localProc);
32 virtual bool inErrorState() {
return( inErrorState_ ); }
34 virtual int numNodesPerElem() {
return( nodesPerElem_ ); }
36 virtual int numDofPerNode() {
return( dofPerNode_ ); }
38 virtual int numLocalElems() {
return( localNumElems_ ); }
40 virtual int numLocalNodes() {
return( localNumNodes_ ); }
42 virtual int firstLocalElem() {
return( firstLocalElem_ ); }
44 virtual int getElemConnectivity(
int elemID,
int* nodeIDs);
46 virtual int getElemStiffnessMatrix(
int elemID,
double* elemMat);
48 virtual int getElemLoadVector(
int elemID,
double* elemVec);
50 virtual int getNumBCNodes();
52 virtual int getBCNodes(
int numNodes,
int* nodeIDs);
54 virtual int getBCValues(
int numBCNodes,
int* offsetsIntoField,
double* vals);
56 virtual int getNumSharedNodes();
58 virtual int getSharedNodes(
int numSharedNodes,
60 int*& numSharingProcsPerNode,
63 virtual int getNumCRs() {
return( 0 ); }
65 virtual int getNumNodesPerCR() {
return( 0 ); }
67 virtual int getCRNodes(
int** nodeIDs) { (void)nodeIDs;
return(0); }
82 int numElemsPerSlice_;
83 int numNodesPerSlice_;
95 namespace HexBeam_Functions {
97 int init_elem_connectivities(
FEI* fei,
HexBeam& hexcube);
99 int init_shared_nodes(
FEI* fei,
HexBeam& hexcube);
101 int init_constraints(
FEI* fei,
HexBeam& hexcube,
int& firstLocalCRID);
103 int load_elem_data(
FEI* fei,
HexBeam& hexcube);
105 int load_constraints(
FEI* fei,
HexBeam& hexcube,
int firstLocalCRID);
109 int print_cube_data(
HexBeam& hexcube,
int numProcs,
int localProc);
117 int localProc,
int& firstLocalCRID);
133 #endif // _HexBeam_h_