1 2 #include "aij.h" 3 4 typedef struct {int nmax, n, *idx, *idy; Scalar *array;} Stash; 5 6 typedef struct { 7 int *rowners,*cowners; /* ranges owned by each processor */ 8 int m,n,M,N; /* local rows, cols, global rows, cols */ 9 int rstart,rend,cstart,cend; 10 Mat A,B; 11 int numtids,mytid; 12 /* Used in Matrix assembly */ 13 int assembled; /* MatAssemble has been called */ 14 InsertMode insertmode; 15 Stash stash; 16 MPI_Request *send_waits,*recv_waits; 17 int nsends,nrecvs; 18 Scalar *svalues,*rvalues; 19 int rmax; 20 int *colmap; /* indicates local col number of off proc column*/ 21 int *garray; 22 /* Used in Matrix-vector product */ 23 Vec lvec; 24 VecScatterCtx Mvctx; 25 } Mat_MPIAIJ; 26 27 28