New constructor for AssignerMultiBlock.

AssignerMultiBlock can now be created by simply passing in the number of
blocks on the local process.
This commit is contained in:
Utkarsh Ayachit 2018-04-09 15:06:27 -04:00
parent dd3709c3ec
commit b31af29a8d
2 changed files with 9 additions and 2 deletions

@ -38,12 +38,16 @@ namespace cont
VTKM_CONT
AssignerMultiBlock::AssignerMultiBlock(const vtkm::cont::MultiBlock& mb)
: AssignerMultiBlock(mb.GetNumberOfBlocks())
{
}
VTKM_CONT
AssignerMultiBlock::AssignerMultiBlock(vtkm::Id num_blocks)
: diy::Assigner(vtkm::cont::EnvironmentTracker::GetCommunicator().size(), 1)
, IScanBlockCounts()
{
auto comm = vtkm::cont::EnvironmentTracker::GetCommunicator();
const auto num_blocks = mb.GetNumberOfBlocks();
if (comm.size() > 1)
{
vtkm::Id iscan;

@ -68,6 +68,9 @@ public:
VTKM_CONT
AssignerMultiBlock(const vtkm::cont::MultiBlock& mb);
VTKM_CONT
AssignerMultiBlock(vtkm::Id num_blocks);
///@{
/// diy::Assigner API implementation.
VTKM_CONT