VTK-m  2.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType > Class Template Reference

Facture class for augmenting the hierarchical contour tree to enable computations of measures, e.g., volumne. More...

#include <HierarchicalAugmenter.h>

Public Member Functions

 HierarchicalAugmenter ()
 empty constructor More...
 
void Initialize (vtkm::Id blockId, vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > *inBaseTree, vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > *inAugmentedTree)
 initializer (called explicitly after constructor) More...
 
void PrepareOutAttachmentPoints (vtkm::Id round)
 routine to prepare the set of attachment points to transfer More...
 
void RetrieveInAttachmentPoints ()
 routine to retrieve partner's current list of attachment points More...
 
void ReleaseSwapArrays ()
 routine to release memory used for swap arrays More...
 
void BuildAugmentedTree ()
 routine to reconstruct a hierarchical tree using the augmenting supernodes More...
 
void PrepareAugmentedTree ()
 initial preparation More...
 
void CopyHyperstructure ()
 transfer of hyperstructure but not superchildren count More...
 
void CopySuperstructure ()
 transfer level of superstructure with insertions More...
 
void UpdateHyperstructure ()
 reset the super Ids in the hyperstructure to the new values More...
 
void CopyBaseRegularStructure ()
 copy the remaining base level regular nodes More...
 
void RetrieveOldSupernodes (vtkm::Id roundNumber)
 gets a list of all the old supernodes to transfer at this level (ie except attachment points More...
 
void ResizeArrays (vtkm::Id roundNumber)
 resizes the arrays for the level More...
 
void CreateSuperarcs (vtkm::Id roundNumber)
 adds a round full of superarcs (and regular nodes) to the tree More...
 
std::string DebugPrint (std::string message, const char *fileName, long lineNum)
 debug routine More...
 
void DebugSave (std::string filename)
 

Public Attributes

vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > * BaseTree
 the tree that it hypersweeps over More...
 
vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > * AugmentedTree
 the tree that it is building More...
 
vtkm::Id BlockId
 the ID of the base block (used for debug output) More...
 
vtkm::worklet::contourtree_augmented::IdArrayType GlobalRegularIds
 arrays storing the details for the attachment points & old supernodes the Id in the global data set More...
 
vtkm::cont::ArrayHandle< FieldType > DataValues
 the data value More...
 
vtkm::worklet::contourtree_augmented::IdArrayType SupernodeIds
 the supernode index when we swap attachment points, we will set this to NO_SUCH_ELEMENT because the supernodes added are on a different block, so their original supernodeId becomes invalid More...
 
vtkm::worklet::contourtree_augmented::IdArrayType Superparents
 the superarc will ALWAYS be -1 for a true attachment point, so we don't store it instead, the superparent stores the Id for the arc it inserts into WARNING: in order for sorting to work, we will need to carry forward the ascending / descending flag This flag is normally stored on the superarc, but will be stored in this class on the superparent More...
 
vtkm::worklet::contourtree_augmented::IdArrayType SuperparentRounds
 we want to track the round on which the superparent is transferred (we could look it up, but it's more convenient to have it here). More...
 
vtkm::worklet::contourtree_augmented::IdArrayType WhichRounds
 we also want to track the round on which the attachment point was originally transferred More...
 
vtkm::worklet::contourtree_distributed::hierarchical_augmenter::HierarchicalAugmenterInOutData< FieldType > OutData
 if we're not careful, we'll have read-write conflicts when swapping with the partner there are other solutions, but the simpler solution is to have a transfer buffer for the set we want to send - which means another set of parallel arrays Output arrays used in DIY exchange More...
 
vtkm::worklet::contourtree_distributed::hierarchical_augmenter::HierarchicalAugmenterInOutData< FieldType > InData
 Output arrays used in DIY exchange. More...
 
vtkm::worklet::contourtree_augmented::IdArrayType AttachmentIds
 these are essentially temporary local variables, but are placed here to make the DebugPrint() more comprehensive. More...
 
vtkm::worklet::contourtree_augmented::IdArrayType FirstAttachmentPointInRound
 tracks segments of attachment points by round More...
 
vtkm::worklet::contourtree_augmented::IdArrayType NewSupernodeIds
 maps from old supernode Id to new supernode Id More...
 
vtkm::worklet::contourtree_augmented::IdArrayType KeptSupernodes
 tracks which supernodes are kept in a given round More...
 
vtkm::worklet::contourtree_augmented::IdArrayType SupernodeSorter
 sorting array & arrays for data details More...
 
vtkm::worklet::contourtree_augmented::IdArrayType GlobalRegularIdSet
 
vtkm::cont::ArrayHandle< FieldType > DataValueSet
 
vtkm::worklet::contourtree_augmented::IdArrayType SuperparentSet
 
vtkm::worklet::contourtree_augmented::IdArrayType SupernodeIdSet
 
vtkm::worklet::contourtree_augmented::IdArrayType RegularSuperparents
 data for transferring regular nodes More...
 
vtkm::worklet::contourtree_augmented::IdArrayType RegularNodesNeeded
 

Private Attributes

vtkm::cont::Invoker Invoke
 Used internally to Invoke worklets. More...
 

Detailed Description

template<typename FieldType>
class vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >

Facture class for augmenting the hierarchical contour tree to enable computations of measures, e.g., volumne.

Constructor & Destructor Documentation

◆ HierarchicalAugmenter()

template<typename FieldType >
vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::HierarchicalAugmenter ( )
inline

empty constructor

Member Function Documentation

◆ BuildAugmentedTree()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::BuildAugmentedTree

routine to reconstruct a hierarchical tree using the augmenting supernodes

◆ CopyBaseRegularStructure()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopyBaseRegularStructure

copy the remaining base level regular nodes

◆ CopyHyperstructure()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopyHyperstructure

transfer of hyperstructure but not superchildren count

◆ CopySuperstructure()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopySuperstructure

transfer level of superstructure with insertions

◆ CreateSuperarcs()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CreateSuperarcs ( vtkm::Id  roundNumber)

adds a round full of superarcs (and regular nodes) to the tree

◆ DebugPrint()

template<typename FieldType >
std::string vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DebugPrint ( std::string  message,
const char *  fileName,
long  lineNum 
)

debug routine

◆ DebugSave()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DebugSave ( std::string  filename)

◆ Initialize()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::Initialize ( vtkm::Id  blockId,
vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > *  inBaseTree,
vtkm::worklet::contourtree_distributed::HierarchicalContourTree< FieldType > *  inAugmentedTree 
)

initializer (called explicitly after constructor)

◆ PrepareAugmentedTree()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::PrepareAugmentedTree

initial preparation

◆ PrepareOutAttachmentPoints()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::PrepareOutAttachmentPoints ( vtkm::Id  round)

routine to prepare the set of attachment points to transfer

◆ ReleaseSwapArrays()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::ReleaseSwapArrays

routine to release memory used for swap arrays

◆ ResizeArrays()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::ResizeArrays ( vtkm::Id  roundNumber)

resizes the arrays for the level

◆ RetrieveInAttachmentPoints()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::RetrieveInAttachmentPoints

routine to retrieve partner's current list of attachment points

◆ RetrieveOldSupernodes()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::RetrieveOldSupernodes ( vtkm::Id  roundNumber)

gets a list of all the old supernodes to transfer at this level (ie except attachment points

◆ UpdateHyperstructure()

template<typename FieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::UpdateHyperstructure

reset the super Ids in the hyperstructure to the new values

Member Data Documentation

◆ AttachmentIds

these are essentially temporary local variables, but are placed here to make the DebugPrint() more comprehensive.

They will be allocated where used this one makes a list of attachment Ids and is used in sevral different places, so resize it when done

◆ AugmentedTree

the tree that it is building

◆ BaseTree

the tree that it hypersweeps over

◆ BlockId

template<typename FieldType >
vtkm::Id vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::BlockId

the ID of the base block (used for debug output)

◆ DataValues

template<typename FieldType >
vtkm::cont::ArrayHandle<FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DataValues

the data value

◆ DataValueSet

template<typename FieldType >
vtkm::cont::ArrayHandle<FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DataValueSet

◆ FirstAttachmentPointInRound

template<typename FieldType >
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::FirstAttachmentPointInRound

tracks segments of attachment points by round

◆ GlobalRegularIds

arrays storing the details for the attachment points & old supernodes the Id in the global data set

◆ GlobalRegularIdSet

◆ InData

Output arrays used in DIY exchange.

◆ Invoke

template<typename FieldType >
vtkm::cont::Invoker vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::Invoke
private

Used internally to Invoke worklets.

◆ KeptSupernodes

tracks which supernodes are kept in a given round

◆ NewSupernodeIds

maps from old supernode Id to new supernode Id

◆ OutData

if we're not careful, we'll have read-write conflicts when swapping with the partner there are other solutions, but the simpler solution is to have a transfer buffer for the set we want to send - which means another set of parallel arrays Output arrays used in DIY exchange

◆ RegularNodesNeeded

◆ RegularSuperparents

data for transferring regular nodes

◆ SupernodeIds

the supernode index when we swap attachment points, we will set this to NO_SUCH_ELEMENT because the supernodes added are on a different block, so their original supernodeId becomes invalid

◆ SupernodeIdSet

◆ SupernodeSorter

sorting array & arrays for data details

◆ SuperparentRounds

we want to track the round on which the superparent is transferred (we could look it up, but it's more convenient to have it here).

Also, we don't need the iteration.

◆ Superparents

the superarc will ALWAYS be -1 for a true attachment point, so we don't store it instead, the superparent stores the Id for the arc it inserts into WARNING: in order for sorting to work, we will need to carry forward the ascending / descending flag This flag is normally stored on the superarc, but will be stored in this class on the superparent

◆ SuperparentSet

◆ WhichRounds

we also want to track the round on which the attachment point was originally transferred


The documentation for this class was generated from the following file: