diff --git a/openfpm_vcluster b/openfpm_vcluster index a463ae1d10144099b2bdeccc6aa6b4de8f3bfcd8..3f37237e5b7f263e4096b9e3c4b54b6008843a50 160000 --- a/openfpm_vcluster +++ b/openfpm_vcluster @@ -1 +1 @@ -Subproject commit a463ae1d10144099b2bdeccc6aa6b4de8f3bfcd8 +Subproject commit 3f37237e5b7f263e4096b9e3c4b54b6008843a50 diff --git a/src/Vector/vector_dist_comm.hpp b/src/Vector/vector_dist_comm.hpp index cec466214c3e231dd30f23926082909402bf5cc7..b052bcf0e8cd64f0778b65b2db576bf4da51eb08 100644 --- a/src/Vector/vector_dist_comm.hpp +++ b/src/Vector/vector_dist_comm.hpp @@ -95,8 +95,6 @@ class vector_dist_comm openfpm::vector<size_t> recv_sz_get; //! Conversion to byte of recv_sz_get openfpm::vector<size_t> recv_sz_get_byte; - //! recv_sz_pos_get - openfpm::vector<size_t> recv_sz_pos_get; //! The same as recv_sz_get but for put @@ -905,14 +903,20 @@ public: if (opt & SKIP_LABELLING) { size_t opt_ = compute_options(opt); - v_cl.SSendRecv(g_pos_send,v_pos,prc_g_opart,prc_recv_get,recv_sz_pos_get,opt_); + v_cl.SSendRecv(g_pos_send,v_pos,prc_g_opart,prc_recv_get,recv_sz_get,opt_); } else { prc_recv_get.clear(); - recv_sz_pos_get.clear(); - v_cl.SSendRecv(g_pos_send,v_pos,prc_g_opart,prc_recv_get,recv_sz_pos_get); + recv_sz_get.clear(); + v_cl.SSendRecv(g_pos_send,v_pos,prc_g_opart,prc_recv_get,recv_sz_get); } + + // fill g_opart_sz + g_opart_sz.resize(prc_g_opart.size()); + + for (size_t i = 0 ; i < prc_g_opart.size() ; i++) + g_opart_sz.get(i) = g_pos_send.get(i).size(); } // Important to ensure that the number of particles in v_prp must be equal to v_pos