Actual source code: matcliqueimpl.h
petsc-3.7.1 2016-05-15
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