1 /* $Id: mpidense.h,v 1.1 1995/10/19 22:14:28 curfman 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 int cstart, cend; /* starting and ending owned columns */ 11 Mat A; /* local submatrix */ 12 int size; /* size of communicator */ 13 int rank; /* rank of proc in communicator */ 14 15 /* The following variables are used for matrix assembly */ 16 17 int assembled; /* MatAssemble has been called */ 18 InsertMode insertmode; /* mode for MatSetValues */ 19 Stash stash; /* stash for non-local elements */ 20 MPI_Request *send_waits; /* array of send requests */ 21 MPI_Request *recv_waits; /* array of receive requests */ 22 int nsends, nrecvs; /* numbers of sends and receives */ 23 Scalar *svalues, *rvalues; /* sending and receiving data */ 24 int rmax; /* maximum message length */ 25 26 /* The following variables are used for matrix-vector products */ 27 28 Vec lvec; /* local vector */ 29 VecScatter Mvctx; /* scatter context for vector */ 30 } Mat_MPIDense; 31