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

BandArpackSolver.h

Go to the documentation of this file.
00001 // File: ~/system_of_eqn/eigenSOE/BandArpackSolver.h
00002 //
00003 // Written: Jun Peng
00004 // Created: Feb. 11, 1999
00005 // Revision: A
00006 //
00007 // Description: This file contains the class definition for 
00008 // BandArpackSolver. It solves the BandArpackSOE object by calling
00009 // Arpack routines.
00010 
00011 
00012 #ifndef BandArpackSolver_h
00013 #define BandArpackSolver_h
00014 
00015 #include <EigenSolver.h>
00016 #include <BandArpackSOE.h>
00017 
00019 class BandArpackSolver : public EigenSolver
00020 {
00021   public:
00023     BandArpackSolver(int numE = 0);    
00025     virtual ~BandArpackSolver();
00026 
00028     virtual int solve(void);
00030     virtual int solve(int numModes) {return this->solve();};    
00032     virtual int setSize(void);
00034     virtual int setEigenSOE(BandArpackSOE &theSOE);
00035     
00037     virtual const Vector &getEigenvector(int mode);
00039     virtual double getEigenvalue(int mode);
00040     
00042     int sendSelf(int commitTag, Channel &theChannel);
00044     int recvSelf(int commitTag, Channel &theChannel, 
00045    FEM_ObjectBroker &theBroker);
00046     
00047   protected:
00048     
00049 
00050   private:
00052     BandArpackSOE *theSOE;
00054     int theNev;    
00056     double *value;
00058     double *eigenvector;
00060     int *iPiv;
00062     int iPivSize;
00064     Vector *eigenV;
00065     
00067     void myMv(int n, double *v, double *result);
00069     void myCopy(int n, double *v, double *result);
00071     int getNCV(int n, int nev);
00072     
00073 };
00074 
00075 #endif
00076 
00077 
00078 ÿ
Copyright Contact Us