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

SymArpackSolver.h

Go to the documentation of this file.
00001 // File: ~/system_of_eqn/linearSOE/LawSolver/SymArpackSolver.h
00002 //
00003 // Written: Jun Peng
00004 // Created: 2/1999
00005 // Revision: A
00006 //
00007 // Description: This file contains the class definition for 
00008 // SymArpackSolver. It solves the SymArpackSOE object by calling
00009 // some "C" functions. The solver used here is generalized sparse
00010 // solver. The user can choose three different ordering schema.
00011 //
00012 // What: "@(#) SymArpackSolver.h, revA"
00013 
00014 #ifndef SymArpackSolver_h
00015 #define SymArpackSolver_h
00016 
00017 #include <EigenSolver.h>
00018 #include <SymArpackSOE.h>
00019 
00020 #include <SymArpackSOE.h>
00021 
00023 class SymArpackSolver : public EigenSolver
00024 {
00025   public:
00027     SymArpackSolver(int numE = 0);     
00029     virtual ~SymArpackSolver();
00030 
00032     virtual int solve(void);
00034     virtual int solve(int numModes) {return this->solve();};    
00036     virtual int setSize(void);
00037 
00039     virtual int setEigenSOE(SymArpackSOE &theSOE); 
00040  
00042     virtual const Vector &getEigenvector(int mode);
00044     virtual double getEigenvalue(int mode);
00045     
00047     int sendSelf(int cTag, Channel &theChannel);
00049     int recvSelf(int cTag, Channel &theChannel, 
00050    FEM_ObjectBroker &theBroker);
00051     
00052   protected:
00053 
00054   private:
00056     SymArpackSOE *theSOE;
00058     bool factored;
00059 
00061     int theNev;
00063     double *value;
00065     double *vector;
00067     Vector *eigenV;
00068     
00070     void myMv(int n, double *v, double *result);
00072     void myCopy(int n, double *v, double *result);
00074     int getNCV(int n, int nev);
00075     
00076 };
00077 
00078 #endif
00079 
00080 ÿ
Copyright Contact Us