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