120 int numLocalNodes = vspace->getNumOwnedAndSharedIDs(
nodeIDType_);
126 vspace->getRecordCollection(nodeType, nodeRecords);
128 int* intData =
new int[numElemBlocks*3];
129 int* numElemsPerBlock = intData;
130 int* numNodesPerElem = intData+numElemBlocks;
131 int* elemMatrixSizePerBlock = intData+2*numElemBlocks;
134 std::vector<int> elemBlockIDs;
137 for(i=0; i<numElemBlocks; ++i) {
140 if (cblock==NULL)
return(-1);
146 int numSharedNodes = 0;
154 elemMatrixSizePerBlock,
157 numLagrangeConstraints) );
159 std::map<int,fei::ConnectivityBlock*>::const_iterator
162 std::vector<int> nodeNumbers, numDofPerNode, dof_ids;
163 int total_num_dof = 0;
164 for(i=0; i<numElemBlocks; ++i, ++cdb_iter) {
168 int numConnectedNodes = pattern->
getNumIDs();
169 nodeNumbers.resize(numConnectedNodes);
170 numDofPerNode.resize(numConnectedNodes);
171 int* nodeNumPtr = &nodeNumbers[0];
172 int* numDofPtr = &numDofPerNode[0];
180 for(
int ii=0; ii<numConnectedNodes; ++ii) {
182 for(
int f=0; f<numFieldsPerID[ii]; ++f) {
183 dof += vspace->getFieldSize(fieldIDs[foffset++]);
186 total_num_dof += dof;
189 dof_ids.resize(total_num_dof, 0);
190 int* dof_ids_ptr = &dof_ids[0];
197 int numElems = elemIDs.size();
201 for(
int elem=0; elem<numElems; ++elem) {
202 for(
int n=0; n<numConnectedNodes; ++n) {
209 nodeNumPtr, numDofPtr, dof_ids_ptr));