Actual source code: matcliqueimpl.h
petsc-3.7.3 2016-08-01
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