xref: /petsc/src/mat/impls/kaij/kaij.h (revision 58c0e5077dcf40d6a880c19c87f1075ae1d22c8e)
1 #if !defined(_KAIJ_H)
2 #define _KAIJ_H
3 
4 #include <../src/mat/impls/aij/mpi/mpiaij.h>
5 
6 #define KAIJHEADER                                \
7   PetscInt    p,q;                                \
8   Mat         AIJ;                                \
9   PetscScalar *S;                                 \
10   PetscScalar *T;                                 \
11   PetscScalar *ibdiag;                            \
12   PetscBool   ibdiagvalid,getrowactive,isTI;      \
13   struct {                                        \
14     PetscBool setup;                              \
15     PetscScalar *w,*work,*t,*arr,*y;              \
16   } sor;
17 
18 typedef struct {
19   KAIJHEADER
20 } Mat_SeqKAIJ;
21 
22 typedef struct {
23   KAIJHEADER
24   Mat        OAIJ;
25   Mat        A;
26   VecScatter ctx;     /* update ghost points for parallel case */
27   Vec        w;       /* work space for ghost values for parallel case */
28 } Mat_MPIKAIJ;
29 
30 #endif
31