| 582 | } |
| 583 | |
| 584 | int |
| 585 | DomainDecompositionAnalysis::recvSelf(int commitTag, |
| 586 | Channel &theChannel, |
| 587 | FEM_ObjectBroker &theBroker) |
| 588 | { |
| 589 | // receive the data identifyng the objects in the aggregation |
| 590 | ID data(14); |
| 591 | int dataTag = this->getDbTag(); |
| 592 | theChannel.recvID(dataTag, commitTag, data); |
| 593 | |
| 594 | // |
| 595 | // now ask the object broker an object of each type |
| 596 | // and invoke recvSelf() on the object to init it. |
| 597 | // |
| 598 | |
| 599 | theHandler = theBroker.getNewConstraintHandler(data(0)); |
| 600 | if (theHandler != 0) { |
| 601 | theHandler->setDbTag(data(7)); |
| 602 | theHandler->recvSelf(commitTag, theChannel,theBroker); |
| 603 | } |
| 604 | else { |
| 605 | opserr << "DomainDecompositionAnalysis::recvSelf"; |
| 606 | opserr << " - failed to get the ConstraintHandler\n"; |
| 607 | return -1; |
| 608 | } |
| 609 | |
| 610 | |
| 611 | |
| 612 | theNumberer = theBroker.getNewNumberer(data(1)); |
| 613 | if (theNumberer != 0) { |
| 614 | theNumberer->setDbTag(data(8)); |
| 615 | theNumberer->recvSelf(commitTag, theChannel,theBroker); |
| 616 | } |
| 617 | else { |
| 618 | opserr << "DomainDecompositionAnalysis::recvSelf"; |
| 619 | opserr << " - failed to get the DOF Numberer\n"; |
| 620 | return -1; |
| 621 | } |
| 622 | |
| 623 | |
| 624 | theModel = theBroker.getNewAnalysisModel(data(2)); |
| 625 | if (theModel != 0) { |
| 626 | theModel->setDbTag(data(9)); |
| 627 | theModel->recvSelf(commitTag, theChannel,theBroker); |
| 628 | } |
| 629 | else { |
| 630 | opserr << "DomainDecompositionAnalysis::recvSelf"; |
| 631 | opserr << " - failed to get the AnalysisModel\n"; |
| 632 | return -1; |
| 633 | } |
| 634 | |
| 635 | |
| 636 | theAlgorithm = theBroker.getNewDomainDecompAlgo(data(3)); |
| 637 | if (theAlgorithm != 0) { |
| 638 | theAlgorithm->setDbTag(data(10)); |
| 639 | theAlgorithm->recvSelf(commitTag, theChannel,theBroker); |
| 640 | } |
| 641 | else { |
nothing calls this directly
no test coverage detected