Go to the documentation of this file.
   53 #ifndef vtk_m_worklet_contourtree_distributed_mergeblockfunctor_h 
   54 #define vtk_m_worklet_contourtree_distributed_mergeblockfunctor_h 
   61 VTKM_THIRDPARTY_PRE_INCLUDE
 
   62 #include <vtkm/thirdparty/diy/diy.h> 
   63 VTKM_THIRDPARTY_POST_INCLUDE
 
   70 namespace contourtree_distributed
 
   74 template <
typename FieldType>
 
   77   const vtkmdiy::ReduceProxy& rp,               
 
   78   const vtkmdiy::RegularMergePartners& partners 
 
   83   const auto selfid = rp.gid();
 
   95   std::vector<int> incoming;
 
   96   rp.incoming(incoming);
 
   97   for (
const int ingid : incoming)
 
  102       rp.dequeue(ingid, recvblock);
 
  125       contourTreeMeshOut.
MergeWith(contourTreeMeshIn);
 
  141       currBlockSize[0] = currBlockMaxIndex[0] - currBlockOrigin[0];
 
  142       currBlockSize[1] = currBlockMaxIndex[1] - currBlockOrigin[1];
 
  143       currBlockSize[2] = currBlockMaxIndex[2] - currBlockOrigin[2];
 
  167         vtkm::Id3 maxIdx(currBlockOrigin[0] + currBlockSize[0] - 1,
 
  168                          currBlockOrigin[1] + currBlockSize[1] - 1,
 
  169                          currBlockOrigin[2] + currBlockSize[2] - 1);
 
  170         auto meshBoundaryExecObj =
 
  179           meshBoundaryExecObj);
 
  185             currContourTree.
Arcs, contourTreeMeshOut);
 
  197             "Parallel contour tree requires at least parial boundary augmentation");
 
  213         delete newContourTreeMesh;
 
  219   for (
int cc = 0; cc < rp.out_link().size(); ++cc)
 
  221     auto target = rp.out_link().target(cc);
 
  222     if (target.gid != selfid)
 
  224       rp.enqueue(target, *block);
 
  
IdArrayType GlobalMeshIndex
Definition: ContourTreeMesh.h:200
 
Definition: ContourTreeBlockData.h:73
 
vtkm::worklet::contourtree_augmented::IdArrayType NeighborOffsets
Definition: ContourTreeBlockData.h:83
 
Groups connected points that have the same field value.
Definition: Atomic.h:19
 
vtkm::worklet::contourtree_augmented::IdArrayType GlobalMeshIndex
Definition: ContourTreeBlockData.h:81
 
Definition: augmented/ContourTree.h:106
 
void MergeWith(ContourTreeMesh< FieldType > &other, vtkm::cont::LogLevel TreeLogLevel=vtkm::cont::LogLevel::Perf, std::string timingsMessage="")
Definition: ContourTreeMesh.h:612
 
vtkm::Id MaxNeighbors
Definition: ContourTreeBlockData.h:84
 
This class is primarily intended to filters to throw in the control environment to indicate an execut...
Definition: ErrorFilterExecution.h:27
 
vtkm::Id NumVertices
Definition: ContourTreeBlockData.h:79
 
Definition: ContourTreeMesh.h:129
 
vtkm::cont::ArrayHandleIndex SortIndices
Definition: ContourTreeMesh.h:198
 
vtkm::Id MaxNeighbors
Definition: ContourTreeMesh.h:212
 
vtkm::Int32 Id
Represents an ID (index into arrays).
Definition: Types.h:191
 
IdArrayType NeighborConnectivity
Definition: ContourTreeMesh.h:207
 
IdArrayType Augmentarcs
Definition: augmented/ContourTree.h:133
 
vtkm::Id NumVertices
Definition: ContourTreeMesh.h:196
 
vtkm::worklet::contourtree_augmented::IdArrayType NeighborConnectivity
Definition: ContourTreeBlockData.h:82
 
vtkm::cont::ArrayHandle< FieldType > SortedValues
Definition: ContourTreeMesh.h:199
 
MeshBoundaryContourTreeMeshExec GetMeshBoundaryExecutionObject(vtkm::Id3 globalSize, vtkm::Id3 minIdx, vtkm::Id3 maxIdx) const
Definition: ContourTreeMesh.h:1039
 
void MergeBlockFunctor(vtkm::worklet::contourtree_distributed::ContourTreeBlockData< FieldType > *block, const vtkmdiy::ReduceProxy &rp, const vtkmdiy::RegularMergePartners &partners)
Definition: MergeBlockFunctor.h:75
 
Compute the contour tree for 2d and 3d uniform grids and arbitrary topology graphs.
Definition: worklet/ContourTreeUniformAugmented.h:89
 
vtkm::Id3 BlockSize
Definition: ContourTreeBlockData.h:88
 
unsigned int ComputeRegularStructure
Definition: ContourTreeBlockData.h:90
 
vtkm::cont::ArrayHandleIndex SortOrder
Definition: ContourTreeMesh.h:197
 
IdArrayType Arcs
Definition: augmented/ContourTree.h:115
 
vtkm::cont::ArrayHandle< FieldType > SortedValue
Definition: ContourTreeBlockData.h:80
 
void Run(const vtkm::cont::ArrayHandle< FieldType, StorageType > fieldArray, MeshType &mesh, contourtree_augmented::ContourTree &contourTree, contourtree_augmented::IdArrayType &sortOrder, vtkm::Id &nIterations, unsigned int computeRegularStructure, const MeshBoundaryMeshExecType &meshBoundary)
Definition: worklet/ContourTreeUniformAugmented.h:127
 
vtkm::Id3 BlockOrigin
Definition: ContourTreeBlockData.h:87
 
IdArrayType NeighborOffsets
Definition: ContourTreeMesh.h:210
 
vtkm::Id3 GlobalSize
Definition: ContourTreeBlockData.h:89
 
An implicit array handle containing the its own indices.
Definition: ArrayHandleIndex.h:54
 
IdArrayType Augmentnodes
Definition: augmented/ContourTree.h:132