mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Switch default load balancer to Zoltan with vertex = all cells of a well
The new loadbalancer approach will create a graph representing the grid where all cells that a well perforates are represented by one vertex. The weight of that cell will be the number of cells it represents. Also the weights of the faces will be added up due to the merging of cells. A cell that is not perforated by any well is still represented by one vertex with weight one. In the old default appoach the number of vertices in the grid was equal to the number of cells. Vertex weights were not used. For each well we added an edge between all its perforated cells for which we did set a very edge weight to force the cells to the same process during partitioning. For realistic cases we have seen improvements across the board due to this. E.g. this resolved convergence issues on hard cases. Because of that this becomes the default with this.
This commit is contained in:
parent
fb6b0cc050
commit
c9b34a2f68
@ -425,7 +425,7 @@ void FlowGenericVanguard::registerParameters_()
|
||||
("Order cells owned by rank before ghost/overlap cells.");
|
||||
#if HAVE_MPI
|
||||
Parameters::Register<Parameters::PartitionMethod>
|
||||
("Choose partitioning strategy: 0=simple, 1=Zoltan, 2=METIS.");
|
||||
("Choose partitioning strategy: 0=simple, 1=Zoltan, 2=METIS, 3=Zoltan with all cells of well represented by one vertex.");
|
||||
Parameters::Register<Parameters::SerialPartitioning>
|
||||
("Perform partitioning for parallel runs on a single process.");
|
||||
Parameters::Register<Parameters::ZoltanImbalanceTol<Scalar>>
|
||||
|
@ -71,8 +71,9 @@ struct OwnerCellsFirst { static constexpr bool value = true; };
|
||||
struct ParsingStrictness { static constexpr auto value = "normal"; };
|
||||
struct ActionParsingStrictness { static constexpr auto value = "normal"; };
|
||||
|
||||
// 0: simple, 1: Zoltan, 2: METIS, see GridEnums.hpp
|
||||
struct PartitionMethod { static constexpr int value = 1; };
|
||||
/// 0: simple, 1: Zoltan, 2: METIS, 3: Zoltan with a all cells of a well
|
||||
/// represented by one vertex in the graph, see GridEnums.hpp
|
||||
struct PartitionMethod { static constexpr int value = 3; };
|
||||
|
||||
struct SchedRestart{ static constexpr bool value = false; };
|
||||
struct SerialPartitioning{ static constexpr bool value = false; };
|
||||
|
Loading…
Reference in New Issue
Block a user