21 #ifndef DUNE_CPGRID_ZOLTAN_GRAPH_FUNCTIONS_HEADER
22 #define DUNE_CPGRID_ZOLTAN_GRAPH_FUNCTIONS_HEADER
24 #include <opm/grid/utility/OpmParserIncludes.hpp>
26 #include <dune/grid/CpGrid.hpp>
27 #include <dune/grid/common/WellConnections.hpp>
29 #if defined(HAVE_ZOLTAN) && defined(HAVE_MPI)
48 inline int getCpGridNumCells(
void* cpGridPointer,
int* err)
56 void getCpGridVertexList(
void* cpGridPointer,
int numGlobalIds,
57 int numLocalIds, ZOLTAN_ID_PTR gids,
58 ZOLTAN_ID_PTR lids,
int wgtDim,
59 float *objWgts,
int *err);
62 void getCpGridNumEdgesList(
void *cpGridPointer,
int sizeGID,
int sizeLID,
64 ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
65 int *numEdges,
int *err);
68 void getCpGridEdgeList(
void *cpGridPointer,
int sizeGID,
int sizeLID,
69 int numCells, ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
71 ZOLTAN_ID_PTR nborGID,
int *nborProc,
72 int wgt_dim,
float *ewgts,
int *err);
75 void getNullVertexList(
void* cpGridPointer,
int numGlobalIds,
76 int numLocalIds, ZOLTAN_ID_PTR gids,
77 ZOLTAN_ID_PTR lids,
int wgtDim,
78 float *objWgts,
int *err);
81 void getNullNumEdgesList(
void *cpGridPointer,
int sizeGID,
int sizeLID,
83 ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
84 int *numEdges,
int *err);
87 void getNullEdgeList(
void *cpGridPointer,
int sizeGID,
int sizeLID,
88 int numCells, ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
90 ZOLTAN_ID_PTR nborGID,
int *nborProc,
91 int wgt_dim,
float *ewgts,
int *err);
96 inline int getNullNumCells(
void* cpGridPointer,
int* err)
104 void getCpGridWellsNumEdgesList(
void *cpGridWellsPointer,
int sizeGID,
int sizeLID,
106 ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
107 int *numEdges,
int *err);
110 void getCpGridWellsEdgeList(
void *cpGridWellsPointer,
int sizeGID,
int sizeLID,
111 int numCells, ZOLTAN_ID_PTR globalID, ZOLTAN_ID_PTR localID,
113 ZOLTAN_ID_PTR nborGID,
int *nborProc,
114 int wgt_dim,
float *ewgts,
int *err);
123 class CombinedGridWellGraph
126 typedef std::vector<std::set<int> > GraphType;
133 const Opm::EclipseState*,
134 const double* transmissibilities,
135 bool pretendEmptyGrid);
143 const GraphType& getWellsGraph()
const
148 double transmissibility(
int face_index)
const
150 return transmissibilities_ ? (1.0e18*transmissibilities_[face_index]) : 1;
153 const WellConnections& getWellConnections()
const
155 return well_indices_;
159 void addCompletionSetToGraph()
161 for(
const auto& well_indices: well_indices_)
163 for(
auto well_idx = well_indices.begin(); well_idx != well_indices.end();
166 auto well_idx2 = well_idx;
167 for( ++well_idx2; well_idx2 != well_indices.end();
170 wellsGraph_[*well_idx].insert(*well_idx2);
171 wellsGraph_[*well_idx2].insert(*well_idx);
179 GraphType wellsGraph_;
180 const double* transmissibilities_;
181 WellConnections well_indices_;
189 void setCpGridZoltanGraphFunctions(Zoltan_Struct *zz,
const Dune::CpGrid& grid,
190 bool pretendNull=
false);
192 void setCpGridZoltanGraphFunctions(Zoltan_Struct *zz,
193 const CombinedGridWellGraph& graph,
198 #endif // HAVE_ZOLTAN
199 #endif // header guard
int numCells() const
Get the number of cells.
Definition: CpGrid.hpp:720
[ provides Dune::Grid ]
Definition: CpGrid.hpp:213