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