1*bad5519cSBarry Smith /* $Id: mpidense.h,v 1.1 1995/10/19 22:14:28 curfman Exp curfman $ */ 28965ea79SLois Curfman McInnes 38965ea79SLois Curfman McInnes #include "dense.h" 48965ea79SLois Curfman McInnes 58965ea79SLois Curfman McInnes typedef struct { 68965ea79SLois Curfman McInnes int *rowners, *cowners; /* ranges owned by each processor */ 78965ea79SLois Curfman McInnes int m, n; /* local rows and columns */ 88965ea79SLois Curfman McInnes int M, N; /* global rows and columns */ 98965ea79SLois Curfman McInnes int rstart, rend; /* starting and ending owned rows */ 108965ea79SLois Curfman McInnes int cstart, cend; /* starting and ending owned columns */ 11*bad5519cSBarry Smith Mat A; /* local submatrix */ 128965ea79SLois Curfman McInnes int size; /* size of communicator */ 138965ea79SLois Curfman McInnes int rank; /* rank of proc in communicator */ 148965ea79SLois Curfman McInnes 158965ea79SLois Curfman McInnes /* The following variables are used for matrix assembly */ 168965ea79SLois Curfman McInnes 178965ea79SLois Curfman McInnes int assembled; /* MatAssemble has been called */ 188965ea79SLois Curfman McInnes InsertMode insertmode; /* mode for MatSetValues */ 198965ea79SLois Curfman McInnes Stash stash; /* stash for non-local elements */ 208965ea79SLois Curfman McInnes MPI_Request *send_waits; /* array of send requests */ 218965ea79SLois Curfman McInnes MPI_Request *recv_waits; /* array of receive requests */ 228965ea79SLois Curfman McInnes int nsends, nrecvs; /* numbers of sends and receives */ 238965ea79SLois Curfman McInnes Scalar *svalues, *rvalues; /* sending and receiving data */ 248965ea79SLois Curfman McInnes int rmax; /* maximum message length */ 258965ea79SLois Curfman McInnes 268965ea79SLois Curfman McInnes /* The following variables are used for matrix-vector products */ 278965ea79SLois Curfman McInnes 288965ea79SLois Curfman McInnes Vec lvec; /* local vector */ 29*bad5519cSBarry Smith VecScatter Mvctx; /* scatter context for vector */ 308965ea79SLois Curfman McInnes } Mat_MPIDense; 31