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