18#include <ttkAlgorithmModule.h>
21#include <vtkAlgorithm.h>
24class vtkInformationIntegerKey;
37 bool UseAllCores{
true};
50 : this->ThreadNumber);
59 this->ThreadNumber = threadNumber;
60 this->UpdateThreadNumber();
67 this->UseAllCores = useAllCores;
68 this->UpdateThreadNumber();
84 this->CompactTriangulationCacheSize = cacheSize;
98 vtkDataArray *GetOptionalArray(
const bool &enforceArrayIndex,
99 const int &arrayIndex,
100 const std::string &arrayName,
101 vtkDataSet *
const inputData,
102 const int &inputPort = 0);
108 static std::string GetOrderArrayName(vtkDataArray *
const array);
121 vtkDataArray *GetOrderArray(vtkDataSet *
const inputData,
122 const int scalarArrayIdx,
124 const bool getGlobalOrder =
false,
125 const int orderArrayIdx = 0,
126 const bool enforceOrderArrayIdx =
false);
133 checkForGlobalAndComputeOrderArray(vtkDataSet *
const inputData,
134 vtkDataArray *scalarArray,
135 const int scalarArrayIdx,
136 const bool getGlobalOrder,
137 vtkDataArray *orderArray,
139 const bool enforceOrderArrayIdx);
148 vtkDataArray *ComputeOrderArray(vtkDataSet *
const inputData,
149 vtkDataArray *scalarArray,
150 const int scalarArrayIdx,
151 const bool getGlobalOrder,
152 vtkDataArray *oldOrderArray,
166 GetIdentifierArrayPtr(
const bool &enforceArrayIndex,
167 const int &arrayIndex,
168 const std::string &arrayName,
169 vtkDataSet *
const inputData,
170 std::vector<ttk::SimplexId> &spareStorage,
171 const int inputPort = 0,
172 const bool printErr =
true);
212 int ProcessRequest(vtkInformation *request,
213 vtkInformationVector **inputVectors,
214 vtkInformationVector *outputVector)
override;
219 vtkDataSet *GetOutput();
220 vtkDataSet *GetOutput(
int);
227 void SetInputData(vtkDataSet *);
228 void SetInputData(
int, vtkDataSet *);
235 void AddInputData(vtkDataSet *);
236 void AddInputData(
int, vtkDataSet *);
249 template <
typename inputType>
253 if(ttk::isRunningWithMPI()) {
268 float CompactTriangulationCacheSize{0.2f};
279 int updateMPICommunicator(vtkDataSet *input);
295 std::vector<int> &neighbors,
296 std::map<int, int> &neighToId,
309 unsigned char *ghost,
319 std::unordered_map<ttk::SimplexId, ttk::SimplexId> &vertGtoL,
320 std::vector<int> &neighborRanks,
321 std::map<int, int> &neighborsToId);
339 virtual int RequestDataObject(vtkInformation *request,
340 vtkInformationVector **inputVectors,
341 vtkInformationVector *outputVector);
355 vtkInformationVector **
ttkNotUsed(inputVectors),
356 vtkInformationVector *
ttkNotUsed(outputVector)) {
368 vtkInformationVector **
ttkNotUsed(inputVectors),
369 vtkInformationVector *
ttkNotUsed(outputVector)) {
381 vtkInformationVector **
ttkNotUsed(inputVectors),
382 vtkInformationVector *
ttkNotUsed(outputVector)) {
396 vtkInformationVector **
ttkNotUsed(inputVectors),
397 vtkInformationVector *
ttkNotUsed(outputVector)) {
410 vtkInformationVector **
ttkNotUsed(inputVectors),
411 vtkInformationVector *
ttkNotUsed(outputVector)) {
424 vtkInformationVector **
ttkNotUsed(inputVectors),
425 vtkInformationVector *
ttkNotUsed(outputVector)) {
#define ttkNotUsed(x)
Mark function/method parameters that are not used in the function body at all.
Baseclass of all VTK filters that wrap ttk modules.
void SetCompactTriangulationCacheSize(float cacheSize)
static vtkInformationIntegerKey * SAME_DATA_TYPE_AS_INPUT_PORT()
int checkEmptyMPIInput(inputType *input)
This method tests whether the input is a nullptr. If the computation is being done on multiple proces...
bool checkGlobalIdValidity(ttk::LongSimplexId *globalIds, ttk::SimplexId simplexNumber, unsigned char *ghost, int *rankArray)
virtual int RequestUpdateTime(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
virtual int RequestDataNotGenerated(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
virtual int RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
void MPIGhostPipelinePreconditioning(vtkDataSet *input)
void SetThreadNumber(int threadNumber)
virtual int RequestInformation(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
int GenerateGlobalIds(vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId)
virtual int RequestUpdateTimeDependentInformation(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
void SetDebugLevel(int debugLevel)
void SetUseAllCores(bool useAllCores)
virtual int RequestUpdateExtent(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
void MPITriangulationPreconditioning(ttk::Triangulation *triangulation, vtkDataSet *input)
int FillInputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
void UpdateThreadNumber()
static ttkAlgorithm * New()
void MPIPipelinePreconditioning(vtkDataSet *input, std::vector< int > &neighbors, std::map< int, int > &neighToId, ttk::Triangulation *triangulation=nullptr)
int FillOutputPortInformation(int ttkNotUsed(port), vtkInformation *ttkNotUsed(info)) override
virtual int setThreadNumber(const int threadNumber)
Minimalist debugging class.
virtual int setDebugLevel(const int &debugLevel)
static int getNumberOfCores()
Triangulation is a class that provides time and memory efficient traversal methods on triangulations ...
long long int LongSimplexId
Identifier type for simplices of any dimension.
int SimplexId
Identifier type for simplices of any dimension.