mirror of
https://gitlab.kitware.com/vtk/vtk-m
synced 2024-09-19 18:45:43 +00:00
Fix bug in HierarchicalHyperSweeper call to TransferWeightsUpdateLHEWorklet
This commit is contained in:
parent
7c784c3651
commit
bfffff9b20
@ -328,7 +328,6 @@ void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::InitializeI
|
|||||||
template <typename SweepValueType, typename ContourTreeFieldType>
|
template <typename SweepValueType, typename ContourTreeFieldType>
|
||||||
void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::LocalHyperSweep()
|
void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::LocalHyperSweep()
|
||||||
{ // LocalHyperSweep()
|
{ // LocalHyperSweep()
|
||||||
// TODO: Implement this function
|
|
||||||
#ifdef DEBUG_PRINT
|
#ifdef DEBUG_PRINT
|
||||||
VTKM_LOG_S(vtkm::cont::LogLevel::Info,
|
VTKM_LOG_S(vtkm::cont::LogLevel::Info,
|
||||||
DebugPrint(std::string("Hypersweep Block ") + std::to_string(BlockId) +
|
DebugPrint(std::string("Hypersweep Block ") + std::to_string(BlockId) +
|
||||||
@ -628,6 +627,7 @@ void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::TransferWei
|
|||||||
valuePrefixSumView, // input view of valuePrefixSum[firstSupernode, lastSupernode)
|
valuePrefixSumView, // input view of valuePrefixSum[firstSupernode, lastSupernode)
|
||||||
this->DependentValues);
|
this->DependentValues);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
VTKM_ASSERT(firstSupernode + 1 + numSupernodesToProcess - 1 <=
|
VTKM_ASSERT(firstSupernode + 1 + numSupernodesToProcess - 1 <=
|
||||||
this->SortedTransferTarget.GetNumberOfValues());
|
this->SortedTransferTarget.GetNumberOfValues());
|
||||||
@ -636,13 +636,14 @@ void HierarchicalHyperSweeper<SweepValueType, ContourTreeFieldType>::TransferWei
|
|||||||
VTKM_ASSERT(firstSupernode + 1 + numSupernodesToProcess - 1 <=
|
VTKM_ASSERT(firstSupernode + 1 + numSupernodesToProcess - 1 <=
|
||||||
this->SortedTransferTarget.GetNumberOfValues());
|
this->SortedTransferTarget.GetNumberOfValues());
|
||||||
auto sortedTransferTargetShiftedView = vtkm::cont::make_ArrayHandleView(
|
auto sortedTransferTargetShiftedView = vtkm::cont::make_ArrayHandleView(
|
||||||
this->SortedTransferTarget, firstSupernode + 1, numSupernodesToProcess - 1);
|
this->SortedTransferTarget, firstSupernode, numSupernodesToProcess - 1);
|
||||||
auto valuePrefixSumPreviousValueView = vtkm::cont::make_ArrayHandleView(
|
auto valuePrefixSumPreviousValueView = vtkm::cont::make_ArrayHandleView(
|
||||||
this->ValuePrefixSum, firstSupernode, numSupernodesToProcess - 1);
|
this->ValuePrefixSum, firstSupernode, numSupernodesToProcess - 1);
|
||||||
|
|
||||||
// 7b. Now find the LHE of each group and subtract out the prior weight
|
// 7b. Now find the LHE of each group and subtract out the prior weight
|
||||||
this->Invoke(vtkm::worklet::contourtree_distributed::hierarchical_hyper_sweeper::
|
vtkm::worklet::contourtree_distributed::hierarchical_hyper_sweeper::
|
||||||
TransferWeightsUpdateLHEWorklet{},
|
TransferWeightsUpdateLHEWorklet transferWeightsUpdateLHEWorklet;
|
||||||
|
this->Invoke(transferWeightsUpdateLHEWorklet,
|
||||||
sortedTransferTargetView,
|
sortedTransferTargetView,
|
||||||
sortedTransferTargetShiftedView,
|
sortedTransferTargetShiftedView,
|
||||||
valuePrefixSumPreviousValueView,
|
valuePrefixSumPreviousValueView,
|
||||||
|
10
vtkm/worklet/contourtree_distributed/hierarchical_hyper_sweeper/TransferWeightsUpdateLHEWorklet.h
10
vtkm/worklet/contourtree_distributed/hierarchical_hyper_sweeper/TransferWeightsUpdateLHEWorklet.h
@ -77,21 +77,23 @@ public:
|
|||||||
|
|
||||||
template <typename InOutPortalType>
|
template <typename InOutPortalType>
|
||||||
VTKM_EXEC void operator()(const vtkm::Id& sortedTransferTargetValue,
|
VTKM_EXEC void operator()(const vtkm::Id& sortedTransferTargetValue,
|
||||||
const vtkm::Id& sortedTransferTargetPreviusValue,
|
const vtkm::Id& sortedTransferTargetPreviousValue,
|
||||||
const vtkm::Id& valuePrefixSumPreviousValue,
|
const vtkm::Id& valuePrefixSumPreviousValue,
|
||||||
InOutPortalType& dependentValuesPortal) const
|
InOutPortalType& dependentValuesPortal) const
|
||||||
{
|
{
|
||||||
// per supernode
|
// per supernode
|
||||||
// ignore any that point at NO_SUCH_ELEMENT
|
// ignore any that point at NO_SUCH_ELEMENT
|
||||||
if (!vtkm::worklet::contourtree_augmented::NoSuchElement(sortedTransferTargetValue))
|
if (vtkm::worklet::contourtree_augmented::NoSuchElement(sortedTransferTargetValue))
|
||||||
{
|
{
|
||||||
if (sortedTransferTargetValue != sortedTransferTargetPreviusValue)
|
return;
|
||||||
|
}
|
||||||
|
if (sortedTransferTargetValue != sortedTransferTargetPreviousValue)
|
||||||
{
|
{
|
||||||
auto originalValue = dependentValuesPortal.Get(sortedTransferTargetValue);
|
auto originalValue = dependentValuesPortal.Get(sortedTransferTargetValue);
|
||||||
dependentValuesPortal.Set(sortedTransferTargetValue,
|
dependentValuesPortal.Set(sortedTransferTargetValue,
|
||||||
originalValue - valuePrefixSumPreviousValue);
|
originalValue - valuePrefixSumPreviousValue);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// In serial this worklet implements the following operation
|
// In serial this worklet implements the following operation
|
||||||
/*
|
/*
|
||||||
|
Loading…
Reference in New Issue
Block a user