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

Function eigenAnalysis

SRC/tcl/commands.cpp:5662–5865  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5660*/
5661
5662int
5663eigenAnalysis(ClientData clientData, Tcl_Interp *interp, int argc,
5664 TCL_Char **argv)
5665{
5666 // make sure at least one other argument to contain type of system
5667 if (argc < 2) {
5668 opserr << "WARNING want - eigen <type> numModes?\n";
5669 return TCL_ERROR;
5670 }
5671
5672 bool generalizedAlgo = true; // 0 - frequency/generalized (default),1 - standard, 2 - buckling
5673 int typeSolver = EigenSOE_TAGS_ArpackSOE;
5674 int loc = 1;
5675 double shift = 0.0;
5676 bool findSmallest = true;
5677
5678 // Check type of eigenvalue analysis
5679 while (loc < (argc-1)) {
5680 if ((strcmp(argv[loc],"frequency") == 0) ||
5681 (strcmp(argv[loc],"-frequency") == 0) ||
5682 (strcmp(argv[loc],"generalized") == 0) ||
5683 (strcmp(argv[loc],"-generalized") == 0))
5684 generalizedAlgo = true;
5685
5686 else if ((strcmp(argv[loc],"standard") == 0) ||
5687 (strcmp(argv[loc],"-standard") == 0))
5688 generalizedAlgo = false;
5689
5690 else if ((strcmp(argv[loc],"-findLargest") == 0))
5691 findSmallest = false;
5692
5693 else if ((strcmp(argv[loc],"genBandArpack") == 0) ||
5694 (strcmp(argv[loc],"-genBandArpack") == 0) ||
5695 (strcmp(argv[loc],"genBandArpackEigen") == 0) ||
5696 (strcmp(argv[loc],"-genBandArpackEigen") == 0))
5697 typeSolver = EigenSOE_TAGS_ArpackSOE;
5698
5699 else if ((strcmp(argv[loc],"symmBandLapack") == 0) ||
5700 (strcmp(argv[loc],"-symmBandLapack") == 0) ||
5701 (strcmp(argv[loc],"symmBandLapackEigen") == 0) ||
5702 (strcmp(argv[loc],"-symmBandLapackEigen") == 0))
5703 typeSolver = EigenSOE_TAGS_SymBandEigenSOE;
5704
5705 else if ((strcmp(argv[loc],"fullGenLapack") == 0) ||
5706 (strcmp(argv[loc],"-fullGenLapack") == 0) ||
5707 (strcmp(argv[loc],"fullGenLapackEigen") == 0) ||
5708 (strcmp(argv[loc],"-fullGenLapackEigen") == 0))
5709 typeSolver = EigenSOE_TAGS_FullGenEigenSOE;
5710
5711 else {
5712 opserr << "eigen - unknown option specified " << argv[loc] << endln;
5713 }
5714
5715 loc++;
5716 }
5717
5718 // check argv[loc] for number of modes
5719 // int numEigen;

Callers

nothing calls this directly

Calls 6

partitionModelFunction · 0.70
OpenSeesExitFunction · 0.70
getClassTagMethod · 0.45
setEigenSOEMethod · 0.45
setAnalysisEigenSOEMethod · 0.45
eigenMethod · 0.45

Tested by

no test coverage detected