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);
118 vtkDataArray *GetOrderArray(vtkDataSet *
const inputData,
119 const int scalarArrayIdx,
120 const int orderArrayIdx = 0,
121 const bool enforceOrderArrayIdx =
false);
135 GetIdentifierArrayPtr(
const bool &enforceArrayIndex,
136 const int &arrayIndex,
137 const std::string &arrayName,
138 vtkDataSet *
const inputData,
139 std::vector<ttk::SimplexId> &spareStorage,
140 const int inputPort = 0,
141 const bool printErr =
true);
181 int ProcessRequest(vtkInformation *request,
182 vtkInformationVector **inputVectors,
183 vtkInformationVector *outputVector)
override;
188 vtkDataSet *GetOutput();
189 vtkDataSet *GetOutput(
int);
196 void SetInputData(vtkDataSet *);
197 void SetInputData(
int, vtkDataSet *);
204 void AddInputData(vtkDataSet *);
205 void AddInputData(
int, vtkDataSet *);
218 template <
typename inputType>
222 if(ttk::isRunningWithMPI()) {
237 float CompactTriangulationCacheSize{0.2f};
248 int updateMPICommunicator(vtkDataSet *input);
264 std::vector<int> &neighbors,
277 unsigned char *ghost,
287 std::unordered_map<ttk::SimplexId, ttk::SimplexId> &vertGtoL,
288 std::vector<int> &neighborRanks);
306 virtual int RequestDataObject(vtkInformation *request,
307 vtkInformationVector **inputVectors,
308 vtkInformationVector *outputVector);
322 vtkInformationVector **
ttkNotUsed(inputVectors),
323 vtkInformationVector *
ttkNotUsed(outputVector)) {
335 vtkInformationVector **
ttkNotUsed(inputVectors),
336 vtkInformationVector *
ttkNotUsed(outputVector)) {
348 vtkInformationVector **
ttkNotUsed(inputVectors),
349 vtkInformationVector *
ttkNotUsed(outputVector)) {
363 vtkInformationVector **
ttkNotUsed(inputVectors),
364 vtkInformationVector *
ttkNotUsed(outputVector)) {
377 vtkInformationVector **
ttkNotUsed(inputVectors),
378 vtkInformationVector *
ttkNotUsed(outputVector)) {
391 vtkInformationVector **
ttkNotUsed(inputVectors),
392 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))
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()
int GenerateGlobalIds(vtkDataSet *input, std::unordered_map< ttk::SimplexId, ttk::SimplexId > &vertGtoL, std::vector< int > &neighborRanks)
static ttkAlgorithm * New()
void MPIPipelinePreconditioning(vtkDataSet *input, std::vector< int > &neighbors, 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.