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

Method newStep

SRC/analysis/integrator/Newmark.cpp:157–261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

155
156
157int Newmark::newStep(double deltaT)
158{
159 if ((beta == 0 || gamma == 0) && displ != 3) {
160 opserr << "Newmark::newStep() - error in variable\n";
161 opserr << "gamma = " << gamma << " beta = " << beta << endln;
162 return -1;
163 }
164
165 if (deltaT < 0.0 || (displ != 3 && deltaT == 0.0)) {
166 opserr << "Newmark::newStep() - error in variable\n";
167 opserr << "dT = " << deltaT << endln;
168 return -2;
169 }
170
171 // get a pointer to the AnalysisModel
172 AnalysisModel *theModel = this->getAnalysisModel();
173
174 // set the constants
175 if (displ == 1) {
176 c1 = 1.0;
177 c2 = gamma/(beta*deltaT);
178 c3 = 1.0/(beta*deltaT*deltaT);
179 } else if (displ == 2) {
180 c1 = deltaT*beta/gamma;
181 c2 = 1.0;
182 c3 = 1.0/(gamma*deltaT);
183 } else if (displ == 3) {
184 c1 = beta*deltaT*deltaT;
185 c2 = gamma*deltaT;
186 c3 = 1.0;
187 }
188
189 if (U == 0) {
190 opserr << "Newmark::newStep() - domainChange() failed or hasn't been called\n";
191 return -3;
192 }
193
194 // set response at t to be that at t+deltaT of previous step
195 /*
196 if (converged == true) {
197 std::ofstream outfile;
198
199 outfile.open("Newmark.dat",std::ofstream::out | std::ofstream::app);
200 int size = U->Size();
201 for (int i=0; i<size; i++)
202 outfile << (*U)(i) << " ";
203 outfile << "\n";
204 outfile.close();
205 }
206 */
207
208 converged = true;
209
210 (*Ut) = *U;
211 (*Utdot) = *Udot;
212 (*Utdotdot) = *Udotdot;
213
214 if (displ == 1) {

Callers

nothing calls this directly

Calls 7

getAnalysisModelMethod · 0.45
addVectorMethod · 0.45
setVelMethod · 0.45
setAccelMethod · 0.45
setDispMethod · 0.45
getCurrentDomainTimeMethod · 0.45
updateDomainMethod · 0.45

Tested by

no test coverage detected