Commit 1e13a811 authored by Sylvain Thery's avatar Sylvain Thery
Browse files

Do not traverse boundary in parallel_foreach

parent 294c2fa3
...@@ -164,7 +164,7 @@ void computeCentroidFaces(typename PFP::MAP& map, ...@@ -164,7 +164,7 @@ void computeCentroidFaces(typename PFP::MAP& map,
const FunctorSelect& select, unsigned int nbth, unsigned int current_thread) const FunctorSelect& select, unsigned int nbth, unsigned int current_thread)
{ {
FunctorComputeCentroidFaces<PFP> funct(map,position,face_centroid); FunctorComputeCentroidFaces<PFP> funct(map,position,face_centroid);
Algo::Parallel::foreach_cell<typename PFP::MAP,FACE>(map, funct, true, nbth, false, select, current_thread); Algo::Parallel::foreach_cell<typename PFP::MAP,FACE>(map, funct, nbth, false, select, current_thread);
} }
......
...@@ -205,7 +205,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign ...@@ -205,7 +205,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign
unsigned int nb = 0; unsigned int nb = 0;
while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) ) while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) )
{ {
if (good(d) && (!cmark->isMarked(d))) if (good(d) && (!map.isBoundaryMarked(d)) && (!cmark->isMarked(d)))
{ {
cmark->mark(d); cmark->mark(d);
vd[nb%nbth].push_back(d); vd[nb%nbth].push_back(d);
...@@ -221,7 +221,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign ...@@ -221,7 +221,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign
unsigned int nb = 0; unsigned int nb = 0;
while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) ) while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) )
{ {
if (good(d) && (!dmark->isMarked(d))) if (good(d) && (!map.isBoundaryMarked(d)) && (!dmark->isMarked(d)))
{ {
dmark->markOrbit<ORBIT>(d); dmark->markOrbit<ORBIT>(d);
vd[nb%nbth].push_back(d); vd[nb%nbth].push_back(d);
...@@ -285,7 +285,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign ...@@ -285,7 +285,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign
unsigned int nb = 0; unsigned int nb = 0;
while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) ) while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) )
{ {
if (good(d) && (!cmark->isMarked(d))) if (good(d) && (!map.isBoundaryMarked(d)) && (!cmark->isMarked(d)))
{ {
cmark->mark(d); cmark->mark(d);
tempo[nb%nbth].push_back(d); tempo[nb%nbth].push_back(d);
...@@ -308,7 +308,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign ...@@ -308,7 +308,7 @@ void foreach_cell(MAP& map, std::vector<FunctorMapThreaded<MAP>*>& funcs, unsign
unsigned int nb = 0; unsigned int nb = 0;
while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) ) while ((d != map.end()) && (nb < nbth*SIZE_BUFFER_THREAD) )
{ {
if (good(d) && (!dmark->isMarked(d))) if (good(d) && (!map.isBoundaryMarked(d)) && (!dmark->isMarked(d)))
{ {
dmark->markOrbit<ORBIT>(d); dmark->markOrbit<ORBIT>(d);
tempo[nb%nbth].push_back(d); tempo[nb%nbth].push_back(d);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment