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

Method newEigenAnalysis

SRC/runtime/runtime/BasicAnalysisBuilder.cpp:870–912  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

868
869
870void
871BasicAnalysisBuilder::newEigenAnalysis(int typeSolver, double shift)
872{
873 assert(theAnalysisModel != nullptr);
874
875 if (theHandler == nullptr)
876 theHandler = new TransformationConstraintHandler();
877
878 if (this->CurrentAnalysisFlag == EMPTY_ANALYSIS)
879 this->CurrentAnalysisFlag = TRANSIENT_ANALYSIS;
880
881 this->fillDefaults(this->CurrentAnalysisFlag);
882 this->setLinks(this->CurrentAnalysisFlag);
883
884 // create a new eigen system and solver
885 if (theEigenSOE != nullptr) {
886 if (theEigenSOE->getClassTag() != typeSolver) {
887 delete theEigenSOE;
888 theEigenSOE = nullptr;
889 }
890 }
891
892 if (theEigenSOE == nullptr) {
893 domainStamp = 0;
894 if (typeSolver == EigenSOE_TAGS_SymBandEigenSOE) {
895 SymBandEigenSolver *theEigenSolver = new SymBandEigenSolver();
896 theEigenSOE = new SymBandEigenSOE(*theEigenSolver, *theAnalysisModel);
897
898 } else if (typeSolver == EigenSOE_TAGS_FullGenEigenSOE) {
899 FullGenEigenSolver *theEigenSolver = new FullGenEigenSolver();
900 theEigenSOE = new FullGenEigenSOE(*theEigenSolver, *theAnalysisModel);
901
902 } else {
903 theEigenSOE = new ArpackSOE(shift);
904 }
905
906 //
907 // set the eigen soe in the system
908 //
909 theEigenSOE->setLinks(*theAnalysisModel);
910 theEigenSOE->setLinearSOE(*theSOE);
911 } // theEigenSOE == 0
912}
913
914
915int

Callers 2

eigenAnalysisFunction · 0.45
modalDampingFunction · 0.45

Calls 4

fillDefaultsMethod · 0.95
setLinksMethod · 0.95
getClassTagMethod · 0.45
setLinearSOEMethod · 0.45

Tested by

no test coverage detected