xref: /petsc/src/mat/impls/maij/maij.h (revision 9dd11ecf0918283bb567d8b33a92f53ac4ea7840)
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