Worklet used to implement the main part of HierarchicalAugmenter::CreateSuperarcs Connect superarcs for the level & set hyperparents & superchildren count, whichRound, whichIteration, super2hypernode.
More...
#include <CreateSuperarcsWorklet.h>
|
using | ControlSignature = void(WholeArrayIn supernodeSorter, WholeArrayIn superparentSet, WholeArrayIn baseTreeSuperarcs, WholeArrayIn newSupernodeIds, WholeArrayIn baseTreeSupernodes, WholeArrayIn baseTreeRegularNodeGlobalIds, FieldIn globalRegularIdSet, WholeArrayIn baseTreeSuper2Hypernode, WholeArrayIn baseTreeWhichIteration, FieldOut augmentedTreeSuperarcsView, WholeArrayInOut augmentedTreeFirstSupernodePerIteration, FieldOut augmentedTreeSuper2hypernode) |
| Control signature for the worklet. More...
|
|
using | ExecutionSignature = void(InputIndex, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) |
|
using | InputDomain = _1 |
|
template<typename Worklet > |
using | Dispatcher = vtkm::worklet::DispatcherMapField< Worklet > |
|
|
VTKM_EXEC_CONT | CreateSuperarcsWorklet (const vtkm::Id &numSupernodesAlready, const vtkm::Id &baseTreeNumRounds, const vtkm::Id &augmentedTreeNumIterations, const vtkm::Id &roundNumber, const vtkm::Id &numAugmentedTreeSupernodes) |
| Default Constructor. More...
|
|
template<typename InFieldPortalType , typename InOutFieldPortalType > |
VTKM_EXEC void | operator() (const vtkm::Id &supernode, const InFieldPortalType &supernodeSorterPortal, const InFieldPortalType &superparentSetPortal, const InFieldPortalType &baseTreeSuperarcsPortal, const InFieldPortalType &newSupernodeIdsPortal, const InFieldPortalType &baseTreeSupernodesPortal, const InFieldPortalType &baseTreeRegularNodeGlobalIdsPortal, const vtkm::Id &globalRegularIdSetValue, const InFieldPortalType &baseTreeSuper2HypernodePortal, const InFieldPortalType &baseTreeWhichIterationPortal, vtkm::Id &augmentedTreeSuperarcsValue, const InOutFieldPortalType &augmentedTreeFirstSupernodePerIterationPortal, vtkm::Id &augmentedTreeSuper2hypernodeValue) const |
| operator() of the workelt More...
|
|
Worklet used to implement the main part of HierarchicalAugmenter::CreateSuperarcs Connect superarcs for the level & set hyperparents & superchildren count, whichRound, whichIteration, super2hypernode.
◆ ControlSignature
using vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::ControlSignature = void( WholeArrayIn supernodeSorter, WholeArrayIn superparentSet, WholeArrayIn baseTreeSuperarcs, WholeArrayIn newSupernodeIds, WholeArrayIn baseTreeSupernodes, WholeArrayIn baseTreeRegularNodeGlobalIds, FieldIn globalRegularIdSet, WholeArrayIn baseTreeSuper2Hypernode, WholeArrayIn baseTreeWhichIteration, FieldOut augmentedTreeSuperarcsView, WholeArrayInOut augmentedTreeFirstSupernodePerIteration, FieldOut augmentedTreeSuper2hypernode ) |
Control signature for the worklet.
- Parameters
-
[in] | supernodeSorter | input domain. We need access to InputIndex and InputIndex+1, therefore this is a WholeArrayIn transfer. |
[in] | superparentSet | WholeArrayIn because we need access to superparentSet[supernodeSorter[InputIndex]] and superparentSet[supernodeSorter[InputIndex+1]]. |
[in] | baseTreeSuperarcs | WholeArrayIn because we need access to baseTreeSuperarcsPortal.Get(superparentOldSuperId) While this could be done with fancy array magic, it would require a sequence of multiple fancy arrays and would likely not be cheaper then computing things in the worklet. |
[in] | newSupernodeIds | WholeArrayIn because we need to access newSupernodeIdsPortal.Get(oldTargetSuperId) where oldTargetSuperId is the unmasked baseTreeSuperarcsPortal.Get(superparentOldSuperId) |
[in] | baseTreeSupernodes | WholeArrayIn because we need to access baseTreeSupernodesPortal.Get(superparentOldSuperId); |
[in] | baseTreeRegularNodeGlobalIds | WholeArrayIn because we need to access baseTreeRegularNodeGlobalIdsPortal.Get(superparentOldSuperId); |
[in] | globalRegularIdSet | FieldInd. Permute globalRegularIdSet with supernodeSorter in order to allow this to be a FieldIn. |
[in] | baseTreeSuper2Hypernode | WholeArrayIn because we need to access baseTreeSuper2HypernodePortal.Get(superparentOldSuperId) |
[in] | baseTreeWhichIteration | WholeArrayIn because we need to access baseTreeWhichIterationPortal.Get(superparentOldSuperId) and baseTreeWhichIterationPortal.Get(superparentOldSuperId+1) |
[in] | augmentedTreeSuperarcsView | output view of this->AugmentedTree->Superarcs with vtkm::cont::make_ArrayHandleView(this->AugmentedTree->Superarcs, numSupernodesAlready, this->SupernodeSorter.GetNumberOfValues()). By using this view allows us to do this one as a FieldOut and it effectively the same as accessing the array at the newSuppernodeId location. |
[in] | augmentedTreeFirstSupernodePerIteration | WholeArrayInOut because we need to update multiple locations. In is used to preseve original values. Set to augmentedTree->firstSupernodePerIteration[roundNumber]. |
[in] | augmentedTreeSuper2hypernode | FieldOut. Output view of this->AugmentedTree->Super2Hypernode vtkm::cont::make_ArrayHandleView(this->AugmentedTree->Super2Hypernode, numSupernodesAlready, this->SupernodeSorter.GetNumberOfValues()). By using this view allows us to do this one as a FieldOut and it effectively the same as accessing the array at the newSuppernodeId location. |
◆ ExecutionSignature
using vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::ExecutionSignature = void(InputIndex, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) |
◆ InputDomain
◆ CreateSuperarcsWorklet()
VTKM_EXEC_CONT vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::CreateSuperarcsWorklet |
( |
const vtkm::Id & |
numSupernodesAlready, |
|
|
const vtkm::Id & |
baseTreeNumRounds, |
|
|
const vtkm::Id & |
augmentedTreeNumIterations, |
|
|
const vtkm::Id & |
roundNumber, |
|
|
const vtkm::Id & |
numAugmentedTreeSupernodes |
|
) |
| |
|
inline |
Default Constructor.
- Parameters
-
[in] | numSupernodesAlready | Set to vtkm::cont::ArrayGetValue(0, this->AugmentedTree->FirstSupernodePerIteration[roundNumber]); |
[in] | baseTreeNumRounds | Set to this->BaseTree->NumRounds |
[in] | augmentedTreeNumIterations | Set to vtkm::cont::ArrayGetValue(roundNumber, this->AugmentedTree->NumIterations); |
[in] | roundNumber | Set the current round |
[in] | numAugmentedTreeSupernodes | Set to augmentedTreeSupernodes this->AugmentedTree->Supernodes.GetNumberOfValues(); |
◆ operator()()
template<typename InFieldPortalType , typename InOutFieldPortalType >
VTKM_EXEC void vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::operator() |
( |
const vtkm::Id & |
supernode, |
|
|
const InFieldPortalType & |
supernodeSorterPortal, |
|
|
const InFieldPortalType & |
superparentSetPortal, |
|
|
const InFieldPortalType & |
baseTreeSuperarcsPortal, |
|
|
const InFieldPortalType & |
newSupernodeIdsPortal, |
|
|
const InFieldPortalType & |
baseTreeSupernodesPortal, |
|
|
const InFieldPortalType & |
baseTreeRegularNodeGlobalIdsPortal, |
|
|
const vtkm::Id & |
globalRegularIdSetValue, |
|
|
const InFieldPortalType & |
baseTreeSuper2HypernodePortal, |
|
|
const InFieldPortalType & |
baseTreeWhichIterationPortal, |
|
|
vtkm::Id & |
augmentedTreeSuperarcsValue, |
|
|
const InOutFieldPortalType & |
augmentedTreeFirstSupernodePerIterationPortal, |
|
|
vtkm::Id & |
augmentedTreeSuper2hypernodeValue |
|
) |
| const |
|
inline |
operator() of the workelt
◆ AugmentedTreeNumIterations
const vtkm::Id vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::AugmentedTreeNumIterations |
|
private |
◆ BaseTreeNumRounds
const vtkm::Id vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::BaseTreeNumRounds |
|
private |
◆ NumAugmentedTreeSupernodes
const vtkm::Id vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::NumAugmentedTreeSupernodes |
|
private |
◆ NumSupernodesAlready
const vtkm::Id vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::NumSupernodesAlready |
|
private |
◆ RoundNumber
const vtkm::Id vtkm::worklet::contourtree_distributed::hierarchical_augmenter::CreateSuperarcsWorklet::RoundNumber |
|
private |
The documentation for this class was generated from the following file: