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