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