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

SymArpackSOE.h

Go to the documentation of this file.
00001 // File: ~/system_of_eqn/linearSOE/LawSolver/SymArpackSOE.h
00002 //
00003 // Written: Jun Peng
00004 // Created: 12/98
00005 // Revision: A
00006 //
00007 // Description: This file contains the class definition for 
00008 // SymArpackSOE.h. It stores the sparse matrix A in a fashion
00009 // that only store the none zero.
00010 //
00011 // What: "@(#) SymArpackSOE.h, revA"
00012 //
00013 // Almost all the information (Matrix A and Vector B) is stored as 
00014 // global variables in the file "symbolic.h".
00015 
00016 
00017 #ifndef SymArpackSOE_h
00018 #define SymArpackSOE_h
00019 
00020 #include <EigenSOE.h>
00021 #include <Vector.h>
00022 
00024 extern "C" {
00025    #include <FeStructs.h>
00026 }
00027 
00028 
00029 
00030 #include <SymArpackSolver.h>
00031 
00033 class SymArpackSOE : public EigenSOE
00034 {
00035   public:
00037     SymArpackSOE(SymArpackSolver &theSolver, AnalysisModel &theModel,
00038   double shift = 0.0);        
00039 
00041     virtual ~SymArpackSOE();
00042 
00044     virtual int getNumEqn(void) const;
00046     virtual int setSize(Graph &theGraph);
00047     
00049     virtual int addA(const Matrix &, const ID &, double fact = 1.0);
00051     virtual int addM(const Matrix &, const ID &, double fact = 1.0);    
00052       
00054     virtual void zeroA(void);
00056     virtual void zeroM(void);
00057     
00059     virtual double getShift(void);
00060     
00062     int sendSelf(int commitTag, Channel &theChannel);
00064     int recvSelf(int commitTag, Channel &theChannel, 
00065    FEM_ObjectBroker &theBroker);
00066 
00068     friend #include <SymArpackSolver.h>
00069 
00070 
00071   protected:
00072     
00073   private:
00074     int size;               
00075     int nnz;                
00076     int *colA, *rowStartA;  
00077 
00078     bool factored;
00080     double shift;
00082     AnalysisModel *theModel;
00083 
00085     int      nblks;
00087     int      *xblk,  *invp;
00089     double   *diag, **penv;
00091     int      *rowblks;
00093     OFFDBLK  **begblk;
00095     OFFDBLK  *first;
00096 };
00097 
00098 #endif
00099 
00100 ÿ
Copyright Contact Us