Actual source code: partitionerimpl.h
petsc-3.15.0 2021-03-30
Report Typos and Errors

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

      4: #include <petscviewer.h>
      5: #include <petscpartitioner.h>
      6: #include <petsc/private/petscimpl.h>

      8: PETSC_EXTERN PetscBool      PetscPartitionerRegisterAllCalled;
      9: PETSC_EXTERN PetscErrorCode PetscPartitionerRegisterAll(void);

     11: typedef struct _PetscPartitionerOps *PetscPartitionerOps;
     12: struct _PetscPartitionerOps {
     13:   PetscErrorCode (*setfromoptions)(PetscOptionItems*, PetscPartitioner);
     14:   PetscErrorCode (*setup)(PetscPartitioner);
     15:   PetscErrorCode (*reset)(PetscPartitioner);
     16:   PetscErrorCode (*view)(PetscPartitioner, PetscViewer);
     17:   PetscErrorCode (*destroy)(PetscPartitioner);
     18:   PetscErrorCode (*partition)(PetscPartitioner, PetscInt, PetscInt, PetscInt[], PetscInt[], PetscSection, PetscSection, PetscSection, IS*);
     19: };

     21: struct _p_PetscPartitioner {
     22:   PETSCHEADER(struct _PetscPartitionerOps);
     23:   void        *data;            /* Implementation object */
     24:   PetscInt    height;           /* Height of points to partition into non-overlapping subsets */
     25:   PetscInt    edgeCut;          /* The number of edge cut by the partition */
     26:   PetscReal   balance;          /* The maximum partition size divided by the minimum size */
     27:   PetscViewer viewer;
     28:   PetscViewer viewerGraph;
     29:   PetscBool   viewGraph;
     30:   PetscBool   noGraph;          /* if true, the partitioner does not need the connectivity graph, only the number of local vertices */
     31:   PetscBool   usevwgt;          /* if true, the partitioner looks at the local section vertSection to weight the vertices of the graph */
     32: };

     34: #endif