xref: /petsc/src/mat/impls/kaij/kaij.h (revision 26da31511f7d5cf444c09b32e678cc031f42abec)
149bd79ccSDebojyoti Ghosh #if !defined(_KAIJ_H)
249bd79ccSDebojyoti Ghosh #define _KAIJ_H
349bd79ccSDebojyoti Ghosh 
449bd79ccSDebojyoti Ghosh #include <../src/mat/impls/aij/mpi/mpiaij.h>
549bd79ccSDebojyoti Ghosh 
649bd79ccSDebojyoti Ghosh #define KAIJHEADER                                \
749bd79ccSDebojyoti Ghosh   PetscInt    p,q;                                \
849bd79ccSDebojyoti Ghosh   Mat         AIJ;                                \
949bd79ccSDebojyoti Ghosh   PetscScalar *S;                                 \
1049bd79ccSDebojyoti Ghosh   PetscScalar *T;                                 \
1149bd79ccSDebojyoti Ghosh   PetscScalar *ibdiag;                            \
1249bd79ccSDebojyoti Ghosh   PetscBool   ibdiagvalid,getrowactive,isTI;      \
1349bd79ccSDebojyoti Ghosh   struct {                                        \
1449bd79ccSDebojyoti Ghosh     PetscBool setup;                              \
1549bd79ccSDebojyoti Ghosh     PetscScalar *w,*work,*t,*arr,*y;              \
1649bd79ccSDebojyoti Ghosh   } sor;
1749bd79ccSDebojyoti Ghosh 
1849bd79ccSDebojyoti Ghosh typedef struct {
19*26da3151SRichard Tran Mills   KAIJHEADER
2049bd79ccSDebojyoti Ghosh } Mat_SeqKAIJ;
2149bd79ccSDebojyoti Ghosh 
2249bd79ccSDebojyoti Ghosh typedef struct {
23*26da3151SRichard Tran Mills   KAIJHEADER
2449bd79ccSDebojyoti Ghosh   Mat        OAIJ;
2549bd79ccSDebojyoti Ghosh   Mat        A;
2649bd79ccSDebojyoti Ghosh   VecScatter ctx;     /* update ghost points for parallel case */
2749bd79ccSDebojyoti Ghosh   Vec        w;       /* work space for ghost values for parallel case */
2849bd79ccSDebojyoti Ghosh } Mat_MPIKAIJ;
2949bd79ccSDebojyoti Ghosh 
3049bd79ccSDebojyoti Ghosh #endif
31