Actual source code: mpisbaij.h
petsc-3.14.6 2021-03-30
4: #include <../src/mat/impls/baij/seq/baij.h>
5: #include <../src/mat/impls/sbaij/seq/sbaij.h>
6: #include <../src/mat/impls/baij/mpi/mpibaij.h>
8: typedef struct {
9: MPIBAIJHEADER;
10: Vec slvec0,slvec1; /* parallel vectors */
11: Vec slvec0b,slvec1a,slvec1b; /* seq vectors: local partition of slvec0 and slvec1 */
12: VecScatter sMvctx; /* scatter context for vector used for reducing communication */
14: Vec diag; /* used in MatSOR_MPISBAIJ() with Eisenstat */
15: 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;
22: PETSC_INTERN PetscErrorCode MatLoad_MPISBAIJ(Mat,PetscViewer);
23: PETSC_INTERN PetscErrorCode MatMult_MPISBAIJ_Hermitian(Mat,Vec,Vec);
25: PETSC_INTERN PetscErrorCode MatSetUpMultiply_MPISBAIJ(Mat);
26: PETSC_INTERN PetscErrorCode MatDisAssemble_MPISBAIJ(Mat);
27: PETSC_INTERN PetscErrorCode MatIncreaseOverlap_MPISBAIJ(Mat,PetscInt,IS[],PetscInt);
28: PETSC_INTERN PetscErrorCode MatGetRowMaxAbs_MPISBAIJ(Mat,Vec,PetscInt[]);
29: PETSC_INTERN PetscErrorCode MatSOR_MPISBAIJ(Mat,Vec,PetscReal,MatSORType,PetscReal,PetscInt,PetscInt,Vec);
31: #endif