Actual source code: mpidense.h

 2:  #include ../src/mat/impls/dense/seq/dense.h

  4:   /*  Data stuctures for basic parallel dense matrix  */

  6: typedef struct {
  7:   PetscInt      nvec;                   /* this is the n size for the vector one multiplies with */
  8:   Mat           A;                      /* local submatrix */
  9:   PetscMPIInt   size;                   /* size of communicator */
 10:   PetscMPIInt   rank;                   /* rank of proc in communicator */
 11:   /* The following variables are used for matrix assembly */
 12:   PetscTruth    donotstash;             /* Flag indicationg if values should be stashed */
 13:   MPI_Request   *send_waits;            /* array of send requests */
 14:   MPI_Request   *recv_waits;            /* array of receive requests */
 15:   PetscInt      nsends,nrecvs;         /* numbers of sends and receives */
 16:   PetscScalar   *svalues,*rvalues;     /* sending and receiving data */
 17:   PetscInt      rmax;                   /* maximum message length */

 19:   /* The following variables are used for matrix-vector products */

 21:   Vec           lvec;                   /* local vector */
 22:   VecScatter    Mvctx;                  /* scatter context for vector */

 24:   PetscTruth    roworiented;            /* if true, row oriented input (default) */
 25: } Mat_MPIDense;

 27: EXTERN PetscErrorCode MatLoad_MPIDense(PetscViewer, const MatType,Mat*);
 28: EXTERN PetscErrorCode MatSetUpMultiply_MPIDense(Mat);
 29: EXTERN PetscErrorCode MatGetSubMatrices_MPIDense(Mat,PetscInt,const IS[],const IS[],MatReuse,Mat *[]);
 30: EXTERN PetscErrorCode MatEqual_MPIDense(Mat,Mat,PetscTruth*);
 31: EXTERN PetscErrorCode MatMatMultSymbolic_MPIDense_MPIDense(Mat,Mat,PetscReal,Mat*);
 32: EXTERN PetscErrorCode MatMatMult_MPIAIJ_MPIDense(Mat,Mat,MatReuse,PetscReal,Mat*);
 33: EXTERN PetscErrorCode MatMatMultSymbolic_MPIAIJ_MPIDense(Mat,Mat,PetscReal,Mat*);
 34: EXTERN PetscErrorCode MatMatMultNumeric_MPIAIJ_MPIDense(Mat,Mat,Mat);

 36: #if defined(PETSC_HAVE_PLAPACK)
 38: #include "PLA.h"

 41: typedef struct {
 42:   PLA_Obj        A,pivots;
 43:   PLA_Template   templ;
 44:   MPI_Datatype   datatype;
 45:   PetscInt       nb,rstart;
 46:   VecScatter     ctx;
 47:   IS             is_pla,is_petsc;
 48:   PetscTruth     pla_solved;
 49:   MatStructure   mstruct;
 50: } Mat_Plapack;
 51: #endif