xref: /petsc/src/mat/impls/aij/mpi/mpiaij.h (revision 180e10861bb133f3c665254c134486626c3543fd)
18a729477SBarry Smith 
2*180e1086SBarry Smith #include "aij.h"
3*180e1086SBarry Smith #include <math.h>
48a729477SBarry Smith 
5*180e1086SBarry Smith typedef  struct {int nmax, n, *idx, *idy; Scalar *array;} Stash;
68a729477SBarry Smith 
78a729477SBarry Smith typedef struct {
8*180e1086SBarry Smith   int           *rowners,*cowners;  /* ranges owned by each processor */
9*180e1086SBarry Smith   int           m,n,M,N;            /* local rows, cols, global rows, cols */
10*180e1086SBarry Smith   int           rstart,rend,cstart,cend;
11*180e1086SBarry Smith   Mat           A,B;
12*180e1086SBarry Smith   int           numtids,mytid;
13*180e1086SBarry Smith /*  Used in Matrix assembly */
14*180e1086SBarry Smith   int           assembled;          /* MatAssemble has been called */
15*180e1086SBarry Smith   InsertMode    insertmode;
16*180e1086SBarry Smith   Stash         stash;
17*180e1086SBarry Smith   MPI_Request   *send_waits,*recv_waits;
18*180e1086SBarry Smith   int           nsends,nrecvs;
19*180e1086SBarry Smith   Scalar        *svalues,*rvalues;
20*180e1086SBarry Smith   int           rmax;
21*180e1086SBarry Smith   int           *colmap;    /* indicates local col number of off proc column*/
22*180e1086SBarry Smith   int           *garray;
23*180e1086SBarry Smith /*  Used in Matrix-vector product */
24*180e1086SBarry Smith   Vec           lvec;
25*180e1086SBarry Smith   VecScatterCtx Mvctx;
26*180e1086SBarry Smith } Mat_MPIAIJ;
278a729477SBarry Smith 
288a729477SBarry Smith 
29