5: #include <petscsf.h>
6: #include <petsc/private/matimpl.h>
8: typedef struct {
9: Mat A; /* the local Neumann matrix */
10: VecScatter ctx; /* update ghost points for matrix vector product */
11: Vec x,y; /* work space for ghost values for matrix vector product */
12: ISLocalToGlobalMapping mapping;
13: int rstart,rend; /* local row ownership */
14: PetscBool pure_neumann;
15: PetscSF sf;
16: PetscInt sf_nroots,sf_nleaves;
17: PetscInt *sf_rootdata,*sf_leafdata;
18: } Mat_IS;
20: PETSC_EXTERN PetscErrorCode MatISSetMPIXAIJPreallocation_Private(Mat,Mat,PetscBool);
21: #endif