pointmatrix.h

Go to the documentation of this file.
00001 #ifndef  __PointMatrix_h
00002 #define  __PointMatrix_h
00003 
00004 #include  "matrixinterface.h"
00005 #include  "simplematrix.h"
00006 #include  "sparsestructureadaptor.h"
00007 #include  "mginterpolatormatrix.h"
00008 
00009 namespace Gascoigne
00010 {
00011 
00016 
00020 
00021 class PointMatrix : public SimpleMatrix, virtual public MatrixInterface
00022 {
00023 protected:
00024 
00025   int _ncomp;
00026   SparseStructureAdaptor* SSAP;
00027 
00028 public:
00029 
00030 //
00032 //
00033     PointMatrix(int ncomp, std::string type);
00034     virtual ~PointMatrix();
00035 
00036     std::string GetName() const {return "PointMatrix";}
00037 
00038     void zero() {
00039       SimpleMatrix::zero();
00040     }
00041     void vmult(GlobalVector& y, const GlobalVector& x, double d=1.) const;
00042     void vmult_transpose(GlobalVector& y, const GlobalVector& x, double d=1.) const;
00043 
00044     const StencilInterface* GetStencil() const { return SimpleMatrix::GetStencil();}
00045     void ReInit(const SparseStructureInterface* S);
00046 
00047     void entry(niiterator start, niiterator stop, const EntryMatrix& M, double s=1.);
00048     void entry_diag(int i, const nmatrix<double>& M);
00049     void dirichlet (int i, const std::vector<int>& cv);
00050     void dirichlet_only_row (int i, const std::vector<int>& cv);
00051 
00052     void transpose() {
00053       SimpleMatrix::transpose();
00054     }
00055 
00056     void AddMassWithDifferentStencil(const MatrixInterface* M, const TimePattern& TP, double s=1.);
00057 
00058     void RestrictMatrix(const MgInterpolatorMatrix& I, const PointMatrix& Ah);
00059 };
00060 }
00061 
00062 #endif

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