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

Method newStep

SRC/analysis/integrator/PFEMIntegrator.cpp:167–311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

165
166
167int PFEMIntegrator::newStep(double deltaT)
168{
169 if (beta == 0 || gamma == 0) {
170 opserr << "Newmark::newStep() - error in variable\n";
171 opserr << "gamma = " << gamma << " beta = " << beta << endln;
172 return -1;
173 }
174
175 if (deltaT <= 0.0) {
176 opserr << "PFEMIntegrator::newStep() - error in variable\n";
177 opserr << "dT = " << deltaT << endln;
178 return -2;
179 }
180
181 // get a pointer to the AnalysisModel and Domain
182 AnalysisModel *theModel = this->getAnalysisModel();
183 if(theModel == 0) {
184 opserr << "Analysis model has not been linked - PFEMIntegrator::newStep()\n";
185 return -1;
186 }
187 Domain* theDomain = theModel->getDomainPtr();
188 if(theDomain == 0) {
189 opserr<<"WARNING: no domain is set for the model";
190 opserr<<" -- PFEMIntegrator::newStep()\n";
191 return -1;
192 }
193
194 // set the constants
195 if (displ == 1) {
196 if (gamma>0 && beta>0) {
197 c1 = 1.0;
198 c2 = gamma / (beta * deltaT);
199 c3 = 1.0 / (beta * deltaT * deltaT);
200 } else {
201 c1 = 1.0;
202 c2 = 1.0 / deltaT;
203 c3 = 1.0 / (deltaT * deltaT);
204 }
205 } else if (displ == 2) {
206 if (gamma>0 && beta>0) {
207 c1 = deltaT * beta / gamma;
208 c2 = 1.0;
209 c3 = 1.0 / (gamma * deltaT);
210 } else {
211 c1 = deltaT;
212 c2 = 1.0;
213 c3 = 1.0/deltaT;
214 }
215 } else if (displ == 3) {
216 if (gamma>0 && beta>0) {
217 c1 = beta * deltaT * deltaT;
218 c2 = gamma * deltaT;
219 c3 = 1.0;
220 } else {
221 c1 = deltaT * deltaT;
222 c2 = deltaT;
223 c3 = 1.0;
224 }

Callers

nothing calls this directly

Calls 8

getAnalysisModelMethod · 0.45
getDomainPtrMethod · 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