xref: /petsc/src/mat/impls/sbaij/mpi/mpisbaij.h (revision 4d179fb46f278960ac3f14025f9cb6eb7a8aa015)
1*a4963045SJacob Faibussowitsch #pragma once
2c6db04a5SJed Brown #include <../src/mat/impls/baij/seq/baij.h>
3c6db04a5SJed Brown #include <../src/mat/impls/sbaij/seq/sbaij.h>
4c6db04a5SJed Brown #include <../src/mat/impls/baij/mpi/mpibaij.h>
5a30f8f8cSSatish Balay 
6a30f8f8cSSatish Balay typedef struct {
71d18e487SKris Buschelman   MPIBAIJHEADER;
8633e10c7SHong Zhang   Vec        slvec0, slvec1;            /* parallel vectors */
940781036SHong Zhang   Vec        slvec0b, slvec1a, slvec1b; /* seq vectors: local partition of slvec0 and slvec1 */
1040781036SHong Zhang   VecScatter sMvctx;                    /* scatter context for vector used for reducing communication */
1159ffdab8SBarry Smith 
1241f059aeSBarry Smith   Vec diag; /* used in MatSOR_MPISBAIJ() with Eisenstat */
13fa22f6d0SBarry Smith   Vec bb1, xx1;
1426fbe8dcSKarl Rupp 
1559ffdab8SBarry Smith   /* these are used in MatSetValues() as tmp space before passing to the stasher */
1659ffdab8SBarry Smith   PetscInt   n_loc, *in_loc; /* nloc is length of in_loc and v_loc */
1759ffdab8SBarry Smith   MatScalar *v_loc;
18a30f8f8cSSatish Balay } Mat_MPISBAIJ;
19a30f8f8cSSatish Balay 
20d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatSetUpMultiply_MPISBAIJ(Mat);
21d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatDisAssemble_MPISBAIJ(Mat);
22d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatIncreaseOverlap_MPISBAIJ(Mat, PetscInt, IS[], PetscInt);
23