xref: /petsc/src/mat/impls/maij/maij.h (revision 4222ddf1d74c63827c599361b3bb0b06ad3944a0)
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 
19*4222ddf1SHong Zhang PETSC_INTERN PetscErrorCode MatPtAPSymbolic_SeqAIJ_SeqMAIJ(Mat,Mat,PetscReal,Mat);
205a576424SJed Brown PETSC_INTERN PetscErrorCode MatPtAPNumeric_SeqAIJ_SeqMAIJ(Mat,Mat,Mat);
21*4222ddf1SHong Zhang 
22*4222ddf1SHong Zhang PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_SeqAIJ_SeqMAIJ(Mat);
23*4222ddf1SHong Zhang PETSC_INTERN PetscErrorCode MatProductSymbolic_PtAP_MPIAIJ_MPIMAIJ(Mat);
24eb9c0419SKris Buschelman #endif
25