36 typedef IReverseIndexer::Index Index;
56 void computeCommPlan(Arccore::Span<Int32>);
59 void exchange(ConstArrayView<T> snd, ArrayView<T> rcv)
61 Alien::RedistributionTools::exchange(
62 m_pm_super, snd, m_snd_offset.constView(), rcv, m_rcv_offset.constView());
65 Int32 rcvSize()
const {
return m_rcv_offset[m_rcv_offset.size() - 1]; }
67 Index getCoordinates(Int32 offset)
const
69 if ((offset < 0) || (m_rcv_rows.size() <= offset))
70 throw FatalErrorException(
"Invalid offset in DoKDistributorComm");
71 return { m_rcv_rows[offset], m_rcv_cols[offset] };
76 IMessagePassingMng* m_pm_super;
77 IMessagePassingMng* m_pm_dst;
80 UniqueArray<Int32> m_snd_offset;
81 UniqueArray<Int32> m_rcv_offset;
82 UniqueArray<Int32> m_rcv_rows;
83 UniqueArray<Int32> m_rcv_cols;