FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
HexBeam.hpp
Go to the documentation of this file.
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 _HexBeam_h_
10#define _HexBeam_h_
11
12#include <fei_base.hpp>
13
24class HexBeam {
25 public:
26 enum { OneD = 0, TwoD = 1, ThreeD = 2 };
27
28 HexBeam(int W, int D, int DofPerNode,
29 int decomp, int numProcs, int localProc);
30 virtual ~HexBeam();
31
32 virtual bool inErrorState() { return( inErrorState_ ); }
33
34 virtual int numNodesPerElem() { return( nodesPerElem_ ); }
35
36 virtual int numDofPerNode() { return( dofPerNode_ ); }
37
38 virtual int numLocalElems() { return( localNumElems_ ); }
39
40 virtual int numLocalNodes() { return( localNumNodes_ ); }
41
42 virtual int firstLocalElem() { return( firstLocalElem_ ); }
43
44 virtual int getElemConnectivity(int elemID, int* nodeIDs);
45
46 virtual int getElemStiffnessMatrix(int elemID, double* elemMat);
47
48 virtual int getElemLoadVector(int elemID, double* elemVec);
49
50 virtual int getNumBCNodes();
51
52 virtual int getBCNodes(int numNodes, int* nodeIDs);
53
54 virtual int getBCValues(int numBCNodes, int* offsetsIntoField, double* vals);
55
56 virtual int getNumSharedNodes();
57
58 virtual int getSharedNodes(int numSharedNodes,
59 int*& sharedNodes,
60 int*& numSharingProcsPerNode,
61 int**& sharingProcs);
62
63 virtual int getNumCRs() { return( 0 ); }
64
65 virtual int getNumNodesPerCR() { return( 0 ); }
66
67 virtual int getCRNodes(int** nodeIDs) { (void)nodeIDs; return(0); }
68
69 int W_;
70 int D_;
74
81
85
87
90
93};
94
95namespace HexBeam_Functions {
96
98
99int init_shared_nodes(FEI* fei, HexBeam& hexcube);
100
101int init_constraints(FEI* fei, HexBeam& hexcube, int& firstLocalCRID);
102
103int load_elem_data(FEI* fei, HexBeam& hexcube);
104
105int load_constraints(FEI* fei, HexBeam& hexcube, int firstLocalCRID);
106
107int load_BC_data(FEI* fei, HexBeam& hexcube);
108
109int print_cube_data(HexBeam& hexcube, int numProcs, int localProc);
110
111
112int init_elem_connectivities(fei::MatrixGraph* matrixGraph, HexBeam& hexcube);
113
114int init_shared_nodes(fei::MatrixGraph* matrixGraph, HexBeam& hexcube);
115
116int init_constraints(fei::MatrixGraph* matrixGraph, HexBeam& hexcube,
117 int localProc, int& firstLocalCRID);
118
119int init_slave_constraints(fei::MatrixGraph* matrixGraph, HexBeam& hexcube);
120
121int load_elem_data(fei::MatrixGraph* matrixGraph,
122 fei::Matrix* mat,
123 fei::Vector* rhs,
124 HexBeam& hexcube);
125
126int load_constraints(fei::LinearSystem* linSys, HexBeam& hexcube,
127 int firstLocalCRID);
128
129int load_BC_data(fei::LinearSystem* linSys, HexBeam& hexcube);
130
131}//namespace HexBeam_Functions
132
133#endif // _HexBeam_h_
Definition FEI.hpp:144
int localNumNodes_
Definition HexBeam.hpp:78
virtual int getNumBCNodes()
Definition HexBeam.cpp:162
HexBeam(int W, int D, int DofPerNode, int decomp, int numProcs, int localProc)
Definition HexBeam.cpp:16
int numLocalSlices_
Definition HexBeam.hpp:84
virtual int getNumSharedNodes()
Definition HexBeam.cpp:197
virtual int numNodesPerElem()
Definition HexBeam.hpp:34
int W_
Definition HexBeam.hpp:69
virtual int numDofPerNode()
Definition HexBeam.hpp:36
int totalNumNodes_
Definition HexBeam.hpp:76
virtual int getElemLoadVector(int elemID, double *elemVec)
Definition HexBeam.cpp:148
virtual int getSharedNodes(int numSharedNodes, int *&sharedNodes, int *&numSharingProcsPerNode, int **&sharingProcs)
Definition HexBeam.cpp:209
int firstLocalNode_
Definition HexBeam.hpp:80
int numLocalDOF_
Definition HexBeam.hpp:91
int totalNumElems_
Definition HexBeam.hpp:75
int D_
Definition HexBeam.hpp:70
int dofPerNode_
Definition HexBeam.hpp:89
int localProc_
Definition HexBeam.hpp:73
virtual ~HexBeam()
Definition HexBeam.cpp:72
int nodesPerElem_
Definition HexBeam.hpp:88
int numNodesPerSlice_
Definition HexBeam.hpp:83
virtual int getElemStiffnessMatrix(int elemID, double *elemMat)
Definition HexBeam.cpp:102
virtual int getNumNodesPerCR()
Definition HexBeam.hpp:65
virtual int numLocalElems()
Definition HexBeam.hpp:38
int decomp_
Definition HexBeam.hpp:71
bool inErrorState_
Definition HexBeam.hpp:86
virtual int getElemConnectivity(int elemID, int *nodeIDs)
Definition HexBeam.cpp:76
int firstLocalElem_
Definition HexBeam.hpp:79
virtual int getNumCRs()
Definition HexBeam.hpp:63
int numProcs_
Definition HexBeam.hpp:72
virtual int getCRNodes(int **nodeIDs)
Definition HexBeam.hpp:67
int numElemsPerSlice_
Definition HexBeam.hpp:82
virtual int firstLocalElem()
Definition HexBeam.hpp:42
virtual int getBCValues(int numBCNodes, int *offsetsIntoField, double *vals)
Definition HexBeam.cpp:183
virtual bool inErrorState()
Definition HexBeam.hpp:32
virtual int getBCNodes(int numNodes, int *nodeIDs)
Definition HexBeam.cpp:168
virtual int numLocalNodes()
Definition HexBeam.hpp:40
int localNumElems_
Definition HexBeam.hpp:77
int numGlobalDOF_
Definition HexBeam.hpp:92
int init_elem_connectivities(FEI *fei, HexBeam &hexcube)
Definition HexBeam.cpp:280
int load_elem_data(FEI *fei, HexBeam &hexcube)
Definition HexBeam.cpp:440
int init_constraints(FEI *fei, HexBeam &hexcube, int &firstLocalCRID)
Definition HexBeam.cpp:355
int load_constraints(FEI *fei, HexBeam &hexcube, int firstLocalCRID)
Definition HexBeam.cpp:397
int load_BC_data(FEI *fei, HexBeam &hexcube)
Definition HexBeam.cpp:484
int init_slave_constraints(fei::MatrixGraph *matrixGraph, HexBeam &hexcube)
Definition HexBeam.cpp:636
int print_cube_data(HexBeam &hexcube, int numProcs, int localProc)
Definition HexBeam.cpp:258
int init_shared_nodes(FEI *fei, HexBeam &hexcube)
Definition HexBeam.cpp:328