336 std::map<processor_id_type, std::vector<std::vector<unsigned int>>> data;
337 std::map<processor_id_type, std::vector<std::vector<unsigned int>>> received_data;
341 auto compose_replies =
344 const std::vector<std::vector<unsigned int>> &
query,
345 std::vector<std::vector<unsigned int>> & response)
347 const std::size_t query_size =
query.size();
348 response.resize(query_size);
349 for (
unsigned int i=0; i != query_size; ++i)
351 const std::size_t query_i_size =
query[i].size();
352 response[i].resize(query_i_size);
353 for (
unsigned int j=0; j != query_i_size; ++j)
359 auto collect_replies =
362 const std::vector<std::vector<unsigned int>> &
query,
363 const std::vector<std::vector<unsigned int>> & response)
365 const std::size_t query_size =
query.size();
366 CPPUNIT_ASSERT_EQUAL(query_size, response.size());
367 for (
unsigned int i=0; i != query_size; ++i)
369 const std::size_t query_i_size =
query[i].size();
370 CPPUNIT_ASSERT_EQUAL(query_i_size, response[i].size());
371 for (
unsigned int j=0; j != query_i_size; ++j)
372 CPPUNIT_ASSERT_EQUAL(
query[i][j]*
query[i][j], response[i][j]);
374 auto & vec = received_data[pid];
375 vec.emplace_back(response[0].begin(), response[0].end());
376 CPPUNIT_ASSERT_EQUAL(response[1].size(), std::size_t(1));
377 CPPUNIT_ASSERT_EQUAL(response[1][0], response[0][0]);
378 vec.emplace_back(response[1].begin(), response[1].end());
382 std::vector<unsigned int> * ex =
nullptr;
383 Parallel::pull_parallel_vector_data
384 (*
TestCommWorld, data, compose_replies, collect_replies, ex);
387 for (
int p=0; p != M; ++p)
389 CPPUNIT_ASSERT_EQUAL(data[p].size(), received_data[p].size());
392 CPPUNIT_ASSERT_EQUAL(data[p][i][j]*data[p][i][j], received_data[p][i][j]);
libMesh::Parallel::Communicator * TestCommWorld
void fill_vector_data(std::map< processor_id_type, std::vector< std::vector< unsigned int >>> &data, int M)
uint8_t processor_id_type
auto index_range(const T &sizable)
Helper function that returns an IntRange<std::size_t> representing all the indices of the passed-in v...