VTK-m
2.0
|
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... | |
Facture class for augmenting the hierarchical contour tree to enable computations of measures, e.g., volumne.
|
inline |
empty constructor
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::BuildAugmentedTree |
routine to reconstruct a hierarchical tree using the augmenting supernodes
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopyBaseRegularStructure |
copy the remaining base level regular nodes
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopyHyperstructure |
transfer of hyperstructure but not superchildren count
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CopySuperstructure |
transfer level of superstructure with insertions
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::CreateSuperarcs | ( | vtkm::Id | roundNumber | ) |
adds a round full of superarcs (and regular nodes) to the tree
std::string vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DebugPrint | ( | std::string | message, |
const char * | fileName, | ||
long | lineNum | ||
) |
debug routine
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DebugSave | ( | std::string | filename | ) |
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)
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::PrepareAugmentedTree |
initial preparation
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::PrepareOutAttachmentPoints | ( | vtkm::Id | round | ) |
routine to prepare the set of attachment points to transfer
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::ReleaseSwapArrays |
routine to release memory used for swap arrays
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::ResizeArrays | ( | vtkm::Id | roundNumber | ) |
resizes the arrays for the level
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::RetrieveInAttachmentPoints |
routine to retrieve partner's current list of attachment points
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
void vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::UpdateHyperstructure |
reset the super Ids in the hyperstructure to the new values
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::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
vtkm::worklet::contourtree_distributed::HierarchicalContourTree<FieldType>* vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::AugmentedTree |
the tree that it is building
vtkm::worklet::contourtree_distributed::HierarchicalContourTree<FieldType>* vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::BaseTree |
the tree that it hypersweeps over
vtkm::Id vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::BlockId |
the ID of the base block (used for debug output)
vtkm::cont::ArrayHandle<FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DataValues |
the data value
vtkm::cont::ArrayHandle<FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::DataValueSet |
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::FirstAttachmentPointInRound |
tracks segments of attachment points by round
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::GlobalRegularIds |
arrays storing the details for the attachment points & old supernodes the Id in the global data set
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::GlobalRegularIdSet |
vtkm::worklet::contourtree_distributed::hierarchical_augmenter::HierarchicalAugmenterInOutData< FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::InData |
Output arrays used in DIY exchange.
|
private |
Used internally to Invoke worklets.
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::KeptSupernodes |
tracks which supernodes are kept in a given round
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::NewSupernodeIds |
maps from old supernode Id to new supernode Id
vtkm::worklet::contourtree_distributed::hierarchical_augmenter::HierarchicalAugmenterInOutData< FieldType> vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< 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
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::RegularNodesNeeded |
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::RegularSuperparents |
data for transferring regular nodes
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::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
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::SupernodeIdSet |
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::SupernodeSorter |
sorting array & arrays for data details
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::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.
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::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
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::SuperparentSet |
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalAugmenter< FieldType >::WhichRounds |
we also want to track the round on which the attachment point was originally transferred