umfilu.h

Go to the documentation of this file.
00001 #ifndef  __UmfIlu_h
00002 #define  __UmfIlu_h
00003 
00004 #ifdef __WITH_UMFPACK__
00005 
00006 #include  "iluinterface.h"
00007 #include  "simplematrix.h"
00008 
00009 
00010 namespace Gascoigne
00011 {
00012 
00020 
00021 class UmfIlu : virtual public IluInterface, public SimpleMatrix
00022 {
00023 private:
00024 
00025   const SimpleMatrix* AP;
00026 
00027 protected:
00028 
00029   // fuer umfpack
00030   double *Control;
00031   double *Info;
00032   void *Symbolic, *Numeric ;
00033 
00034 public:
00035 
00036   //
00038     //
00039     UmfIlu(const MatrixInterface* A);
00040     ~UmfIlu();
00041     
00042     std::string GetName() const { return "UmfIlu"; }
00043     
00044     int   n()          const { return GetStencil()->n();};
00045     void ReInit(const SparseStructureInterface* SS);
00046 
00047     void copy_entries(const MatrixInterface&  A);
00048     void ConstructStructure(const IntVector& perm, const MatrixInterface& A);
00049     void Factorize();
00050     void Solve(DoubleVector& x, const DoubleVector& b);
00051     void SolveTranspose(DoubleVector& x, const DoubleVector& b);
00052 };
00053 }
00054 
00055 #endif
00056 #endif

Generated on Thu Sep 14 10:34:37 2006 for Gascoigne by  doxygen 1.4.7