1: #ifndef TAOPETSCMULTIMAT_H
2: #define TAOPETSCMULTIMAT_H
4: #include "../../matrix/taomat_petsc.h"
5: #include "../interface/dagridctx.h"
7: #define PETSCDAAPPMAXGRIDS 20
9: class TaoMultiGridMatPetsc: public TaoMatPetsc{
11: public:
13: int ndamax; /* Max number of levels */
14: int nda; /* Number of levels in current application */
16: // TaoMultiGridMatPetsc( GridCtx*,int );
17: TaoMultiGridMatPetsc( Mat );
19: ~TaoMultiGridMatPetsc();
21: GridCtx grid[PETSCDAAPPMAXGRIDS];
23: int SetUpMultiGrid(GridCtx*,int );
24: int TakeDown();
26: virtual int SetDiagonal(TaoVec*);
27: virtual int AddDiagonal(TaoVec*);
28: virtual int ShiftDiagonal(double);
30: virtual int RowScale(TaoVec*);
31: virtual int ColScale(TaoVec*);
33: virtual int CreateReducedMatrix(TaoIndexSet*,TaoIndexSet*,TaoMat**);
34: virtual int SetReducedMatrix(TaoMat*,TaoIndexSet*,TaoIndexSet*);
36: };
38: #endif