BandArpackSolver.h

Go to the documentation of this file.
00001 // Written: Jun Peng
00002 // Created: Feb. 11, 1999
00003 // Revision: A
00004 //
00005 // Description: This file contains the class definition for 
00006 // BandArpackSolver. It solves the BandArpackSOE object by calling
00007 // Arpack routines.
00008 
00009 
00010 #ifndef BandArpackSolver_h
00011 #define BandArpackSolver_h
00012 
00013 #include <EigenSolver.h>
00014 #include <BandArpackSOE.h>
00015 
00016 class BandArpackSolver : public EigenSolver
00017 {
00018   public:
00019     BandArpackSolver(int numE = 0);    
00020     virtual ~BandArpackSolver();
00021 
00022     virtual int solve(void);
00023     virtual int solve(int numModes) {return this->solve();};    
00024     virtual int setSize(void);
00025     virtual int setEigenSOE(BandArpackSOE &theSOE);
00026     
00027     virtual const Vector &getEigenvector(int mode);
00028     virtual double getEigenvalue(int mode);
00029     
00030     int sendSelf(int commitTag, Channel &theChannel);
00031     int recvSelf(int commitTag, Channel &theChannel, 
00032                  FEM_ObjectBroker &theBroker);
00033     
00034   protected:
00035     
00036 
00037   private:
00038     BandArpackSOE *theSOE;
00039     int theNev;    
00040     double *value;
00041     double *eigenvector;
00042     int *iPiv;
00043     int iPivSize;
00044     Vector *eigenV;
00045     
00046     void myMv(int n, double *v, double *result);
00047     void myCopy(int n, double *v, double *result);
00048     int getNCV(int n, int nev);
00049     
00050 };
00051 
00052 #endif
00053 
00054 

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