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