MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / domainChanged

Method domainChanged

SRC/analysis/analysis/DomainDecompositionAnalysis.cpp:185–268  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

183}
184
185int
186DomainDecompositionAnalysis::domainChanged(void)
187{
188 // remove existing FE_elements and DOF_Groups from the Analysis
189 theModel->clearAll();
190 theHandler->clearAll();
191
192 // now we invoke handle() on the constraint handler which
193 // causes the creation of FE_Element and DOF_Group objects
194 // and their addition to the AnalysisModel.
195
196 numExtEqn = theHandler->handle(&(theSubdomain->getExternalNodes()));
197
198 // we now get a node to number last
199
200 const ID &theExtNodes = theSubdomain->getExternalNodes();
201 int idSize = theExtNodes.Size();
202 // int theLastDOF = -1;
203
204 ID theLastDOFs(1);
205 int cnt = 0;
206
207 // create an ID containing the tags of the DOF_Groups that are to
208 // be numbered last
209 for (int i=0; i<idSize; i++) {
210 int nodeTag = theExtNodes(i);
211 Node *nodePtr = theSubdomain->getNode(nodeTag);
212 DOF_Group *dofGrpPtr = nodePtr->getDOF_GroupPtr();
213 if (dofGrpPtr != 0) {
214 const ID theID = dofGrpPtr->getID();
215 int size = theID.Size();
216 for (int j=0; j<size; j++)
217 if (theID(j) == -3) {
218 theLastDOFs[cnt] = dofGrpPtr->getTag();
219 cnt++;
220 j = size;
221 }
222 }
223 }
224
225 // we now invoke number() on the numberer which causes
226 // equation numbers to be assigned to all the DOFs in the
227 // AnalysisModel.
228
229 theNumberer->numberDOF(theLastDOFs);
230
231 /*************************
232 for (int i=0; i<idSize; i++) {
233 int nodeTag = theExtNodes(i);
234 Node *nodePtr = theSubdomain->getNode(nodeTag);
235 DOF_Group *dofPtr = nodePtr->getDOF_GroupPtr();
236 if (dofPtr != 0) {
237 const ID theID = dofPtr->getID();
238 int size = theID.Size();
239 for (int j=0; j<size; j++)
240 if (theID(j) == -3) {
241 theLastDOF = dofPtr->getTag();
242 i = idSize;

Callers 4

formTangentMethod · 0.95
formResidualMethod · 0.95
formTangVectProductMethod · 0.95

Calls 10

getIDMethod · 0.80
clearAllMethod · 0.45
handleMethod · 0.45
SizeMethod · 0.45
getNodeMethod · 0.45
getDOF_GroupPtrMethod · 0.45
getTagMethod · 0.45
numberDOFMethod · 0.45
setSizeMethod · 0.45
getNumEqnMethod · 0.45

Tested by

no test coverage detected