| 491 | |
| 492 | |
| 493 | int HHTHSFixedNumIter::commit(void) |
| 494 | { |
| 495 | AnalysisModel *theModel = this->getAnalysisModel(); |
| 496 | if (theModel == 0) { |
| 497 | opserr << "WARNING HHTHSFixedNumIter::commit() - no AnalysisModel set\n"; |
| 498 | return -1; |
| 499 | } |
| 500 | |
| 501 | if (updDomFlag == true) { |
| 502 | LinearSOE *theSOE = this->getLinearSOE(); |
| 503 | if (theSOE == 0) { |
| 504 | opserr << "WARNING HHTHSFixedNumIter::commit() - no LinearSOE set\n"; |
| 505 | return -2; |
| 506 | } |
| 507 | |
| 508 | if (this->formTangent(statusFlag) < 0) { |
| 509 | opserr << "WARNING HHTHSFixedNumIter::commit() - " |
| 510 | << "the Integrator failed in formTangent()\n"; |
| 511 | return -3; |
| 512 | } |
| 513 | |
| 514 | if (theSOE->solve() < 0) { |
| 515 | opserr << "WARNING HHTHSFixedNumIter::commit() - " |
| 516 | << "the LinearSysOfEqn failed in solve()\n"; |
| 517 | return -4; |
| 518 | } |
| 519 | const Vector &deltaU = theSOE->getX(); |
| 520 | |
| 521 | // determine the response at t+deltaT |
| 522 | U->addVector(1.0, deltaU, c1); |
| 523 | |
| 524 | Udot->addVector(1.0, deltaU, c2); |
| 525 | |
| 526 | Udotdot->addVector(1.0, deltaU, c3); |
| 527 | } |
| 528 | |
| 529 | // update the response at the DOFs |
| 530 | theModel->setResponse(*U, *Udot, *Udotdot); |
| 531 | |
| 532 | // set the time to be t+deltaT |
| 533 | double time = theModel->getCurrentDomainTime(); |
| 534 | time += (1.0-alphaF)*deltaT; |
| 535 | theModel->setCurrentDomainTime(time); |
| 536 | |
| 537 | return theModel->commitDomain(); |
| 538 | } |
| 539 | |
| 540 | const Vector & |
| 541 | HHTHSFixedNumIter::getVel() |
nothing calls this directly
no test coverage detected