Actual source code: matis.h

petsc-3.8.4 2018-03-24
Report Typos and Errors


  5:  #include <petscsf.h>
  6:  #include <petsc/private/matimpl.h>

  8: typedef struct {
  9:   Mat        A;                           /* the local matrix */
 10:   VecScatter cctx;                        /* column scatter */
 11:   VecScatter rctx;                        /* row scatter */
 12:   Vec        x,y;                         /* work space for matrix vector product */
 13:   Vec        counter;                     /* counter vector */
 14:   PetscBool  pure_neumann;
 15:   PetscSF    sf,csf;                      /* SFs for rows and cols */
 16:   PetscInt   *sf_rootdata,*sf_leafdata;
 17:   PetscInt   *csf_rootdata,*csf_leafdata;
 18:   IS         getsub_ris,getsub_cis;       /* row and column ISs for MatCreateSubMatrix and MAT_REUSE_MATRIX */
 19:   PetscBool  islocalref;                  /* is a reference to a local submatrix? */
 20:   PetscBool  locempty;                    /* adapt local matrices for empty rows/cols during MatAssemblyEnd_IS */
 21:   PetscBool  usesetlocal;                 /* use MatSetValuesLocal on local matrices */
 22: } Mat_IS;

 24: struct _MatISLocalFields {
 25:   PetscInt nr,nc;
 26:   IS       *rf,*cf;
 27: };
 28: typedef struct _MatISLocalFields *MatISLocalFields;

 30: PETSC_EXTERN PetscErrorCode MatISSetMPIXAIJPreallocation_Private(Mat,Mat,PetscBool);
 31: #endif