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

Method addElement

DEVELOPER/core/Domain.cpp:412–459  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

410
411
412bool
413Domain::addElement(Element *element)
414{
415 int eleTag = element->getTag();
416 ops_TheActiveElement = element;
417
418 // check all the elements nodes exist in the domain
419 const ID &nodes = element->getExternalNodes();
420 int numDOF = 0;
421 for (int i=0; i<nodes.Size(); i++) {
422 int nodeTag = nodes(i);
423 Node *nodePtr = this->getNode(nodeTag);
424 if (nodePtr == 0) {
425 opserr << "WARNING Domain::addElement - In element " << eleTag;
426 opserr << "\n no Node " << nodeTag << " exists in the domain\n";
427 return false;
428 }
429 numDOF += nodePtr->getNumberDOF();
430 }
431
432 // check if an Element with a similar tag already exists in the Domain
433 TaggedObject *other = theElements->getComponentPtr(eleTag);
434 if (other != 0) {
435 opserr << "Domain::addElement - element with tag " << eleTag << "already exists in model\n";
436 return false;
437 }
438
439 // add the element to the container object for the elements
440 bool result = theElements->addComponent(element);
441 if (result == true) {
442 element->setDomain(this);
443 element->update();
444 // finally check the ele has correct number of dof
445#ifdef _G3DEBUG
446 if (numDOF != element->getNumDOF()) {
447
448 opserr << "Domain::addElement - element " << eleTag << " - #DOF does not match with number at nodes\n";
449 theElements->removeComponent(eleTag);
450 return false;
451 }
452#endif
453 // mark the Domain as having been changed
454 this->domainChange();
455 } else
456 opserr << "Domain::addElement - element " << eleTag << "could not be added to container\n";
457
458 return result;
459}
460
461
462

Callers 6

recvSelfMethod · 0.95
mainFunction · 0.45
TclPlaneTruss_addTrussFunction · 0.45
TclPlaneTruss_addMyTrussFunction · 0.45
TclPlaneTruss_addfTrussFunction · 0.45
mainFunction · 0.45

Calls 11

getNodeMethod · 0.95
domainChangeMethod · 0.95
getTagMethod · 0.45
SizeMethod · 0.45
getNumberDOFMethod · 0.45
getComponentPtrMethod · 0.45
addComponentMethod · 0.45
setDomainMethod · 0.45
updateMethod · 0.45
getNumDOFMethod · 0.45
removeComponentMethod · 0.45

Tested by

no test coverage detected