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

Method commit

SRC/analysis/integrator/HHTHSFixedNumIter.cpp:493–538  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

491
492
493int 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
540const Vector &
541HHTHSFixedNumIter::getVel()

Callers

nothing calls this directly

Calls 10

getAnalysisModelMethod · 0.45
getLinearSOEMethod · 0.45
formTangentMethod · 0.45
solveMethod · 0.45
getXMethod · 0.45
addVectorMethod · 0.45
setResponseMethod · 0.45
getCurrentDomainTimeMethod · 0.45
setCurrentDomainTimeMethod · 0.45
commitDomainMethod · 0.45

Tested by

no test coverage detected