1: #pragma once 3: #include <../src/mat/impls/aij/mpi/mpiaij.h> 5: typedef struct { 6: PetscInt dof; /* number of components */ 7: Mat AIJ; /* representation of interpolation for one component */ 8: } Mat_SeqMAIJ; 10: typedef struct { 11: PetscInt dof; /* number of components */ 12: Mat AIJ, OAIJ; /* representation of interpolation for one component */ 13: Mat A; 14: VecScatter ctx; /* update ghost points for parallel case */ 15: Vec w; /* work space for ghost values for parallel case */ 16: } Mat_MPIMAIJ; 18: PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_SeqAIJ_SeqMAIJ(Mat); 19: PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_MPIAIJ_MPIMAIJ(Mat);