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