:orphan: # DMPlexRebalanceSharedPoints Redistribute points in the plex that are shared in order to achieve better balancing. This routine updates the `PointSF` of the `DM` inplace. ## Synopsis ``` #include "petscdmplex.h" PetscErrorCode DMPlexRebalanceSharedPoints(DM dm, PetscInt entityDepth, PetscBool useInitialGuess, PetscBool parallel, PetscBool *success) ``` ## Input parameters - ***dm -*** The `DMPLEX` object. - ***entityDepth -*** depth of the entity to balance (0 -> balance vertices). - ***useInitialGuess -*** whether to use the current distribution as initial guess (only used by ParMETIS). - ***parallel -*** whether to use ParMETIS and do the partition in parallel or whether to gather the graph onto a single process and use METIS. ## Output parameter - ***success -*** whether the graph partitioning was successful or not, optional. Unsuccessful simply means no change to the partitioning ## Options Database Keys - ***-dm_plex_rebalance_shared_points_parmetis -*** Use ParMetis instead of Metis for the partitioner - ***-dm_plex_rebalance_shared_points_use_initial_guess -*** Use current partition to bootstrap ParMetis partition - ***-dm_plex_rebalance_shared_points_use_mat_partitioning -*** Use the MatPartitioning object to perform the partition, the prefix for those operations is -dm_plex_rebalance_shared_points_ - ***-dm_plex_rebalance_shared_points_monitor -*** Monitor the shared points rebalance process ## See Also [](ch_unstructured), `DM`, `DMPLEX`, `DMPlexDistribute()`, `DMPlexCreateOverlap()` ## Level intermediate ## Location src/dm/impls/plex/plexpartition.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/impls/plex/plexpartition.c) [Index of all DMPlex routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)