38 #ifndef OPM_GRIDPARTITIONING_HEADER 39 #define OPM_GRIDPARTITIONING_HEADER 46 #include <dune/common/parallel/mpihelper.hh> 48 #include <opm/grid/utility/OpmWellType.hpp> 49 #include <opm/grid/common/WellConnections.hpp> 50 #include <opm/grid/common/ZoltanGraphFunctions.hpp> 59 bool operator()(
const std::pair<int,int>& o,
const std::pair<int,int>& v)
61 return o.first < v.first;
76 const std::array<int, 3>& initial_split,
78 std::vector<int>& cell_part,
79 bool recursive =
false,
80 bool ensureConnectivity =
true);
92 void addOverlapLayer(
const CpGrid& grid,
93 const std::vector<int>& cell_part,
94 std::vector<std::set<int> >& cell_overlap,
114 int addOverlapLayer(
const CpGrid& grid,
115 const std::vector<int>& cell_part,
116 std::vector<std::tuple<int,int,char>>& exportList,
117 std::vector<std::tuple<int,int,char,int>>& importList,
118 const Communication<Dune::MPIHelper::MPICommunicator>& cc,
121 bool useTransToFilterOverlap =
true,
128 std::tuple<std::vector<int>, std::vector<std::pair<std::string,bool>>,
153 std::vector<std::tuple<int,int,char> >,
154 std::vector<std::tuple<int,int,char,int> >,
156 createListsFromParts(
const CpGrid& grid,
157 const std::vector<cpgrid::OpmWellType> * wells,
158 const std::unordered_map<std::string, std::set<int>>& possibleFutureConnections,
159 const double* transmissibilities,
160 const std::vector<int>& parts,
161 bool allowDistributedWells,
162 std::shared_ptr<cpgrid::CombinedGridWellGraph> gridAndWells =
nullptr,
185 std::tuple<std::vector<int>, std::vector<std::pair<std::string,bool>>,
186 std::vector<std::tuple<int,int,char> >,
187 std::vector<std::tuple<int,int,char,int> >,
189 vanillaPartitionGridOnRoot(
const CpGrid& grid,
190 const std::vector<cpgrid::OpmWellType> * wells,
191 const std::unordered_map<std::string, std::set<int>>& possibleFutureConnections,
192 const double* transmissibilities,
193 bool allowDistributedWells);
199 #endif // OPM_GRIDPARTITIONING_HEADER Definition: GridPartitioning.hpp:57
The namespace Dune is the main namespace for all Dune code.
Definition: CartesianIndexMapper.hpp:9
[ provides Dune::Grid ]
Definition: CpGrid.hpp:201
void partition(const CpGrid &grid, const coord_t &initial_split, int &num_part, std::vector< int > &cell_part, bool recursive, bool ensureConnectivity)
Partition a CpGrid based on (ijk) coordinates, with splitting to ensure that each partition is connec...
Definition: GridPartitioning.cpp:198