| 660 | // values in u, components identified by myID; |
| 661 | |
| 662 | void |
| 663 | TransformationDOF_Group::incrNodeDisp(const Vector &u) |
| 664 | { |
| 665 | // call base class method and return if no MP_Constraint |
| 666 | if (theMP == 0) { |
| 667 | this->DOF_Group::incrNodeDisp(u); |
| 668 | return; |
| 669 | } |
| 670 | |
| 671 | const ID &theID = this->getID(); |
| 672 | |
| 673 | for (int i=0; i<modNumDOF; i++) { |
| 674 | int loc = theID(i); |
| 675 | if (loc >= 0) |
| 676 | (*modUnbalance)(i) = u(loc); |
| 677 | else |
| 678 | (*modUnbalance)(i) = 0.0; |
| 679 | } |
| 680 | |
| 681 | #ifdef TRANSF_INCREMENTAL_MP |
| 682 | modTotalDisp.addVector(1.0, *modUnbalance, 1.0); // accumulate it for next iteration |
| 683 | #endif // TRANSF_INCREMENTAL_MP |
| 684 | |
| 685 | Matrix *T = this->getT(); |
| 686 | // *unbalance = (*T) * (*modUnbalance); |
| 687 | unbalance->addMatrixVector(0.0, *T, *modUnbalance, 1.0); |
| 688 | |
| 689 | int numDOF = myNode->getNumberDOF(); |
| 690 | for (int i=0; i<numDOF; i++) { |
| 691 | if (theSPs[i] != 0) |
| 692 | (*unbalance)(i) = 0.0; |
| 693 | } |
| 694 | myNode->incrTrialDisp(*unbalance); |
| 695 | } |
| 696 | |
| 697 | |
| 698 | void |
nothing calls this directly
no test coverage detected