VTK-m  2.0
Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType > Class Template Reference

#include <HierarchicalHyperSweeper.h>

Public Member Functions

 HierarchicalHyperSweeper (vtkm::Id blockId, const HierarchicalContourTree< ContourTreeFieldType > &hierarchicalTree, const vtkm::cont::ArrayHandle< SweepValueType > &intrinsicValues, const vtkm::cont::ArrayHandle< SweepValueType > &dependentValues)
 Constructor. More...
 
template<typename MeshType >
void InitializeIntrinsicVertexCount (const HierarchicalContourTree< ContourTreeFieldType > &hierarchicalTree, const MeshType &baseBlock, const vtkm::worklet::contourtree_augmented::mesh_dem::IdRelabeler &localToGlobalIdRelabeler, vtkm::worklet::contourtree_augmented::IdArrayType &superarcRegularCounts)
 Our routines to initialize the sweep need to be static (or externa)l if we are going to use the constructor to run the actual hypersweep. More...
 
void LocalHyperSweep ()
 routine to do the local hypersweep using addition / subtraction The funtion use the ComputeSuperarcDependentWeights, ComputeSuperarcTransferWeights, and TransferWeights functions to carry out the local hyper sweep More...
 
std::string DebugPrint (std::string message, const char *fileName, long lineNum) const
 Debug routine to print contents of the HiearchicalHyperSweep. More...
 
void SaveHierarchicalContourTreeDot (std::string message, const char *outFileName) const
 Routine to save the HierarchicalContourTree of this HierarchicalHyperSweeper to a Dot file. More...
 

Public Attributes

const HierarchicalContourTree< ContourTreeFieldType > & HierarchicalTree
 
vtkm::Id BlockId
 
const vtkm::cont::ArrayHandle< SweepValueType > & IntrinsicValues
 
const vtkm::cont::ArrayHandle< SweepValueType > & DependentValues
 
vtkm::Id NumOwnedRegularVertices
 
vtkm::cont::ArrayHandle< SweepValueType > ValuePrefixSum
 
vtkm::worklet::contourtree_augmented::IdArrayType TransferTarget
 
vtkm::worklet::contourtree_augmented::IdArrayType SortedTransferTarget
 
vtkm::worklet::contourtree_augmented::IdArrayType SuperSortPermute
 

Protected Member Functions

void ComputeSuperarcDependentWeights (vtkm::Id round, vtkm::Id iteration, vtkm::Id firstSupernode, vtkm::Id lastSupernode)
 Routine to compute the correct weights dependent on each superarc in a subrange (defined by the round & iteration) More...
 
void ComputeSuperarcTransferWeights (vtkm::Id round, vtkm::Id iteration, vtkm::Id firstSupernode, vtkm::Id lastSupernode)
 routine to compute the weights to transfer to superarcs (defined by the round & iteration) More...
 
void TransferWeights (vtkm::Id round, vtkm::Id iteration, vtkm::Id firstSupernode, vtkm::Id lastSupernode)
 routine to transfer the weights More...
 

Private Attributes

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

Constructor & Destructor Documentation

◆ HierarchicalHyperSweeper()

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::HierarchicalHyperSweeper ( vtkm::Id  blockId,
const HierarchicalContourTree< ContourTreeFieldType > &  hierarchicalTree,
const vtkm::cont::ArrayHandle< SweepValueType > &  intrinsicValues,
const vtkm::cont::ArrayHandle< SweepValueType > &  dependentValues 
)

Constructor.

Parameters
[in]blockIdThe Id of the base block (used for debug output)
[in]hierarchicalTreethe tree that to hypersweeps over
[in]baseBlockthe underlying mesh base block type
[in]intrinsicValuesarray of values of intrinisic nodes are just being stored here but not modified
[in]dependentValuesarray of values being operated over (same size as supernode set)

Member Function Documentation

◆ ComputeSuperarcDependentWeights()

template<typename SweepValueType , typename ContourTreeFieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::ComputeSuperarcDependentWeights ( vtkm::Id  round,
vtkm::Id  iteration,
vtkm::Id  firstSupernode,
vtkm::Id  lastSupernode 
)
protected

