Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

EigenSOE.h

Go to the documentation of this file.
00001 // File: ~/system_of_eqn/eigenSOE/EigenSOE.h
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 #ifndef EigenSOE_h
00019 #define EigenSOE_h
00020 
00021 #ifndef _bool_h
00022 #include <bool.h>
00023 #endif
00024 
00025 #include <SystemOfEqn.h>
00026 
00027 #include <EigenSolver.h>
00028 #include <Graph.h>
00029 #include <Matrix.h>
00030 #include <Vector.h>
00031 #include <ID.h>
00032 
00034 class EigenSOE : public SystemOfEqn
00035 {
00036   public:
00038      EigenSOE(EigenSolver &theSolver, int classTag);
00040      virtual ~EigenSOE();
00041      
00043      virtual int solve(int numModes);
00045      virtual int solve(void);     
00046      
00048      virtual int addA(const Matrix &, const ID &, double fact = 1.0) = 0;
00050      virtual int addM(const Matrix &, const ID &, double fact = 1.0) = 0;
00051 
00053      virtual int setSize(Graph &theGraph) = 0;
00055      virtual void zeroA(void) = 0;
00057      virtual void zeroM(void) = 0;
00058 
00060      virtual const Vector &getEigenvector(int mode);
00062      virtual double getEigenvalue(int mode);          
00063      
00064   protected:
00066      virtual int setSolver(EigenSolver &newSolver);
00068      EigenSolver *getSolver(void);
00070      EigenSolver *theSolver;
00071      
00072   private:     
00073      
00074 };
00075 
00076 #endif
00077 
00078 
00079 
00080 ÿ
Copyright Contact Us