1 2 #if !defined(__MPISBAIJ_H) 3 #define __MPISBAIJ_H 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> 8 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 */ 14 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; 21 22 extern PetscErrorCode MatLoad_MPISBAIJ(Mat,PetscViewer); 23 extern PetscErrorCode MatMult_MPISBAIJ_Hermitian(Mat,Vec,Vec); 24 #endif 25