Make Zoltan-Based Domain Partitioning MPI Aware

This commit switches the current implementation of
'partitionCellsZoltan()', i.e., 'partitionCells("zoltan", ...)' into
using the MPI-aware ParallelNLDDPartitioningZoltan utility.  In
doing so we make 'partitionCellsZoltan()' private since its
availability is not guaranteed.  We also slightly reorder the
parameters and switch from passing a "Grid" into passing a
"GridView" as an argument to partitionCells(), and specialise this
function for the known grid views in OPM Flow.

We extract the Zoltan-related parameters out to an Entity-dependent
helper structure and move the complexity of forming this type to a
new helper function, BlackoilModelEbosNldd::partitionCells().
This commit is contained in:
Bård Skaflestad
2023-09-12 16:52:37 +02:00
parent 27aaa28c71
commit ed77c90238
5 changed files with 487 additions and 104 deletions

View File

@@ -195,7 +195,7 @@ namespace {
return static_cast<int>(this->graph_.numVertices());
}
/// Retrieve globally unqique ID of reachable vertex.
/// Retrieve globally unique ID of reachable vertex.
///
/// \param[in] localCell Index of locally reachable cell/vertex.
int globalId(const int localCell) const
@@ -422,7 +422,7 @@ extern "C" {
///
/// \param[in] comm MPI communicator.
///
/// \param[in] params Control parameters for Zoltan graph partiitioning procedure.
/// \param[in] params Control parameters for Zoltan graph partitioning procedure.
explicit Partitioner(const Opm::Parallel::Communication comm,
const Opm::ParallelNLDDPartitioningZoltan::ZoltanParamMap& params);

View File

@@ -74,7 +74,7 @@ namespace Opm {
/// Force collection of cells to be in same result domain.
///
/// Mostly as a way to ensuring wells do not intersect multiple
/// Mostly as a means to ensuring wells do not intersect multiple
/// domains/blocks.
///
/// \param[in] cells Cell collection. Typically those cells which