BandArpackSolver.hGo 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 |