4: #include ../src/mat/impls/baij/seq/baij.h
5: #include ../src/sys/ctable.h
6: #include ../src/mat/impls/sbaij/seq/sbaij.h
7: #include ../src/mat/impls/baij/mpi/mpibaij.h
9: typedef struct {
10: MPIBAIJHEADER;
11: Vec slvec0,slvec1; /* parallel vectors */
12: Vec slvec0b,slvec1a,slvec1b; /* seq vectors: local partition of slvec0 and slvec1 */
13: VecScatter sMvctx; /* scatter context for vector used for reducing communication */
15: Vec diag; /* used in MatSOR_MPISBAIJ() with Eisenstat */
16: Vec bb1,xx1;
17: /* these are used in MatSetValues() as tmp space before passing to the stasher */
18: PetscInt n_loc,*in_loc; /* nloc is length of in_loc and v_loc */
19: MatScalar *v_loc;
20: } Mat_MPISBAIJ;
22: EXTERN PetscErrorCode MatLoad_MPISBAIJ(PetscViewer, const MatType,Mat*);
23: EXTERN PetscErrorCode MatMult_MPISBAIJ_Hermitian(Mat,Vec,Vec);
24: #endif