1 /* $Id: mpidense.h,v 1.2 1995/10/22 18:42:58 bsmith Exp curfman $ */ 2 3 #include "dense.h" 4 5 typedef struct { 6 int *rowners, *cowners; /* ranges owned by each processor */ 7 int m, n; /* local rows and columns */ 8 int M, N; /* global rows and columns */ 9 int rstart, rend; /* starting and ending owned rows */ 10 Mat A; /* local submatrix */ 11 int size; /* size of communicator */ 12 int rank; /* rank of proc in communicator */ 13 14 /* The following variables are used for matrix assembly */ 15 16 int assembled; /* MatAssemble has been called */ 17 InsertMode insertmode; /* mode for MatSetValues */ 18 Stash stash; /* stash for non-local elements */ 19 MPI_Request *send_waits; /* array of send requests */ 20 MPI_Request *recv_waits; /* array of receive requests */ 21 int nsends, nrecvs; /* numbers of sends and receives */ 22 Scalar *svalues, *rvalues; /* sending and receiving data */ 23 int rmax; /* maximum message length */ 24 25 /* The following variables are used for matrix-vector products */ 26 27 Vec lvec; /* local vector */ 28 VecScatter Mvctx; /* scatter context for vector */ 29 } Mat_MPIDense; 30