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 class EigenSolver;
00028 class Graph;
00029 class Matrix;
00030 class Vector;
00031 class ID;
00032 
00033 class EigenSOE : public SystemOfEqn
00034 {
00035   public:
00036      EigenSOE(EigenSolver &theSolver, int classTag);
00037      virtual ~EigenSOE();
00038      
00039      virtual int solve(int numModes);
00040      virtual int solve(void);     
00041      
00042      // pure virtual functions
00043      virtual int addA(const Matrix &, const ID &, double fact = 1.0) = 0;
00044      virtual int addM(const Matrix &, const ID &, double fact = 1.0) = 0;
00045 
00046      virtual int setSize(Graph &theGraph) = 0;
00047      virtual void zeroA(void) = 0;
00048      virtual void zeroM(void) = 0;
00049 
00050      // methods to get the eigenvectors and eigenvalues
00051      virtual const Vector &getEigenvector(int mode);
00052      virtual double getEigenvalue(int mode);          
00053      
00054   protected:
00055      virtual int setSolver(EigenSolver &newSolver);
00056      EigenSolver *getSolver(void);
00057      EigenSolver *theSolver;
00058      
00059   private:     
00060      
00061 };
00062 
00063 #endif
00064 
00065 
00066 

Generated on Mon Oct 23 15:05:27 2006 for OpenSees by doxygen 1.5.0