Actual source code: mpisbaij.h

  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>

  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 */

 12:   Vec diag; /* used in MatSOR_MPISBAIJ() with Eisenstat */
 13:   Vec bb1, xx1;

 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;

 20: PETSC_INTERN PetscErrorCode MatSetUpMultiply_MPISBAIJ(Mat);
 21: PETSC_INTERN PetscErrorCode MatDisAssemble_MPISBAIJ(Mat);
 22: PETSC_INTERN PetscErrorCode MatIncreaseOverlap_MPISBAIJ(Mat, PetscInt, IS[], PetscInt);