Routine to compute the correct weights dependent on each superarc in a subrange (defined by the round & iteration)

◆ ComputeSuperarcTransferWeights()

template<typename SweepValueType , typename ContourTreeFieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::ComputeSuperarcTransferWeights ( vtkm::Id  round,
vtkm::Id  iteration,
vtkm::Id  firstSupernode,
vtkm::Id  lastSupernode 
)
protected

routine to compute the weights to transfer to superarcs (defined by the round & iteration)

◆ DebugPrint()

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

Debug routine to print contents of the HiearchicalHyperSweep.

Parameters
[in]messageMessage to print along the debug output
[in]fileNameName of the file the message is printed from. Usually set to FILE
[in]lineNumLine number in the file where the message is printed from. Usually set to LINE

◆ InitializeIntrinsicVertexCount()

template<typename SweepValueType , typename ContourTreeFieldType >
template<typename MeshType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::InitializeIntrinsicVertexCount ( const HierarchicalContourTree< ContourTreeFieldType > &  hierarchicalTree,
const MeshType &  baseBlock,
const vtkm::worklet::contourtree_augmented::mesh_dem::IdRelabeler localToGlobalIdRelabeler,
vtkm::worklet::contourtree_augmented::IdArrayType superarcRegularCounts 
)

Our routines to initialize the sweep need to be static (or externa)l if we are going to use the constructor to run the actual hypersweep.

Parameters
[in]hierarchicalTreethe tree that to hypersweeps over
[in]baseBlockthe underlying mesh base block to initialize from
[in]localToGlobalIdRelabelerId relabeler used to compute global indices from local mesh indices
[out]superarcRegularCountsarrray for the output superarc regular counts

◆ LocalHyperSweep()

template<typename SweepValueType , typename ContourTreeFieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::LocalHyperSweep

routine to do the local hypersweep using addition / subtraction The funtion use the ComputeSuperarcDependentWeights, ComputeSuperarcTransferWeights, and TransferWeights functions to carry out the local hyper sweep

◆ SaveHierarchicalContourTreeDot()

template<typename SweepValueType , typename ContourTreeFieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::SaveHierarchicalContourTreeDot ( std::string  message,
const char *  outFileName 
) const

Routine to save the HierarchicalContourTree of this HierarchicalHyperSweeper to a Dot file.

Parameters
[in]messageMessage included in the file
[in]outFileNameThe name of the file to write the

◆ TransferWeights()

template<typename SweepValueType , typename ContourTreeFieldType >
void vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::TransferWeights ( vtkm::Id  round,
vtkm::Id  iteration,
vtkm::Id  firstSupernode,
vtkm::Id  lastSupernode 
)
protected

routine to transfer the weights

Member Data Documentation

◆ BlockId

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::Id vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::BlockId

◆ DependentValues

template<typename SweepValueType , typename ContourTreeFieldType >
const vtkm::cont::ArrayHandle<SweepValueType>& vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::DependentValues

◆ HierarchicalTree

template<typename SweepValueType , typename ContourTreeFieldType >
const HierarchicalContourTree<ContourTreeFieldType>& vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::HierarchicalTree

◆ IntrinsicValues

template<typename SweepValueType , typename ContourTreeFieldType >
const vtkm::cont::ArrayHandle<SweepValueType>& vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::IntrinsicValues

◆ Invoke

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::cont::Invoker vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::Invoke
private

Used internally to Invoke worklets.

◆ NumOwnedRegularVertices

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::Id vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::NumOwnedRegularVertices

◆ SortedTransferTarget

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::SortedTransferTarget

◆ SuperSortPermute

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::SuperSortPermute

◆ TransferTarget

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::worklet::contourtree_augmented::IdArrayType vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::TransferTarget

◆ ValuePrefixSum

template<typename SweepValueType , typename ContourTreeFieldType >
vtkm::cont::ArrayHandle<SweepValueType> vtkm::worklet::contourtree_distributed::HierarchicalHyperSweeper< SweepValueType, ContourTreeFieldType >::ValuePrefixSum

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