xref: /petsc/src/mat/impls/maij/maij.h (revision 5a5764247e8e42b2972d2371d5c619b20bcb2a28)
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*);
209e03dfbbSHong Zhang PETSC_EXTERN_C PetscErrorCode MatPtAP_MPIAIJ_MPIMAIJ(Mat,Mat,MatReuse,PetscReal,Mat*);
21*5a576424SJed Brown PETSC_INTERN PetscErrorCode         MatPtAPNumeric_SeqAIJ_SeqMAIJ(Mat,Mat,Mat);
22eb9c0419SKris Buschelman #endif
23