58 int lowest_global_id,
int highest_global_id)
67 fei::LinearDecomposition<int> lindecomp(myProc,
numProcs,
68 lowest_global_id, highest_global_id);
72 fei::CommMap<int>::Type procs_to_shared_ids;
73 copy_remotelyowned_ids_into_CommMap(myProc, lindecomp, records, procs_to_shared_ids);
79 fei::CommMap<int>::Type procs_to_owned_ids;
80 fei::exchangeCommMapData<int>(comm, procs_to_shared_ids, procs_to_owned_ids);
83 fei::CommMap<int>::Type owned_ids_to_procs;
86 o_iter = procs_to_owned_ids.begin(), o_end = procs_to_owned_ids.end();
88 for(; o_iter != o_end; ++o_iter) {
89 int proc = o_iter->first;
90 std::vector<int>& ids = o_iter->second;
91 for(
size_t i=0; i<ids.size(); ++i) {
99 fei::CommMap<int>::Type procs_to_owned_ids_and_sharing_procs;
101 for(o_iter=procs_to_owned_ids.begin(); o_iter!=procs_to_owned_ids.end(); ++o_iter) {
102 int proc = o_iter->first;
103 std::vector<int>& ids = o_iter->second;
104 for(
size_t i=0; i<ids.size(); ++i) {
105 std::vector<int>& sharing_procs = owned_ids_to_procs[ids[i]];
106 int num_sharing_procs = sharing_procs.size();
107 if (num_sharing_procs > 1) {
108 addItemsToCommMap(proc, 1, &ids[i], procs_to_owned_ids_and_sharing_procs,
false);
109 addItemsToCommMap(proc, 1, &num_sharing_procs, procs_to_owned_ids_and_sharing_procs,
false);
110 addItemsToCommMap(proc, num_sharing_procs, &sharing_procs[0], procs_to_owned_ids_and_sharing_procs,
false);
115 fei::CommMap<int>::Type procs_to_shared_ids_and_sharing_procs;
116 fei::exchangeCommMapData<int>(comm, procs_to_owned_ids_and_sharing_procs,
117 procs_to_shared_ids_and_sharing_procs);
119 copy_into_shared_ids(procs_to_owned_ids_and_sharing_procs, records, sharedIDs);
120 copy_into_shared_ids(procs_to_shared_ids_and_sharing_procs, records, sharedIDs);