[MOAB-dev] r4543 - MOAB/trunk/src/parallel
kraftche at cae.wisc.edu
kraftche at cae.wisc.edu
Mon Mar 7 19:05:56 CST 2011
Author: kraftche
Date: 2011-03-07 19:05:55 -0600 (Mon, 07 Mar 2011)
New Revision: 4543
Modified:
MOAB/trunk/src/parallel/ParallelComm.cpp
Log:
Eliminate logically duplicate interface sets in ParallelComm.cpp.
Modified: MOAB/trunk/src/parallel/ParallelComm.cpp
===================================================================
--- MOAB/trunk/src/parallel/ParallelComm.cpp 2011-03-06 17:15:24 UTC (rev 4542)
+++ MOAB/trunk/src/parallel/ParallelComm.cpp 2011-03-08 01:05:55 UTC (rev 4543)
@@ -3498,6 +3498,7 @@
RRA("");
std::sort(procs, procs+nprocs);
std::vector<int> tmp_procs(procs, procs + nprocs);
+ assert(tmp_procs.size() != 2);
proc_nranges[tmp_procs].insert(*rit);
}
@@ -3691,9 +3692,18 @@
if (sharing_procs.empty() ||
(sharing_procs.size() == 1 && *sharing_procs.begin() == (int)procConfig.proc_rank())) continue;
+ // Need to specify sharing data correctly for entities or they will
+ // end up in a different interface set than corresponding vertices
+ if (sharing_procs.size() == 2) {
+ std::set<int>::iterator it = sharing_procs.find( proc_config().proc_rank() );
+ assert(it != sharing_procs.end());
+ sharing_procs.erase( it );
+ }
+
// intersection is the owning proc(s) for this skin ent
sp_vec.clear();
std::copy(sharing_procs.begin(), sharing_procs.end(), std::back_inserter(sp_vec));
+ assert(sp_vec.size() != 2);
proc_nranges[sp_vec].insert(*rit);
}
}
@@ -3748,7 +3758,7 @@
sharing_procs.swap( sharing_procs2 );
sharing_handles.swap( sharing_handles2 );
-
+ assert(sharing_procs.size() != 2);
proc_nranges[sharing_procs].insert(this_ent);
unsigned char share_flag = PSTATUS_SHARED,
More information about the moab-dev
mailing list