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
00021EigenSOE::EigenSOE(EigenSolver &theEigenSolver, int classTag)
00022 :SystemOfEqn(classTag), theSolver(&theEigenSolver)
00023 {
00024
00025 }
00026
00027EigenSOE::~EigenSOE()
00028 {
00029
00030 }
00031
00032 int
00033EigenSOE::solve(int numModes)
00034 {
00035 return (theSolver->solve(numModes));
00036 }
00037
00038 int
00039EigenSOE::solve(void)
00040 {
00041 cerr << "ERROR EigenSOE::solve(void) - need to specify numModes\n";
00042 return -1;
00043 }
00044
00045 int
00046EigenSOE::setSolver(EigenSolver &newSolver)
00047 {
00048 theSolver = &newSolver;
00049 return 0;
00050 }
00051
00052 EigenSolver *
00053EigenSOE::getSolver(void)
00054 {
00055 return theSolver;
00056 }
00057
00058 const Vector &
00059EigenSOE::getEigenvector(int mode) {
00060 return theSolver->getEigenvector(mode);
00061 }
00062
00063 double
00064EigenSOE::getEigenvalue(int mode) {
00065 return theSolver->getEigenvalue(mode);
00066 }
00067
00068
00069
00070