sparsestructureadaptor.h

Go to the documentation of this file.
00001 #ifndef  __SparseStructureAdaptor_h
00002 #define  __SparseStructureAdaptor_h
00003 
00004 #include  "columndiagstencil.h"
00005 #include  "sparsestructure.h"
00006 #include  <string>
00007 
00008 
00009 namespace Gascoigne
00010 {
00011 
00016 
00020 
00021 class SparseStructureAdaptor
00022 {
00023 public:
00024 
00025 
00026 private:
00027 
00028 protected:
00029 
00030   int _nnodes;
00031   const SparseStructure* SSP;
00032 
00033   int n_base() const {assert(SSP);   return SSP->n();} 
00034   int nentries_base() const {assert(SSP); return SSP->ntotal();} 
00035 
00036 public:
00037 
00038 
00039 //
00041 //
00042     SparseStructureAdaptor() : SSP(NULL) {}
00043     virtual ~SparseStructureAdaptor() {}
00044 
00045     virtual std::string GetName() const=0;
00046 
00047     void InitStructure(const SparseStructureInterface* SS) {
00048       SSP = dynamic_cast<const SparseStructure*>(SS);
00049       assert(SSP);
00050       _nnodes = SSP->n();
00051     }
00052 
00053     int nnodes() const {return _nnodes;}
00054     virtual int index(int i, int c) const=0;
00055 
00056     virtual int n() const=0; 
00057     virtual int nentries() const=0; 
00058     virtual void FillStencil(ColumnDiagStencil& S) const=0;
00059     virtual IntVector GetIndicesDirichlet(int inode, const std::vector<int>& cv)const=0;
00060 };
00061 }
00062 
00063 #endif

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