1*a4963045SJacob Faibussowitsch #pragma once 2eb9c0419SKris Buschelman 3c6db04a5SJed Brown #include <../src/mat/impls/aij/mpi/mpiaij.h> 4eb9c0419SKris Buschelman 5eb9c0419SKris Buschelman typedef struct { 6b24ad042SBarry Smith PetscInt dof; /* number of components */ 7eb9c0419SKris Buschelman Mat AIJ; /* representation of interpolation for one component */ 8eb9c0419SKris Buschelman } Mat_SeqMAIJ; 9eb9c0419SKris Buschelman 10eb9c0419SKris Buschelman typedef struct { 11b24ad042SBarry Smith PetscInt dof; /* number of components */ 12eb9c0419SKris Buschelman Mat AIJ, OAIJ; /* representation of interpolation for one component */ 13eb9c0419SKris Buschelman Mat A; 14eb9c0419SKris Buschelman VecScatter ctx; /* update ghost points for parallel case */ 15eb9c0419SKris Buschelman Vec w; /* work space for ghost values for parallel case */ 16eb9c0419SKris Buschelman } Mat_MPIMAIJ; 17eb9c0419SKris Buschelman 184222ddf1SHong Zhang PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_SeqAIJ_SeqMAIJ(Mat); 194222ddf1SHong Zhang PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_MPIAIJ_MPIMAIJ(Mat); 20