1a30f8f8cSSatish Balay 2a30f8f8cSSatish Balay #if !defined(__MPISBAIJ_H) 3a30f8f8cSSatish Balay #define __MPISBAIJ_H 4c6db04a5SJed Brown #include <../src/mat/impls/baij/seq/baij.h> 5c6db04a5SJed Brown #include <../src/mat/impls/sbaij/seq/sbaij.h> 6c6db04a5SJed Brown #include <../src/mat/impls/baij/mpi/mpibaij.h> 7a30f8f8cSSatish Balay 8a30f8f8cSSatish Balay typedef struct { 91d18e487SKris Buschelman MPIBAIJHEADER; 10633e10c7SHong Zhang Vec slvec0,slvec1; /* parallel vectors */ 1140781036SHong Zhang Vec slvec0b,slvec1a,slvec1b; /* seq vectors: local partition of slvec0 and slvec1 */ 1240781036SHong Zhang VecScatter sMvctx; /* scatter context for vector used for reducing communication */ 1359ffdab8SBarry Smith 1441f059aeSBarry Smith Vec diag; /* used in MatSOR_MPISBAIJ() with Eisenstat */ 15fa22f6d0SBarry Smith Vec bb1,xx1; 1626fbe8dcSKarl Rupp 1759ffdab8SBarry Smith /* these are used in MatSetValues() as tmp space before passing to the stasher */ 1859ffdab8SBarry Smith PetscInt n_loc,*in_loc; /* nloc is length of in_loc and v_loc */ 1959ffdab8SBarry Smith MatScalar *v_loc; 20a30f8f8cSSatish Balay } Mat_MPISBAIJ; 21a30f8f8cSSatish Balay 225a576424SJed Brown PETSC_INTERN PetscErrorCode MatLoad_MPISBAIJ(Mat,PetscViewer); 235a576424SJed Brown PETSC_INTERN PetscErrorCode MatMult_MPISBAIJ_Hermitian(Mat,Vec,Vec); 24*d79853d5SSatish Balay 25*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatSetUpMultiply_MPISBAIJ(Mat); 26*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatSetUpMultiply_MPISBAIJ_2comm(Mat); 27*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatDisAssemble_MPISBAIJ(Mat); 28*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatIncreaseOverlap_MPISBAIJ(Mat,PetscInt,IS[],PetscInt); 29*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatGetRowMaxAbs_MPISBAIJ(Mat,Vec,PetscInt[]); 30*d79853d5SSatish Balay PETSC_INTERN PetscErrorCode MatSOR_MPISBAIJ(Mat,Vec,PetscReal,MatSORType,PetscReal,PetscInt,PetscInt,Vec); 31*d79853d5SSatish Balay 32a30f8f8cSSatish Balay #endif 33