1 #if !defined(_MAIJ_H) 2 #define _MAIJ_H 3 4 #include <../src/mat/impls/aij/mpi/mpiaij.h> 5 6 typedef struct { 7 PetscInt dof; /* number of components */ 8 Mat AIJ; /* representation of interpolation for one component */ 9 } Mat_SeqMAIJ; 10 11 typedef struct { 12 PetscInt dof; /* number of components */ 13 Mat AIJ,OAIJ; /* representation of interpolation for one component */ 14 Mat A; 15 VecScatter ctx; /* update ghost points for parallel case */ 16 Vec w; /* work space for ghost values for parallel case */ 17 } Mat_MPIMAIJ; 18 19 PETSC_INTERN PetscErrorCode MatPtAPSymbolic_SeqAIJ_SeqMAIJ(Mat,Mat,PetscReal,Mat); 20 PETSC_INTERN PetscErrorCode MatPtAPNumeric_SeqAIJ_SeqMAIJ(Mat,Mat,Mat); 21 22 PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_SeqAIJ_SeqMAIJ(Mat); 23 PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_MPIAIJ_MPIMAIJ(Mat); 24 #endif 25