xref: /petsc/src/mat/impls/maij/maij.h (revision 9e03dfbb670b79b9d85005d09a452b1103574877)
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 
19d2b207f1SPeter Brune PETSC_EXTERN_C PetscErrorCode MatPtAP_SeqAIJ_SeqMAIJ(Mat,Mat,MatReuse,PetscReal,Mat*);
20*9e03dfbbSHong Zhang PETSC_EXTERN_C PetscErrorCode MatPtAP_MPIAIJ_MPIMAIJ(Mat,Mat,MatReuse,PetscReal,Mat*);
21eb9c0419SKris Buschelman #endif
22