Actual source code: matcliqueimpl.h

petsc-3.7.3 2016-08-01
Report Typos and Errors
  1: #if !defined(_matcliqueimpl_h)
  2: #define _matcliqueimpl_h

  4: #include <clique.hpp>
  5: #include <petsc/private/matimpl.h>

  7: #if defined(PETSC_USE_COMPLEX)
  8: typedef cliq::Complex<PetscReal> PetscCliqScalar;
  9: #else
 10: typedef PetscScalar PetscCliqScalar;
 11: #endif

 13: typedef struct {
 14:   MatStructure matstruc;
 15:   PetscBool    CleanUpClique;    /* Boolean indicating if we call Clique clean step */
 16:   MPI_Comm     cliq_comm;        /* Clique MPI communicator                         */
 17:   PetscInt     cutoff;           /* maximum size of leaf node */
 18:   PetscInt     numDistSeps;      /* number of distributed separators to try */
 19:   PetscInt     numSeqSeps;       /* number of sequential separators to try */

 21:   cliq::DistSparseMatrix<PetscCliqScalar>  *cmat;  /* Clique sparse matrix */
 22:   cliq::DistMap                            *inverseMap;
 23:   cliq::DistSymmInfo                       *info;
 24:   cliq::DistSymmFrontTree<PetscCliqScalar> *frontTree;
 25:   cliq::DistMultiVec<PetscCliqScalar>        *rhs;
 26:   cliq::DistNodalMultiVec<PetscCliqScalar>   *xNodal;

 28:   PetscErrorCode (*Destroy)(Mat);
 29: } Mat_Clique;

 31: #endif