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