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]);
void SetGlobalExtent(int imin, int imax, int jmin, int jmax, int kmin, int kmax)
Set/Get the global extent array to be partitioned.
abstract base class for most VTK objects
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetGlobalExtent(int ext[6])
Set/Get the global extent array to be partitioned.
vtkTypeBool DuplicateNodes
This method partitions a global extent to N partitions where N is a user supplied parameter...
void GetGhostedExtent(int ext[6], const int minIdx, const int maxIdx)
Givent an extent and the min/max of the dimension we are looking at, this method will produce a ghost...
a simple class to control print indentation
void SetNumberOfPartitions(const int N)
Set/Get the number of requested partitions.
std::vector< int > PartitionExtents
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
void Reset()
Resets the partitioner to the initial state, all previous partition extents are cleared.