23 #ifndef vtkExtentRCBPartitioner_h
24 #define vtkExtentRCBPartitioner_h
26 #include "vtkCommonExecutionModelModule.h"
45 assert(
"pre: Number of partitions requested must be > 0" && (N >= 0));
47 this->NumberOfPartitions = N;
60 this->GlobalExtent[0] = imin;
61 this->GlobalExtent[1] = imax;
62 this->GlobalExtent[2] = jmin;
63 this->GlobalExtent[3] = jmax;
64 this->GlobalExtent[4] = kmin;
65 this->GlobalExtent[5] = kmax;
69 this->SetGlobalExtent(ext[0], ext[1], ext[2], ext[3], ext[4], ext[5]);
86 vtkSetMacro(NumberOfGhostLayers,
int);
87 vtkGetMacro(NumberOfGhostLayers,
int);
94 vtkGetMacro(NumExtents,
int);
105 void GetPartitionExtent(
const int idx,
int ext[6]);
118 this->PartitionExtents.clear();
119 this->NumExtents = 0;
120 this->ExtentIsPartitioned =
false;
129 void ExtendGhostLayers(
int ext[6]);
139 ext[minIdx] -= this->NumberOfGhostLayers;
140 ext[maxIdx] += this->NumberOfGhostLayers;
142 (ext[minIdx] < this->GlobalExtent[minIdx]) ? this->GlobalExtent[minIdx] : ext[minIdx];
144 (ext[maxIdx] > this->GlobalExtent[maxIdx]) ? this->GlobalExtent[maxIdx] : ext[maxIdx];
151 void AcquireDataDescription();
156 void GetExtent(
const int idx,
int ext[6]);
161 void AddExtent(
int ext[6]);
167 void ReplaceExtent(
const int idx,
int ext[6]);
172 void SplitExtent(
int parent[6],
int s1[6],
int s2[6],
int splitDimension);
178 int GetNumberOfTotalExtents();
183 int GetNumberOfNodes(
int ext[6]);
188 int GetNumberOfCells(
int ext[6]);
193 int GetLongestDimensionLength(
int ext[6]);
198 int GetLongestDimension(
int ext[6]);