15 :
HexBeam(W, D, DofPerNode, decomp, numProcs, localProc)
33 if (localProc < remainder) {
48 if (remainder <= localProc && remainder > 0) {
84 int elemX = elemID%
W_;
85 int elemY = (elemID%(
W_*
W_))/
W_;
88 + elemY*(
W_+1) + elemX;
94 nodeIDs[0] = firstElemNode;
95 nodeIDs[1] = firstElemNode+1;
96 nodeIDs[2] = firstElemNode+
W_+1;
97 nodeIDs[3] = nodeIDs[2]+1;
113 nodeIDs[offset][0] = firstCRnode+i;
121 nodeIDs[offset][0] = nextCRnode+i;
136 for(i=0; i<len; ++i) {
147 for(i=0; i<len; ++i) {
148 int offset = i*len+i;
149 elemMat[offset] = 4.0;
153 for(i=0; i<len; ++i) {
154 int offset = i*len+i;
156 elemMat[offset-2] = -0.5;
160 elemMat[offset+2] = -0.5;
164 elemMat[offset-4] = -0.1;
167 elemMat[offset+4] = -0.1;
181 for(i=0; i<len; ++i) {
191 return( numBCNodes );
202 for(
int i=0; i<numNodes; ++i) {
203 nodeIDs[i] = firstBCNode + W_+1;
215 for(
int i=0; i<numBCDofs; ++i) {
231 return(numSharedNodes);
236 int*& numSharingProcsPerNode,
245 sharedNodes =
new int[numSharedNodes];
246 numSharingProcsPerNode =
new int[numSharedNodes];
247 sharingProcs =
new int*[numSharedNodes];
248 int* sharingProcVals =
new int[numSharedNodes];
249 if (sharedNodes == NULL || numSharingProcsPerNode == NULL ||
250 sharingProcs == NULL || sharingProcVals == NULL) {
255 for(i=0; i<numSharedNodes; ++i) {
256 numSharingProcsPerNode[i] = 1;
257 sharingProcs[i] = &(sharingProcVals[i]);
265 sharedNodes[offset] = firstSharedNode+i;
274 sharedNodes[offset] = firstSharedNode+i;
int getSharedNodes(int numSharedNodes, int *&sharedNodes, int *&numSharingProcsPerNode, int **&sharingProcs)
int getCRNodes(int **nodeIDs)
int getElemStiffnessMatrix(int elemID, double *elemMat)
int getElemConnectivity(int elemID, int *nodeIDs)
int getElemLoadVector(int elemID, double *elemVec)
std::ostream & console_out()
int localProc(MPI_Comm comm)
int getBCNodes(int numNodes, int *nodeIDs)
HexBeamCR(int W, int D, int DofPerNode, int decomp, int numProcs, int localProc)
int getBCGammaValues(int numBCDofs, double *gamma)
int numProcs(MPI_Comm comm)