1 #pragma once 2 3 #include <../src/mat/impls/aij/mpi/mpiaij.h> 4 5 typedef struct { 6 PetscInt dof; /* number of components */ 7 Mat AIJ; /* representation of interpolation for one component */ 8 } Mat_SeqMAIJ; 9 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; 17 18 PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_SeqAIJ_SeqMAIJ(Mat); 19 PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_MPIAIJ_MPIMAIJ(Mat); 20