Partition connectivity graph into non-overlapping domains using the Zoltan graph partitioning software package.
More...
#include <ParallelNLDDPartitioningZoltan.hpp>
|
using | GlobalCellID = std::function< int(int)> |
| Callback type for mapping a vertex/cell ID to a globally unique ID.
|
|
using | ZoltanParamMap = std::map< std::string, std::string > |
| Collection of parameters to control the partitioning procedure.
|
|
Partition connectivity graph into non-overlapping domains using the Zoltan graph partitioning software package.
Primarily intended for use in NLDD-based non-linear solves.
◆ ParallelNLDDPartitioningZoltan()
Opm::ParallelNLDDPartitioningZoltan::ParallelNLDDPartitioningZoltan |
( |
const Parallel::Communication |
comm, |
|
|
const std::size_t |
numElements, |
|
|
const GlobalCellID & |
globalCell |
|
) |
| |
|
inlineexplicit |
Constructor.
- Parameters
-
[in] | comm | MPI communication object. Needed by Zoltan. |
[in] | numElements | Number of potential vertices in connectivity graph. Typically the total number of cells on the current rank, i.e., both owned cells and overlap cells. |
[in] | globalCell | Callback for mapping (local) vertex IDs to globally unique vertex IDs. |
◆ addVertexGroup()
void Opm::ParallelNLDDPartitioningZoltan::addVertexGroup |
( |
const std::vector< int > & |
vertices | ) |
|
Add a group of vertices that should be merged together.
Must be called before compress().
- Parameters
-
[in] | vertices | Vector of vertex IDs to merge |
◆ partitionElements()
std::vector< int > Opm::ParallelNLDDPartitioningZoltan::partitionElements |
( |
const ZoltanParamMap & |
params | ) |
const |
Partition connectivity graph using Zoltan graph partitioning package.
Honours any prescribed requirement that certain cells be placed in a single domain/block.
- Parameters
-
[in] | params | Parameters for Zoltan. Override default settings. |
- Returns
- Partition vector of size
numElements
. Reachable vertices/cells are partitioned into N blocks numbered 0..N-1. Unreachable vertices get a block ID of -1.
◆ registerConnection()
void Opm::ParallelNLDDPartitioningZoltan::registerConnection |
( |
std::size_t |
c1, |
|
|
std::size_t |
c2 |
|
) |
| |
|
inline |
Insert directed graph edge between two vertices.
- Parameters
-
[in] | c1 | Source vertex. |
| ]in] | c2 Sink/destination vertex. |
The documentation for this class was generated from the following files: