18#include <ttkAlgorithmModule.h>
21#include <vtkAlgorithm.h>
24class vtkInformationIntegerKey;
37 bool UseAllCores{
true};
50 : this->ThreadNumber);
59 this->ThreadNumber = threadNumber;
67 this->UseAllCores = useAllCores;
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);
213 vtkInformationVector **inputVectors,
214 vtkInformationVector *outputVector)
override;
249 template <
typename inputType>
253 if(ttk::isRunningWithMPI()) {
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);
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.
void SetCompactTriangulationCacheSize(float cacheSize)
void SetInputData(vtkDataSet *)
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)
void AddInputData(vtkDataSet *)
virtual int RequestUpdateTime(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
virtual int RequestDataNotGenerated(vtkInformation *ttkNotUsed(request), vtkInformationVector **ttkNotUsed(inputVectors), vtkInformationVector *ttkNotUsed(outputVector))
float CompactTriangulationCacheSize
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 ProcessRequest(vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector) override
int GenerateGlobalIds(vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks, std::map< int, int > &neighborsToId)
virtual int RequestDataObject(vtkInformation *request, vtkInformationVector **inputVectors, vtkInformationVector *outputVector)
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 ...
TTK base package defining the standard types.
int SimplexId
Identifier type for simplices of any dimension.
long long int LongSimplexId
Identifier type for simplices of any dimension.