Date: 2022-08-02T03:13:49+00:00

Actual source code: matcliqueimpl.h

      1: #if !defined(_matcliqueimpl_h)
      2: #define _matcliqueimpl_h

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

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

     13: typedef struct {
     14:   MatStructure matstruc;
     15:   PetscBool    CleanUp;        /* Boolean indicating if we call Elue clean step */
     16:   MPI_Comm     comm;           /*  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:   El::DistSparseMatrix<PetscElemScalar>  *cmat;  /* Elue sparse matrix */
     22:   El::DistMap                            *inverseMap;
     23:   El::DistMultiVec<PetscElemScalar>      *rhs;
     24: } Mat_SparseElemental;

     26: #endif