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

Method newPFEMAnalysis

SRC/interpreter/PythonAnalysisBuilder.cpp:353–413  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

351}
352
353void PythonAnalysisBuilder::newPFEMAnalysis(double dtmax, double dtmin, double ratio)
354{
355 this->wipe();
356
357 if(theAnalysisModel == 0) {
358 theAnalysisModel = new AnalysisModel();
359 }
360
361 if(theTest == 0) {
362 theTest = new CTestPFEM(1e-6,1e-6,1e-6,1e-6,1e-6,1e-6,10000,100,1,2);
363 }
364
365 if(theAlgorithm == 0) {
366 opserr << "WARNING analysis PFEM - no Algorithm yet specified, \n";
367 opserr << " NewtonRaphson default will be used\n";
368 theAlgorithm = new NewtonRaphson(*theTest);
369 }
370 if(theHandler == 0) {
371 opserr << "WARNING analysis PFEM - no ConstraintHandler yet specified, \n";
372 opserr << " Transformation default will be used\n";
373 theHandler = new TransformationConstraintHandler();
374 }
375 if(theNumberer == 0) {
376 opserr << "WARNING analysis PFEM - no Numberer specified, \n";
377 opserr << " RCM default will be used\n";
378 RCM *theRCM = new RCM(false);
379 theNumberer = new DOF_Numberer(*theRCM);
380 }
381 if(theTransientIntegrator == 0) {
382 opserr << "WARNING analysis PFEM - no Integrator specified, \n";
383 opserr << " PFEMIntegrator default will be used\n";
384 theTransientIntegrator = new PFEMIntegrator();
385 }
386 if(theSOE == 0) {
387 opserr << "WARNING analysis PFEM - no LinearSOE specified, \n";
388 opserr << " PFEMLinSOE default will be used\n";
389 PFEMSolver* theSolver = new PFEMSolver();
390 theSOE = new PFEMLinSOE(*theSolver);
391 }
392
393 Domain* theDomain = OPS_GetDomain();
394 thePFEMAnalysis = new PFEMAnalysis(*theDomain,
395 *theHandler,
396 *theNumberer,
397 *theAnalysisModel,
398 *theAlgorithm,
399 *theSOE,
400 *theTransientIntegrator,
401 theTest,dtmax,dtmin,ratio);
402
403 theTransientAnalysis = thePFEMAnalysis;
404
405 // set eigen SOE
406 if(theEigenSOE != 0) {
407 if(theTransientAnalysis != 0) {
408 theTransientAnalysis->setEigenSOE(*theEigenSOE);
409 }
410 }

Callers 1

ops_specifyAnalysisFunction · 0.80

Calls 4

wipeMethod · 0.95
resetTransientMethod · 0.95
OPS_GetDomainFunction · 0.70
setEigenSOEMethod · 0.45

Tested by

no test coverage detected