diff --git a/libsrc/meshing/bisect.cpp b/libsrc/meshing/bisect.cpp index eeb2a083..4c0a38f7 100644 --- a/libsrc/meshing/bisect.cpp +++ b/libsrc/meshing/bisect.cpp @@ -3742,6 +3742,7 @@ namespace netgen mesh.SetSurfaceElement (SurfaceElementIndex(i), el); } }); + mesh.RebuildSurfaceElementLists(); for (int i = 1; i <= mquads.Size(); i++) { diff --git a/libsrc/meshing/meshclass.cpp b/libsrc/meshing/meshclass.cpp index 2bdac6f1..92094c80 100644 --- a/libsrc/meshing/meshclass.cpp +++ b/libsrc/meshing/meshclass.cpp @@ -345,26 +345,14 @@ namespace netgen if (el.index > facedecoding.Size()) cerr << "has no facedecoding: fd.size = " << facedecoding.Size() << ", ind = " << el.index << endl; + // add lock-free to list ... slow, call RebuildSurfaceElementLists later /* - surfelements.Last().next = facedecoding[el.index-1].firstelement; - facedecoding[el.index-1].firstelement = sei; - */ - - // add lock-free to list - surfelements[sei].next = facedecoding[el.index-1].firstelement; auto & head = reinterpret_cast&> (facedecoding[el.index-1].firstelement); while (!head.compare_exchange_weak (surfelements[sei].next, sei)) ; - - /* - surfelements[sei].next = facedecoding[el.index-1].firstelement; - auto & head = reinterpret_cast&> (facedecoding[el.index-1].firstelement); - auto & next = reinterpret_cast (surfelements[sei].next); - while (!head.compare_exchange_weak (next, sei)) - ; */ - + /* if (SurfaceArea().Valid()) SurfaceArea().Add (el);