5: #include <petscsf.h>
6: #include <petsc/private/matimpl.h>
8: typedef struct {
9: Mat A; /* the local matrix */
10: VecScatter cctx; /* column scatter */
11: VecScatter rctx; /* row scatter */
12: Vec x,y; /* work space for matrix vector product */
13: PetscBool pure_neumann;
14: PetscSF sf;
15: PetscInt sf_nroots,sf_nleaves;
16: PetscInt *sf_rootdata,*sf_leafdata;
17: } Mat_IS;
19: PETSC_EXTERN PetscErrorCode MatISSetMPIXAIJPreallocation_Private(Mat,Mat,PetscBool);
20: #endif