EigenSOE.cppGo to the documentation of this file.00001 // File: ~/system_of_eqn/eigenSOE/EigenSOE.C 00002 // 00003 // Written: Jun Peng 00004 // Created: Sat Feb. 6, 1999 00005 // Revision: A 00006 // 00007 // Description: This file contains the class definition of EigenSOE. 00008 // EigenSOE is a subclass of SystemOfEqn. 00009 // It has pure virtual functions which must be implemented in it's derived 00010 // subclasses. To solve the genreal eigen value equations means that 00011 // by the given K and M, find the corresponding eigen value and eigen 00012 // vectors. 00013 // 00014 // This class is inheritanted from the base class of SystemOfEqn 00015 // which was created by fmk (Frank). 00016 00017 00018 #include <EigenSOE.h> 00019 #include <EigenSolver.h> 00020 00021 EigenSOE::EigenSOE(EigenSolver &theEigenSolver, int classTag) 00022 :SystemOfEqn(classTag), theSolver(&theEigenSolver) 00023 { 00024 00025 } 00026 00027 EigenSOE::~EigenSOE() 00028 { 00029 delete theSolver; 00030 } 00031 00032 int 00033 EigenSOE::solve(int numModes) 00034 { 00035 return (theSolver->solve(numModes)); 00036 } 00037 00038 int 00039 EigenSOE::solve(void) 00040 { 00041 opserr << "ERROR EigenSOE::solve(void) - need to specify numModes\n"; 00042 return -1; 00043 } 00044 00045 int 00046 EigenSOE::setSolver(EigenSolver &newSolver) 00047 { 00048 theSolver = &newSolver; 00049 return 0; 00050 } 00051 00052 EigenSolver * 00053 EigenSOE::getSolver(void) 00054 { 00055 return theSolver; 00056 } 00057 00058 const Vector & 00059 EigenSOE::getEigenvector(int mode) { 00060 return theSolver->getEigenvector(mode); 00061 } 00062 00063 double 00064 EigenSOE::getEigenvalue(int mode) { 00065 return theSolver->getEigenvalue(mode); 00066 } 00067 00068 00069 00070 |