81 using Element =
typename GridView::template Codim<0>::Entity;
97 const Dune::CpGrid&
grid()
const
139 const std::vector<int>& cellPartition()
const
141 return this->cell_part_;
151 void doLoadBalance_(
const Dune::EdgeWeightMethod edgeWeightsMethod,
152 const bool ownersFirst,
153 const Dune::PartitionMethod partitionMethod,
154 const bool serialPartitioning,
155 const bool enableDistributedWells,
156 const double imbalanceTol,
157 const GridView& gridView,
158 const Schedule& schedule,
159 EclipseState& eclState,
160 FlowGenericVanguard::ParallelWellStruct& parallelWells,
161 const int numJacobiBlocks);
163 void distributeFieldProps_(EclipseState& eclState);
166 std::vector<double> extractFaceTrans(
const GridView& gridView)
const;
168 void distributeGrid(
const Dune::EdgeWeightMethod edgeWeightsMethod,
169 const bool ownersFirst,
170 const Dune::PartitionMethod partitionMethod,
171 const bool serialPartitioning,
172 const bool enableDistributedWells,
173 const double imbalanceTol,
174 const bool loadBalancerSet,
175 const std::vector<double>& faceTrans,
176 const std::vector<Well>& wells,
177 const std::unordered_map<std::string, std::set<int>>& possibleFutureConnections,
178 EclipseState& eclState,
179 FlowGenericVanguard::ParallelWellStruct& parallelWells);
181 void distributeGrid(
const Dune::EdgeWeightMethod edgeWeightsMethod,
182 const bool ownersFirst,
183 const Dune::PartitionMethod partitionMethod,
184 const bool serialPartitioning,
185 const bool enableDistributedWells,
186 const double imbalanceTol,
187 const bool loadBalancerSet,
188 const std::vector<double>& faceTrans,
189 const std::vector<Well>& wells,
190 const std::unordered_map<std::string, std::set<int>>& possibleFutureConnections,
191 ParallelEclipseState* eclState,
192 FlowGenericVanguard::ParallelWellStruct& parallelWells);
195 virtual const std::string& zoltanParams()
const = 0;
196 virtual const std::string& metisParams()
const = 0;
202 void doCreateGrids_(EclipseState& eclState);
203 void addLgrsUpdateLeafView(
const LgrCollection& lgrCollection,
const int lgrsSize);
205 virtual void allocTrans() = 0;
206 virtual double getTransmissibility(
unsigned I,
unsigned J)
const = 0;
209 void doFilterConnections_(Schedule& schedule);
211 Scalar computeCellThickness(
const Element& element)
const;
213 std::unique_ptr<Dune::CpGrid> grid_;
214 std::unique_ptr<Dune::CpGrid> equilGrid_;
215 std::unique_ptr<CartesianIndexMapper> cartesianIndexMapper_;
216 std::unique_ptr<CartesianIndexMapper> equilCartesianIndexMapper_;
219 std::vector<int> cell_part_{};
const Dune::CpGrid & equilGrid() const
Returns a refefence to the grid which should be used by the EQUIL initialization code.
Definition GenericCpGridVanguard.cpp:560
const CartesianIndexMapper & cartesianIndexMapper() const
Returns the object which maps a global element index of the simulation grid to the corresponding elem...
Definition GenericCpGridVanguard.cpp:568
static void setExternalLoadBalancer(const std::function< std::vector< int >(const Dune::CpGrid &)> &loadBalancer)
Sets a function that returns external load balancing information when passed the grid.
Definition GenericCpGridVanguard.hpp:123
std::optional< std::function< std::vector< int >(const Dune::CpGrid &)> > externalLoadBalancer
optional functor returning external load balancing information
Definition GenericCpGridVanguard.cpp:125