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

Method recvSelf

SRC/analysis/analysis/TransientDomainDecompositionAnalysis.cpp:590–721  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 14

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