22#ifndef vtkDIYAggregateDataSetFilter_h
23#define vtkDIYAggregateDataSetFilter_h
26#include "vtkFiltersParallelDIY2Module.h"
67 bool DoExtentsOverlap(
int extent1[6],
int extent2[6],
int dimensions[3],
int* overlappingExtent);
84 std::map<int, std::string>& serializedDataSets, std::vector<std::string>& receivedDataSets);
89 int MoveData(
int inputExtent[6],
int wholeExtent[6],
int outputExtent[6],
90 std::map<int, std::string>& serializedDataSets, std::vector<std::string>& receivedDataSets);
97 int inputExent[6],
int wholeExtent[6],
int outputExtent[6],
vtkIdList* processesIReceiveFrom);
114 bool OutputInitialized;
Aggregates data sets to a reduced number of processes.
Aggregates data sets to a reduced number of processes.
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
This is called within ProcessRequest when a request asks the algorithm to do its work.
bool DoExtentsOverlap(int extent1[6], int extent2[6], int dimensions[3], int *overlappingExtent)
Given two extents and dimensions (marking whether or not we have cells in that dimension with a value...
void ExtractRectilinearGridCoordinates(int *sourceExtent, int *targetExtent, vtkDataArray *sourceCoordinates, vtkDataArray *targetCoordinates)
Put appropriate values from sourceCoordinates into targetCoordinates based on the extents overlap.
int GetTargetProcessId(int sourceProcessId, int numberOfProcesses)
Given a source process id and number of processes, return a target process id for the aggregate opera...
~vtkDIYAggregateDataSetFilter() override
void GetExtent(vtkDataSet *dataSet, int extent[6])
Get the extent of the topologically regular dataset.
int MoveData(int inputExtent[6], int wholeExtent[6], int outputExtent[6], std::map< int, std::string > &serializedDataSets, std::vector< std::string > &receivedDataSets)
Move data directly with vtkMPIController.
void ExtractDataSetInformation(vtkDataSet *source, vtkDataSet *target)
Extract information from source dataset into target dataset.
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called within ProcessRequest when a request asks for Information.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkDIYAggregateDataSetFilter()
int MoveDataWithDIY(int inputExtent[6], int wholeExtent[6], int outputExtent[6], std::map< int, std::string > &serializedDataSets, std::vector< std::string > &receivedDataSets)
Move data with DIY.
static vtkDIYAggregateDataSetFilter * New()
void ComputeProcessesIReceiveFrom(int inputExent[6], int wholeExtent[6], int outputExtent[6], vtkIdList *processesIReceiveFrom)
Determine which processes I receive data and put those process ranks (in order) into processesIReceiv...
abstract superclass for arrays of numeric data
general representation of visualization data
abstract class to specify dataset behavior
list of point or cell ids
a simple class to control print indentation
boost::graph_traits< vtkGraph * >::vertex_descriptor source(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)