Go to the source code of this file.
|
|
using | geos::pmet_idx_t = int64_t |
| | Typedef to allow us to specify required parmetis integer type.
|
| |
|
| ArrayOfArrays< pmet_idx_t, pmet_idx_t > | geos::parmetis::meshToDual (ArrayOfArraysView< pmet_idx_t const, pmet_idx_t > const &elemToNodes, arrayView1d< pmet_idx_t const > const &elemDist, MPI_Comm comm, int const minCommonNodes) |
| | Convert a element-node mesh map into a dual (element-element) graph. More...
|
| |
| array1d< pmet_idx_t > | geos::parmetis::partition (ArrayOfArraysView< pmet_idx_t const, pmet_idx_t > const &graph, arrayView1d< pmet_idx_t const > const &vertDist, pmet_idx_t const numParts, MPI_Comm comm, int const numRefinements) |
| | Partition a mesh according to its dual graph. More...
|
| |
◆ meshToDual()
Convert a element-node mesh map into a dual (element-element) graph.
- Parameters
-
| elemToNodes | the input mesh represented by its elem-node map |
| elemDist | the parallel distribution of elements: element index offset on each rank |
| comm | the MPI communicator of processes to partition over |
| minCommonNodes | minimum number of shared nodes to create an graph edge |
- Returns
- a graph with an edge for every pair of elements that share at least
minCommonNodes nodes; target element indices are global with respect to offsets in elemDist.
- Note
- elemDist must be a comm-wide exclusive scan of elemToNodes.size(); the user may compute it once and reuse in a subsequent call to partition().
◆ partition()
Partition a mesh according to its dual graph.
- Parameters
-
| graph | the input graph (edges of locally owned nodes) |
| vertDist | the parallel distribution of vertices: vertex index offset on each rank |
| numParts | target number of partitions |
| comm | the MPI communicator of processes to partition over |
| numRefinements | number of partition refinement iterations |
- Returns
- an array of target partitions for each element in local mesh