Actual source code: mpiaij.h
1: /* $Id: mpiaij.h,v 1.23 2001/08/07 03:02:49 balay Exp $ */
6: #include src/mat/impls/aij/seq/aij.h
7: #include src/sys/ctable.h
9: typedef struct {
10: int *rowners,*cowners; /* ranges owned by each processor */
11: int rstart,rend; /* starting and ending owned rows */
12: int cstart,cend; /* starting and ending owned columns */
13: Mat A,B; /* local submatrices: A (diag part),
14: B (off-diag part) */
15: int size; /* size of communicator */
16: int rank; /* rank of proc in communicator */
18: /* The following variables are used for matrix assembly */
20: PetscTruth donotstash; /* PETSC_TRUE if off processor entries dropped */
21: MPI_Request *send_waits; /* array of send requests */
22: MPI_Request *recv_waits; /* array of receive requests */
23: int nsends,nrecvs; /* numbers of sends and receives */
24: PetscScalar *svalues,*rvalues; /* sending and receiving data */
25: int rmax; /* maximum message length */
26: #if defined (PETSC_USE_CTABLE)
27: PetscTable colmap;
28: #else
29: int *colmap; /* local col number of off-diag col */
30: #endif
31: int *garray; /* global index of all off-processor columns */
33: /* The following variables are used for matrix-vector products */
35: Vec lvec; /* local vector */
36: VecScatter Mvctx; /* scatter context for vector */
37: PetscTruth roworiented; /* if true, row-oriented input, default true */
39: /* The following variables are for MatGetRow() */
41: int *rowindices; /* column indices for row */
42: PetscScalar *rowvalues; /* nonzero values in row */
43: PetscTruth getrowactive; /* indicates MatGetRow(), not restored */
45: } Mat_MPIAIJ;
47: EXTERN int MatSetColoring_MPIAIJ(Mat,ISColoring);
48: EXTERN int MatSetValuesAdic_MPIAIJ(Mat,void*);
49: EXTERN int MatSetValuesAdifor_MPIAIJ(Mat,int,void*);
52: #endif