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] );
138 int ext[6],
const int minIdx,
const int maxIdx )
140 ext[minIdx]-=this->NumberOfGhostLayers;
141 ext[maxIdx]+=this->NumberOfGhostLayers;
142 ext[minIdx] = (ext[minIdx] < this->GlobalExtent[minIdx])?
143 this->GlobalExtent[minIdx] : ext[minIdx];
144 ext[maxIdx] = (ext[maxIdx] > this->GlobalExtent[maxIdx])?
145 this->GlobalExtent[maxIdx] : ext[maxIdx];
152 void AcquireDataDescription();
157 void GetExtent(
const int idx,
int ext[6] );
162 void AddExtent(
int ext[6]);
168 void ReplaceExtent(
const int idx,
int ext[6]);
173 void SplitExtent(
int parent[6],
int s1[6],
int s2[6],
int splitDimension);
179 int GetNumberOfTotalExtents();
184 int GetNumberOfNodes(
int ext[6] );
189 int GetNumberOfCells(
int ext[6] );
194 int GetLongestDimensionLength(
int ext[6] );
199 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.