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

Method recvSelf

SRC/analysis/analysis/StaticDomainDecompositionAnalysis.cpp:604–733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

602 return 0;
603}
604int
605StaticDomainDecompositionAnalysis::recvSelf(int commitTag, Channel &theChannel,
606 FEM_ObjectBroker &theBroker)
607{
608 myChannel = &theChannel;
609
610 Domain *the_Domain = this->getSubdomainPtr();
611
612 // receive the data identifyng the objects in the aggregation
613 static ID data(8);
614 int dataTag = this->getDbTag();
615 theChannel.recvID(dataTag, commitTag, data);
616
617 // for all objects in the aggregation:
618 // 1. make sure objects exist & are of correct type; create new objects if not
619 // 2. invoke recvSelf on the object
620 if (theConstraintHandler == 0 || theConstraintHandler->getClassTag() != data(0)) {
621 if (theConstraintHandler != 0)
622 delete theConstraintHandler;
623
624 theConstraintHandler = theBroker.getNewConstraintHandler(data(0));
625 if (theConstraintHandler == 0) {
626 opserr << "StaticDomainDecompositionAnalysis::recvSelf";
627 opserr << " - failed to get the ConstraintHandler\n";
628 return -1;
629 }
630 }
631 theConstraintHandler->recvSelf(commitTag, theChannel,theBroker);
632
633 if (theDOF_Numberer == 0 || theDOF_Numberer->getClassTag() != data(1)) {
634 if (theDOF_Numberer != 0)
635 delete theDOF_Numberer;
636
637 theDOF_Numberer = theBroker.getNewNumberer(data(1));
638 if (theDOF_Numberer == 0) {
639 opserr << "StaticDomainDecompositionAnalysis::recvSelf";
640 opserr << " - failed to get the ConstraintHandler\n";
641 return -1;
642 }
643 }
644 theDOF_Numberer->recvSelf(commitTag, theChannel,theBroker);
645
646 if (theAnalysisModel == 0 || theAnalysisModel->getClassTag() != data(2)) {
647 if (theAnalysisModel != 0)
648 delete theAnalysisModel;
649
650 theAnalysisModel = theBroker.getNewAnalysisModel(data(2));
651 if (theAnalysisModel == 0) {
652 opserr << "StaticDomainDecompositionAnalysis::recvSelf";
653 opserr << " - failed to get the Analysis Model\n";
654 return -1;
655 }
656 }
657 theAnalysisModel->recvSelf(commitTag, theChannel,theBroker);
658
659 if (theAlgorithm == 0 || theAlgorithm->getClassTag() != data(3)) {
660 if (theAlgorithm != 0)
661 delete theAlgorithm;

Callers

nothing calls this directly

Calls 13

getSubdomainPtrMethod · 0.45
getDbTagMethod · 0.45
recvIDMethod · 0.45
getClassTagMethod · 0.45
getNewNumbererMethod · 0.45
getNewAnalysisModelMethod · 0.45
getNewEquiSolnAlgoMethod · 0.45
getNewLinearSOEMethod · 0.45
getSolverMethod · 0.45
getNewConvergenceTestMethod · 0.45

Tested by

no test coverage detected