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