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

Method formTangent

DEVELOPER/core/IncrementalIntegrator.cpp:84–113  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

82}
83
84int
85IncrementalIntegrator::formTangent(int statFlag)
86{
87 int result = 0;
88 statusFlag = statFlag;
89
90 if (theAnalysisModel == 0 || theSOE == 0) {
91 opserr << "WARNING IncrementalIntegrator::formTangent() -";
92 opserr << " no AnalysisModel or LinearSOE have been set\n";
93 return -1;
94 }
95
96 // zero the A matrix of the linearSOE
97 theSOE->zeroA();
98
99 // the loops to form and add the tangents are broken into two for
100 // efficiency when performing parallel computations - CHANGE
101
102 // loop through the FE_Elements adding their contributions to the tangent
103 FE_Element *elePtr;
104 FE_EleIter &theEles2 = theAnalysisModel->getFEs();
105 while((elePtr = theEles2()) != 0)
106 if (theSOE->addA(elePtr->getTangent(this),elePtr->getID()) < 0) {
107 opserr << "WARNING IncrementalIntegrator::formTangent -";
108 opserr << " failed in addA for ID " << elePtr->getID();
109 result = -3;
110 }
111
112 return result;
113}
114
115int
116IncrementalIntegrator::formTangent(int statFlag, double iFact, double cFact)

Callers 1

Calls 4

getIDMethod · 0.80
zeroAMethod · 0.45
addAMethod · 0.45
getTangentMethod · 0.45

Tested by

no test coverage detected