| 5660 | */ |
| 5661 | |
| 5662 | int |
| 5663 | eigenAnalysis(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; |
nothing calls this directly
no test coverage detected